; LLVM IR from jzimmerman/langcc :: src (datacc)

; 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"

%"struct.langcc::rc_ptr.0" = type { ptr, ptr }
%"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] }
%"struct.langcc::rc_ptr.76" = type { ptr, ptr }
%"struct.langcc::rc_ptr.78" = type { ptr, ptr }
%"struct.langcc::Option::_T.72" = type { i32, [16 x i8] }
%"struct.langcc::Option::_T.77" = type { i32, [16 x i8] }
%"struct.langcc::rc_ptr.83" = type { ptr, ptr }
%"struct.langcc::Option::_T.88" = type { i32, [32 x i8] }
%"struct.std::pair.91" = type { %"struct.langcc::rc_ptr.93", %"struct.langcc::rc_ptr.93" }
%"struct.langcc::rc_ptr.93" = type { ptr, ptr }
%"struct.langcc::rc_ptr.111" = type { ptr, ptr }
%"struct.langcc::Option::_T.117" = type { i32, [16 x i8] }
%"struct.langcc::rc_ptr.12" = type { ptr, ptr }
%"struct.langcc::rc_ptr.124" = type { ptr, ptr }
%"struct.langcc::rc_ptr.125" = type { ptr, ptr }
%"struct.langcc::DataDefsResult" = type { %"struct.langcc::Option::_T.117", %"struct.langcc::Option::_T.117" }
%"struct.langcc::DataCompileContext" = type { %"struct.langcc::CppGenContext", %"struct.langcc::rc_ptr.23", %"struct.langcc::rc_ptr.24", %"struct.langcc::rc_ptr.25", %"struct.langcc::rc_ptr.26", %"struct.langcc::rc_ptr.27", %"struct.langcc::rc_ptr.27", %"struct.langcc::rc_ptr.0" }
%"struct.langcc::CppGenContext" = type { %"struct.langcc::rc_ptr.10", %"struct.langcc::rc_ptr.11", %"struct.langcc::rc_ptr.12", %"struct.langcc::rc_ptr.12", %"struct.langcc::Set" }
%"struct.langcc::rc_ptr.10" = type { ptr, ptr }
%"struct.langcc::rc_ptr.11" = type { ptr, ptr }
%"struct.langcc::Set" = type { %"struct.langcc::enable_rc_from_this.13", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.21" }
%"struct.langcc::enable_rc_from_this.13" = type { ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.langcc::Vec.19" = type { %"struct.langcc::enable_rc_from_this.20", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.20" = type { ptr, ptr }
%"struct.langcc::Vec.21" = type { %"struct.langcc::enable_rc_from_this.22", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.22" = type { ptr, ptr }
%"struct.langcc::rc_ptr.23" = type { ptr, ptr }
%"struct.langcc::rc_ptr.24" = type { ptr, ptr }
%"struct.langcc::rc_ptr.25" = type { ptr, ptr }
%"struct.langcc::rc_ptr.26" = type { ptr, ptr }
%"struct.langcc::rc_ptr.27" = type { ptr, ptr }
%"struct.langcc::rc_ptr.126" = type { ptr, ptr }
%"struct.langcc::rc_ptr.9" = type { ptr, ptr }
%"struct.langcc::rc_ptr.8" = type { ptr, ptr }
%"class.std::allocator" = type { i8 }
%"struct.langcc::MapIterator.127" = type { ptr, i64 }
%"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.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.73" = type { i8 }
%"struct.langcc::MapIterator.130" = type { ptr, i64 }
%"struct.langcc::rc_ptr.133" = type { ptr, ptr }
%"class.std::vector.134" = type { %"struct.std::_Vector_base.135" }
%"struct.std::_Vector_base.135" = type { %"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.139" = type { i64, i64 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.std::pair.131" = type { %"struct.langcc::rc_ptr.0", %"struct.langcc::rc_ptr.33" }
%"struct.langcc::rc_ptr.33" = type { ptr, ptr }
%"struct.std::pair" = type { %"struct.langcc::rc_ptr.0", %"class.std::__cxx11::basic_string" }
%"struct.langcc::Map.52" = type { %"struct.langcc::enable_rc_from_this.53", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.54" }
%"struct.langcc::enable_rc_from_this.53" = type { ptr, ptr }
%"struct.langcc::Vec.54" = type { %"struct.langcc::enable_rc_from_this.55", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.55" = type { ptr, ptr }
%"struct.langcc::Map.141" = type { %"struct.langcc::enable_rc_from_this.142", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.143" }
%"struct.langcc::enable_rc_from_this.142" = type { ptr, ptr }
%"struct.langcc::Vec.143" = type { %"struct.langcc::enable_rc_from_this.144", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.144" = type { ptr, ptr }
%"struct.langcc::Map.145" = type { %"struct.langcc::enable_rc_from_this.146", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.147" }
%"struct.langcc::enable_rc_from_this.146" = type { ptr, ptr }
%"struct.langcc::Vec.147" = type { %"struct.langcc::enable_rc_from_this.148", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.148" = type { ptr, ptr }
%"struct.std::pair.109" = type { %"class.std::__cxx11::basic_string", %"struct.langcc::rc_ptr.104" }
%"struct.langcc::rc_ptr.104" = type { ptr, ptr }
%"struct.langcc::MapIterator.121" = type { ptr, i64 }
%"struct.std::pair.115" = type { %"class.std::__cxx11::basic_string", %"struct.langcc::rc_ptr.112" }
%"struct.langcc::rc_ptr.112" = type { ptr, ptr }
%"struct.langcc::rc_ptr.46" = type { ptr, ptr }
%"struct.langcc::rc_ptr.42" = type { ptr, ptr }
%"struct.langcc::rc_ptr.118" = type { ptr, ptr }
%"struct.langcc::SetIterator" = type { ptr, i64 }
%"struct.std::pair.149" = type { %"struct.langcc::Option::_T.117", %"struct.langcc::Option::_T.117" }
%"struct.lang::data::Node::Module::_T" = type { %"struct.lang::data::Node::_T", %"struct.langcc::rc_ptr.30" }
%"struct.lang::data::Node::_T" = type { ptr, %"struct.langcc::hash_obj", %"struct.langcc::enable_rc_from_this_poly", i32, i64, %"struct.langcc::TokenBounds", i8, i64, %"struct.langcc::ParserAttrMask", %"struct.langcc::ParserLookahead" }
%"struct.langcc::hash_obj" = type { %"struct.langcc::Option::_T" }
%"struct.langcc::Option::_T" = type { i32, [32 x i8] }
%"struct.langcc::enable_rc_from_this_poly" = type { ptr, ptr }
%"struct.langcc::TokenBounds" = type { i32, i32 }
%"struct.langcc::ParserAttrMask" = type { [16 x i8] }
%"struct.langcc::ParserLookahead" = type { [8 x i16] }
%"struct.langcc::rc_ptr.30" = type { ptr, ptr }
%"struct.std::pair.128" = type { %"struct.langcc::rc_ptr.0", %"struct.langcc::rc_ptr.64" }
%"struct.langcc::rc_ptr.64" = type { ptr, ptr }
%"struct.lang::data::Node::Decl::Enum::_T" = type { %"struct.lang::data::Node::Decl::_T.base", %"struct.langcc::rc_ptr.1", %"struct.langcc::rc_ptr.2" }
%"struct.lang::data::Node::Decl::_T.base" = type <{ %"struct.lang::data::Node::_T", i32 }>
%"struct.langcc::rc_ptr.1" = type { ptr, ptr }
%"struct.langcc::rc_ptr.2" = type { ptr, ptr }
%"struct.langcc::StrSlice" = type { %"struct.langcc::rc_ptr.7", i64, i64 }
%"struct.langcc::rc_ptr.7" = type { ptr, ptr }
%"struct.lang::data::Node::Entry::Method::_T" = type { %"struct.lang::data::Node::Entry::_T.base", i8, i8, %"struct.langcc::StrSlice", %"struct.langcc::rc_ptr.39", %"struct.langcc::rc_ptr.46" }
%"struct.lang::data::Node::Entry::_T.base" = type <{ %"struct.lang::data::Node::_T", i32 }>
%"struct.langcc::rc_ptr.39" = type { ptr, ptr }
%"struct.lang::data::Node::Param::_T" = type { %"struct.lang::data::Node::_T", %"struct.langcc::StrSlice", %"struct.langcc::rc_ptr.46" }
%"struct.lang::data::Node::Entry::Field::_T" = type { %"struct.lang::data::Node::Entry::_T.base", %"struct.langcc::StrSlice", i8, i8, %"struct.langcc::rc_ptr.46" }

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [6 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEJEEENS_6rc_ptrIT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.0") align 8) #0

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc22tabulate_data_decl_accENS_6rc_ptrIN4lang4data4Node2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(376)) #0

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

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

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) #5 align 2

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

; Function Attrs: inlinehint mustprogress noreturn uwtable
declare dso_local void @_ZN6langcc2AXEv() #7

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.0") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.0") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(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)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(376), ptr noundef, ptr noundef) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.78") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(264)) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(376)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.72") align 4) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.77") align 4) #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE16make_lex_builderEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.83") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE8qq_innerENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_6rc_ptrINS_9LexOutputEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.88") align 4, ptr noundef nonnull align 8 dereferenceable(32)) #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc26dt_extract_def_fields_fullENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.91") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(376)) #0

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc22dt_extract_def_methodsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.111") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(376)) #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc17data_gen_xform_fnENS_7XformTyENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_RNS1_INS_3SetISA_EEEENS_10HeaderModeERNS_18DataCompileContextE(i32 noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.117") align 4, ptr noundef nonnull align 8 dereferenceable(16)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4NoneINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.117") align 4) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(20) ptr @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEEaSERKS8_(ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 4 dereferenceable(20)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8) #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef) #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) #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA20_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200)) #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA5_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.72") align 4, ptr noundef nonnull align 8 dereferenceable(16)) #0

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

declare void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.124") align 8, ptr noundef nonnull align 8 dereferenceable(136)) #9

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(27)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEES2_A4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32)) #3

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8) #4

declare void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8, ptr noundef nonnull align 8 dereferenceable(136)) #9

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264), i1 noundef zeroext, ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc20data_gen_xform_id_fnENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES9_NS_10HeaderModeERNS_18DataCompileContextE(ptr noundef, ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) #0

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6langcc17compile_data_defsENS_6rc_ptrIN4lang4data4Node2_TEEENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_10HeaderModeE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::DataDefsResult") align 4 %0, ptr noundef %1, ptr noundef %2, i32 noundef %3) #0 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"struct.langcc::DataCompileContext", align 8
  %10 = alloca %"struct.langcc::rc_ptr.0", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca %"struct.langcc::rc_ptr.126", align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"struct.langcc::rc_ptr.9", align 8
  %18 = alloca %"struct.langcc::rc_ptr.8", align 8
  %19 = alloca %"struct.langcc::rc_ptr.76", align 8
  %20 = alloca %"struct.langcc::rc_ptr.125", align 8
  %21 = alloca %"struct.langcc::rc_ptr.76", align 8
  %22 = alloca %"struct.langcc::Option::_T.88", align 4
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"struct.langcc::rc_ptr.76", align 8
  %26 = alloca %"struct.langcc::rc_ptr.125", align 8
  %27 = alloca %"struct.langcc::rc_ptr.76", align 8
  %28 = alloca %"struct.langcc::Option::_T.88", align 4
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"struct.langcc::rc_ptr.76", align 8
  %36 = alloca %"struct.langcc::rc_ptr.125", align 8
  %37 = alloca %"struct.langcc::rc_ptr.76", align 8
  %38 = alloca %"struct.langcc::Option::_T.88", align 4
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"struct.langcc::rc_ptr.76", align 8
  %45 = alloca %"struct.langcc::rc_ptr.125", align 8
  %46 = alloca %"struct.langcc::rc_ptr.76", align 8
  %47 = alloca %"struct.langcc::Option::_T.88", align 4
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %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 ptr, align 8
  %54 = alloca %"struct.langcc::MapIterator.127", align 8
  %55 = alloca %"struct.langcc::MapIterator.127", align 8
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca %"struct.langcc::rc_ptr.0", align 8
  %59 = alloca %"struct.langcc::rc_ptr.12", align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca %"struct.langcc::rc_ptr.76", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"struct.langcc::rc_ptr.76", align 8
  %67 = alloca %"struct.langcc::rc_ptr.125", align 8
  %68 = alloca %"struct.langcc::rc_ptr.76", align 8
  %69 = alloca %"struct.langcc::rc_ptr.0", align 8
  %70 = alloca %"struct.langcc::rc_ptr.0", align 8
  %71 = alloca %"class.std::vector", align 8
  %72 = alloca %"class.std::initializer_list", align 8
  %73 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %74 = alloca ptr, align 8
  %75 = alloca %"struct.langcc::rc_ptr.0", align 8
  %76 = alloca %"class.std::vector", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca i1, align 1
  %80 = alloca %"class.std::allocator.73", align 1
  %81 = alloca %"struct.langcc::rc_ptr.0", align 8
  %82 = alloca %"class.std::vector", align 8
  %83 = alloca %"class.std::initializer_list", align 8
  %84 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %85 = alloca ptr, align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca i1, align 1
  %89 = alloca %"class.std::allocator.73", align 1
  %90 = alloca %"struct.langcc::rc_ptr.78", align 8
  %91 = alloca %"struct.langcc::rc_ptr.12", align 8
  %92 = alloca %"struct.langcc::rc_ptr.12", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"struct.langcc::rc_ptr.0", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca %"struct.langcc::rc_ptr.76", align 8
  %98 = alloca %"struct.langcc::rc_ptr.76", align 8
  %99 = alloca %"struct.langcc::Option::_T.88", align 4
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator", align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"struct.langcc::rc_ptr.0", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator", align 1
  %106 = alloca %"struct.langcc::rc_ptr.76", align 8
  %107 = alloca %"struct.langcc::rc_ptr.76", align 8
  %108 = alloca %"struct.langcc::Option::_T.88", align 4
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::allocator", align 1
  %111 = alloca %"struct.langcc::rc_ptr.78", align 8
  %112 = alloca %"struct.langcc::rc_ptr.76", align 8
  %113 = alloca %"struct.langcc::Option::_T.88", align 4
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca %"struct.langcc::rc_ptr.76", align 8
  %117 = alloca %"struct.langcc::rc_ptr.125", align 8
  %118 = alloca %"struct.langcc::rc_ptr.76", align 8
  %119 = alloca %"struct.langcc::rc_ptr.12", align 8
  %120 = alloca %"struct.langcc::rc_ptr.12", align 8
  %121 = alloca %"struct.langcc::Option::_T.117", align 4
  %122 = alloca %"struct.langcc::rc_ptr.76", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::allocator", align 1
  %125 = alloca %"struct.langcc::rc_ptr.76", align 8
  %126 = alloca %"struct.langcc::rc_ptr.125", align 8
  %127 = alloca %"struct.langcc::rc_ptr.76", align 8
  %128 = alloca %"struct.langcc::rc_ptr.12", align 8
  %129 = alloca %"struct.langcc::rc_ptr.12", align 8
  %130 = alloca %"struct.langcc::rc_ptr.12", align 8
  %131 = alloca %"struct.langcc::Option::_T.117", align 4
  %132 = alloca %"struct.langcc::rc_ptr.76", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::allocator", align 1
  %135 = alloca %"struct.langcc::rc_ptr.76", align 8
  %136 = alloca %"struct.langcc::rc_ptr.12", align 8
  %137 = alloca %"struct.langcc::rc_ptr.0", align 8
  %138 = alloca %"class.std::vector", align 8
  %139 = alloca %"class.std::initializer_list", align 8
  %140 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %141 = alloca ptr, align 8
  %142 = alloca %"struct.langcc::rc_ptr.0", align 8
  %143 = alloca %"class.std::vector", align 8
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator", align 1
  %146 = alloca i1, align 1
  %147 = alloca %"class.std::allocator.73", align 1
  %148 = alloca %"struct.langcc::rc_ptr.0", align 8
  %149 = alloca %"class.std::vector", align 8
  %150 = alloca %"class.std::initializer_list", align 8
  %151 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %152 = alloca ptr, align 8
  %153 = alloca %"class.std::allocator", align 1
  %154 = alloca %"class.std::allocator", align 1
  %155 = alloca i1, align 1
  %156 = alloca %"class.std::allocator.73", align 1
  %157 = alloca %"struct.langcc::rc_ptr.78", align 8
  %158 = alloca %"struct.langcc::rc_ptr.12", align 8
  %159 = alloca %"struct.langcc::rc_ptr.12", align 8
  %160 = alloca %"struct.langcc::rc_ptr.76", align 8
  %161 = alloca %"struct.langcc::rc_ptr.76", align 8
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator", align 1
  %164 = alloca %"struct.langcc::rc_ptr.76", align 8
  %165 = alloca %"struct.langcc::rc_ptr.76", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::allocator", align 1
  %168 = alloca %"struct.langcc::rc_ptr.76", align 8
  %169 = alloca %"struct.langcc::rc_ptr.76", align 8
  %170 = alloca %"struct.langcc::rc_ptr.78", align 8
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::allocator", align 1
  %173 = alloca %"struct.langcc::rc_ptr.12", align 8
  %174 = alloca ptr, align 8
  %175 = alloca ptr, align 8
  %176 = alloca ptr, align 8
  %177 = alloca ptr, align 8
  %178 = alloca %"struct.langcc::rc_ptr.76", align 8
  %179 = alloca %"struct.langcc::rc_ptr.124", align 8
  %180 = alloca %"struct.langcc::rc_ptr.76", align 8
  %181 = alloca %"struct.langcc::rc_ptr.78", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::allocator", align 1
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"struct.langcc::rc_ptr.76", align 8
  %188 = alloca %"struct.langcc::rc_ptr.76", align 8
  %189 = alloca %"struct.langcc::rc_ptr.76", align 8
  %190 = alloca %"struct.langcc::rc_ptr.125", align 8
  %191 = alloca %"struct.langcc::rc_ptr.76", align 8
  %192 = alloca %"struct.langcc::rc_ptr.12", align 8
  %193 = alloca %"struct.langcc::rc_ptr.12", align 8
  %194 = alloca %"struct.langcc::Option::_T.117", align 4
  %195 = alloca %"struct.langcc::rc_ptr.76", align 8
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::allocator", align 1
  %198 = alloca %"struct.langcc::rc_ptr.76", align 8
  %199 = alloca %"struct.langcc::rc_ptr.125", align 8
  %200 = alloca %"struct.langcc::rc_ptr.76", align 8
  %201 = alloca %"struct.langcc::rc_ptr.12", align 8
  %202 = alloca %"struct.langcc::rc_ptr.12", align 8
  %203 = alloca %"struct.langcc::rc_ptr.12", align 8
  %204 = alloca %"struct.langcc::Option::_T.117", align 4
  %205 = alloca %"struct.langcc::rc_ptr.76", align 8
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::allocator", align 1
  %208 = alloca %"struct.langcc::rc_ptr.76", align 8
  %209 = alloca %"struct.langcc::rc_ptr.12", align 8
  %210 = alloca ptr, align 8
  %211 = alloca %"struct.langcc::MapIterator.130", align 8
  %212 = alloca %"struct.langcc::MapIterator.130", align 8
  %213 = alloca ptr, align 8
  %214 = alloca %"struct.langcc::rc_ptr.0", align 8
  %215 = alloca %"struct.langcc::rc_ptr.0", align 8
  %216 = alloca %"struct.langcc::Option::_T.72", align 4
  %217 = alloca %"struct.langcc::rc_ptr.76", align 8
  %218 = alloca %"struct.langcc::Option::_T.72", align 4
  %219 = alloca %"struct.langcc::Option::_T.77", align 4
  %220 = alloca %"struct.langcc::rc_ptr.12", align 8
  %221 = alloca %"struct.langcc::rc_ptr.0", align 8
  %222 = alloca %"struct.langcc::rc_ptr.76", align 8
  %223 = alloca %"struct.langcc::rc_ptr.76", align 8
  %224 = alloca %"struct.langcc::rc_ptr.125", align 8
  %225 = alloca %"struct.langcc::rc_ptr.76", align 8
  %226 = alloca %"struct.langcc::rc_ptr.0", align 8
  %227 = alloca %"struct.langcc::rc_ptr.76", align 8
  %228 = alloca %"struct.langcc::rc_ptr.125", align 8
  %229 = alloca %"struct.langcc::rc_ptr.76", align 8
  %230 = alloca %"struct.langcc::rc_ptr.0", align 8
  %231 = alloca %"struct.langcc::Option::_T.72", align 4
  %232 = alloca %"struct.langcc::rc_ptr.76", align 8
  %233 = alloca %"struct.langcc::rc_ptr.133", align 8
  %234 = alloca ptr, align 8
  %235 = alloca %"struct.langcc::MapIterator.130", align 8
  %236 = alloca %"struct.langcc::MapIterator.130", align 8
  %237 = alloca ptr, align 8
  %238 = alloca %"class.std::vector.134", align 8
  %239 = alloca i64, align 8
  %240 = alloca i64, align 8
  %241 = alloca %"struct.std::pair.139", align 8
  %242 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %243 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %244 = alloca ptr, align 8
  %245 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %246 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %247 = alloca %"struct.std::pair.139", align 8
  %248 = alloca ptr, align 8
  %249 = alloca ptr, align 8
  %250 = alloca %"struct.std::pair.131", align 8
  %251 = alloca %"struct.langcc::rc_ptr.0", align 8
  %252 = alloca %"struct.langcc::rc_ptr.0", align 8
  %253 = alloca %"struct.langcc::Option::_T.72", align 4
  %254 = alloca %"struct.langcc::rc_ptr.76", align 8
  %255 = alloca %"struct.langcc::Option::_T.72", align 4
  %256 = alloca %"struct.langcc::Option::_T.77", align 4
  %257 = alloca %"struct.langcc::rc_ptr.76", align 8
  %258 = alloca %"struct.langcc::Option::_T.72", align 4
  %259 = alloca %"struct.langcc::Option::_T.77", align 4
  %260 = alloca %"struct.langcc::rc_ptr.12", align 8
  %261 = alloca %"struct.langcc::rc_ptr.0", align 8
  %262 = alloca %"struct.langcc::rc_ptr.76", align 8
  %263 = alloca i8, align 1
  %264 = alloca %"struct.langcc::rc_ptr.12", align 8
  %265 = alloca %"struct.std::pair.91", align 8
  %266 = alloca %"struct.langcc::rc_ptr.0", align 8
  %267 = alloca ptr, align 8
  %268 = alloca ptr, align 8
  %269 = alloca %"struct.langcc::rc_ptr.0", align 8
  %270 = alloca %"struct.langcc::Option::_T.72", align 4
  %271 = alloca %"struct.langcc::rc_ptr.12", align 8
  %272 = alloca %"struct.langcc::rc_ptr.12", align 8
  %273 = alloca %"struct.langcc::rc_ptr.12", align 8
  %274 = alloca %"class.std::__cxx11::basic_string", align 8
  %275 = alloca %"struct.langcc::rc_ptr.0", align 8
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::allocator", align 1
  %278 = alloca %"struct.langcc::rc_ptr.76", align 8
  %279 = alloca %"struct.langcc::rc_ptr.76", align 8
  %280 = alloca %"struct.langcc::Option::_T.72", align 4
  %281 = alloca %"struct.langcc::Option::_T.77", align 4
  %282 = alloca %"struct.langcc::rc_ptr.76", align 8
  %283 = alloca %"struct.langcc::Option::_T.88", align 4
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::allocator", align 1
  %286 = alloca %"struct.langcc::rc_ptr.76", align 8
  %287 = alloca %"struct.langcc::Option::_T.88", align 4
  %288 = alloca %"class.std::__cxx11::basic_string", align 8
  %289 = alloca %"class.std::allocator", align 1
  %290 = alloca %"struct.std::pair", align 8
  %291 = alloca ptr, align 8
  %292 = alloca ptr, align 8
  %293 = alloca %"struct.langcc::rc_ptr.76", align 8
  %294 = alloca %"struct.langcc::Option::_T.72", align 4
  %295 = alloca %"struct.langcc::Option::_T.77", align 4
  %296 = alloca %"struct.langcc::rc_ptr.76", align 8
  %297 = alloca %"struct.langcc::rc_ptr.0", align 8
  %298 = alloca %"struct.langcc::rc_ptr.76", align 8
  %299 = alloca %"struct.langcc::rc_ptr.0", align 8
  %300 = alloca %"struct.langcc::Option::_T.72", align 4
  %301 = alloca %"struct.langcc::rc_ptr.12", align 8
  %302 = alloca %"struct.langcc::rc_ptr.12", align 8
  %303 = alloca %"struct.langcc::rc_ptr.76", align 8
  %304 = alloca %"struct.langcc::rc_ptr.0", align 8
  %305 = alloca %"class.std::__cxx11::basic_string", align 8
  %306 = alloca %"class.std::allocator", align 1
  %307 = alloca %"struct.langcc::rc_ptr.0", align 8
  %308 = alloca %"class.std::vector", align 8
  %309 = alloca %"class.std::initializer_list", align 8
  %310 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %311 = alloca ptr, align 8
  %312 = alloca %"struct.langcc::rc_ptr.0", align 8
  %313 = alloca %"class.std::vector", align 8
  %314 = alloca %"class.std::__cxx11::basic_string", align 8
  %315 = alloca %"class.std::allocator", align 1
  %316 = alloca i1, align 1
  %317 = alloca %"class.std::allocator.73", align 1
  %318 = alloca %"struct.langcc::rc_ptr.0", align 8
  %319 = alloca %"struct.langcc::Option::_T.72", align 4
  %320 = alloca %"struct.langcc::rc_ptr.12", align 8
  %321 = alloca %"struct.langcc::rc_ptr.76", align 8
  %322 = alloca %"struct.langcc::rc_ptr.76", align 8
  %323 = alloca %"class.std::__cxx11::basic_string", align 8
  %324 = alloca %"class.std::allocator", align 1
  %325 = alloca %"struct.langcc::rc_ptr.12", align 8
  %326 = alloca %"struct.langcc::rc_ptr.76", align 8
  %327 = alloca %"struct.langcc::rc_ptr.0", align 8
  %328 = alloca %"class.std::__cxx11::basic_string", align 8
  %329 = alloca %"class.std::allocator", align 1
  %330 = alloca %"struct.langcc::Map.52", align 8
  %331 = alloca %"struct.langcc::Map.141", align 8
  %332 = alloca %"struct.langcc::Map.141", align 8
  %333 = alloca %"struct.langcc::Map.141", align 8
  %334 = alloca %"struct.langcc::Map.145", align 8
  %335 = alloca ptr, align 8
  %336 = alloca ptr, align 8
  %337 = alloca ptr, align 8
  %338 = alloca %"struct.std::pair.109", align 8
  %339 = alloca %"class.std::__cxx11::basic_string", align 8
  %340 = alloca %"struct.langcc::rc_ptr.0", align 8
  %341 = alloca %"struct.langcc::Option::_T.72", align 4
  %342 = alloca %"struct.langcc::rc_ptr.0", align 8
  %343 = alloca %"class.std::vector", align 8
  %344 = alloca %"class.std::initializer_list", align 8
  %345 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %346 = alloca ptr, align 8
  %347 = alloca %"class.std::allocator.73", align 1
  %348 = alloca %"struct.langcc::rc_ptr.12", align 8
  %349 = alloca %"struct.langcc::rc_ptr.12", align 8
  %350 = alloca %"struct.langcc::rc_ptr.12", align 8
  %351 = alloca %"struct.langcc::rc_ptr.76", align 8
  %352 = alloca %"struct.langcc::rc_ptr.0", align 8
  %353 = alloca %"class.std::__cxx11::basic_string", align 8
  %354 = alloca %"class.std::allocator", align 1
  %355 = alloca %"struct.langcc::Map.52", align 8
  %356 = alloca %"struct.langcc::Map.141", align 8
  %357 = alloca %"struct.langcc::Map.141", align 8
  %358 = alloca ptr, align 8
  %359 = alloca %"struct.langcc::MapIterator.121", align 8
  %360 = alloca %"struct.langcc::MapIterator.121", align 8
  %361 = alloca ptr, align 8
  %362 = alloca ptr, align 8
  %363 = alloca ptr, align 8
  %364 = alloca %"struct.langcc::rc_ptr.0", align 8
  %365 = alloca %"struct.langcc::Option::_T.72", align 4
  %366 = alloca %"struct.langcc::rc_ptr.0", align 8
  %367 = alloca %"class.std::vector", align 8
  %368 = alloca %"class.std::initializer_list", align 8
  %369 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %370 = alloca ptr, align 8
  %371 = alloca %"class.std::allocator.73", align 1
  %372 = alloca %"struct.langcc::rc_ptr.12", align 8
  %373 = alloca %"struct.langcc::rc_ptr.12", align 8
  %374 = alloca %"struct.langcc::Map.52", align 8
  %375 = alloca %"struct.langcc::Map.141", align 8
  %376 = alloca %"struct.langcc::Map.141", align 8
  %377 = alloca ptr, align 8
  %378 = alloca %"struct.langcc::MapIterator.121", align 8
  %379 = alloca %"struct.langcc::MapIterator.121", align 8
  %380 = alloca ptr, align 8
  %381 = alloca ptr, align 8
  %382 = alloca ptr, align 8
  %383 = alloca %"struct.langcc::rc_ptr.0", align 8
  %384 = alloca %"struct.langcc::Option::_T.72", align 4
  %385 = alloca %"struct.langcc::rc_ptr.0", align 8
  %386 = alloca %"class.std::vector", align 8
  %387 = alloca %"class.std::initializer_list", align 8
  %388 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %389 = alloca ptr, align 8
  %390 = alloca %"class.std::allocator.73", align 1
  %391 = alloca %"struct.langcc::rc_ptr.12", align 8
  %392 = alloca %"struct.langcc::rc_ptr.12", align 8
  %393 = alloca %"struct.langcc::Map.52", align 8
  %394 = alloca %"struct.langcc::Map.141", align 8
  %395 = alloca %"struct.langcc::Map.141", align 8
  %396 = alloca ptr, align 8
  %397 = alloca %"struct.langcc::MapIterator.121", align 8
  %398 = alloca %"struct.langcc::MapIterator.121", align 8
  %399 = alloca ptr, align 8
  %400 = alloca ptr, align 8
  %401 = alloca ptr, align 8
  %402 = alloca %"struct.langcc::rc_ptr.0", align 8
  %403 = alloca %"struct.langcc::Option::_T.72", align 4
  %404 = alloca %"struct.langcc::rc_ptr.0", align 8
  %405 = alloca %"class.std::vector", align 8
  %406 = alloca %"class.std::initializer_list", align 8
  %407 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %408 = alloca ptr, align 8
  %409 = alloca %"class.std::allocator.73", align 1
  %410 = alloca %"struct.langcc::rc_ptr.12", align 8
  %411 = alloca %"struct.langcc::rc_ptr.12", align 8
  %412 = alloca %"struct.langcc::rc_ptr.0", align 8
  %413 = alloca %"class.std::vector", align 8
  %414 = alloca %"class.std::initializer_list", align 8
  %415 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %416 = alloca ptr, align 8
  %417 = alloca %"struct.langcc::rc_ptr.0", align 8
  %418 = alloca %"class.std::vector", align 8
  %419 = alloca %"class.std::__cxx11::basic_string", align 8
  %420 = alloca %"class.std::allocator", align 1
  %421 = alloca i1, align 1
  %422 = alloca %"class.std::allocator.73", align 1
  %423 = alloca %"struct.langcc::rc_ptr.0", align 8
  %424 = alloca %"struct.langcc::Option::_T.72", align 4
  %425 = alloca %"struct.langcc::rc_ptr.12", align 8
  %426 = alloca %"struct.langcc::rc_ptr.12", align 8
  %427 = alloca %"struct.langcc::rc_ptr.12", align 8
  %428 = alloca ptr, align 8
  %429 = alloca %"struct.langcc::MapIterator.121", align 8
  %430 = alloca %"struct.langcc::MapIterator.121", align 8
  %431 = alloca ptr, align 8
  %432 = alloca ptr, align 8
  %433 = alloca ptr, align 8
  %434 = alloca %"struct.langcc::rc_ptr.76", align 8
  %435 = alloca %"struct.langcc::rc_ptr.0", align 8
  %436 = alloca %"struct.langcc::rc_ptr.76", align 8
  %437 = alloca %"struct.langcc::rc_ptr.76", align 8
  %438 = alloca %"class.std::__cxx11::basic_string", align 8
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::allocator", align 1
  %441 = alloca %"struct.langcc::rc_ptr.0", align 8
  %442 = alloca %"class.std::vector", align 8
  %443 = alloca %"class.std::initializer_list", align 8
  %444 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %445 = alloca ptr, align 8
  %446 = alloca %"struct.langcc::rc_ptr.0", align 8
  %447 = alloca %"class.std::vector", align 8
  %448 = alloca %"class.std::__cxx11::basic_string", align 8
  %449 = alloca %"class.std::allocator", align 1
  %450 = alloca i1, align 1
  %451 = alloca %"class.std::allocator.73", align 1
  %452 = alloca %"class.std::__cxx11::basic_string", align 8
  %453 = alloca %"struct.langcc::rc_ptr.0", align 8
  %454 = alloca %"class.std::__cxx11::basic_string", align 8
  %455 = alloca %"class.std::allocator", align 1
  %456 = alloca %"struct.langcc::rc_ptr.0", align 8
  %457 = alloca %"struct.langcc::Option::_T.72", align 4
  %458 = alloca %"struct.langcc::rc_ptr.12", align 8
  %459 = alloca %"struct.langcc::rc_ptr.12", align 8
  %460 = alloca %"struct.langcc::rc_ptr.12", align 8
  %461 = alloca ptr, align 8
  %462 = alloca %"struct.langcc::MapIterator.121", align 8
  %463 = alloca %"struct.langcc::MapIterator.121", align 8
  %464 = alloca ptr, align 8
  %465 = alloca ptr, align 8
  %466 = alloca ptr, align 8
  %467 = alloca %"struct.langcc::rc_ptr.76", align 8
  %468 = alloca %"struct.langcc::rc_ptr.0", align 8
  %469 = alloca %"struct.langcc::rc_ptr.76", align 8
  %470 = alloca %"struct.langcc::rc_ptr.76", align 8
  %471 = alloca %"class.std::__cxx11::basic_string", align 8
  %472 = alloca %"class.std::__cxx11::basic_string", align 8
  %473 = alloca %"class.std::allocator", align 1
  %474 = alloca %"struct.langcc::rc_ptr.0", align 8
  %475 = alloca %"class.std::vector", align 8
  %476 = alloca %"class.std::initializer_list", align 8
  %477 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %478 = alloca ptr, align 8
  %479 = alloca %"struct.langcc::rc_ptr.0", align 8
  %480 = alloca %"class.std::vector", align 8
  %481 = alloca %"class.std::__cxx11::basic_string", align 8
  %482 = alloca %"class.std::allocator", align 1
  %483 = alloca i1, align 1
  %484 = alloca %"class.std::allocator.73", align 1
  %485 = alloca %"struct.langcc::rc_ptr.0", align 8
  %486 = alloca %"class.std::vector", align 8
  %487 = alloca %"class.std::initializer_list", align 8
  %488 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %489 = alloca ptr, align 8
  %490 = alloca %"class.std::allocator", align 1
  %491 = alloca %"class.std::allocator", align 1
  %492 = alloca i1, align 1
  %493 = alloca %"class.std::allocator.73", align 1
  %494 = alloca %"struct.langcc::rc_ptr.78", align 8
  %495 = alloca %"struct.langcc::rc_ptr.12", align 8
  %496 = alloca %"struct.langcc::rc_ptr.12", align 8
  %497 = alloca %"struct.langcc::rc_ptr.76", align 8
  %498 = alloca %"class.std::__cxx11::basic_string", align 8
  %499 = alloca %"class.std::allocator", align 1
  %500 = alloca %"class.std::__cxx11::basic_string", align 8
  %501 = alloca %"class.std::allocator", align 1
  %502 = alloca %"struct.langcc::rc_ptr.76", align 8
  %503 = alloca %"class.std::__cxx11::basic_string", align 8
  %504 = alloca %"class.std::allocator", align 1
  %505 = alloca %"class.std::__cxx11::basic_string", align 8
  %506 = alloca %"class.std::allocator", align 1
  %507 = alloca %"struct.langcc::rc_ptr.76", align 8
  %508 = alloca %"struct.langcc::rc_ptr.76", align 8
  %509 = alloca %"struct.langcc::rc_ptr.76", align 8
  %510 = alloca %"struct.langcc::Option::_T.72", align 4
  %511 = alloca %"struct.langcc::Option::_T.77", align 4
  %512 = alloca %"class.std::__cxx11::basic_string", align 8
  %513 = alloca %"class.std::allocator", align 1
  %514 = alloca %"struct.langcc::rc_ptr.12", align 8
  %515 = alloca ptr, align 8
  %516 = alloca %"struct.langcc::MapIterator.121", align 8
  %517 = alloca %"struct.langcc::MapIterator.121", align 8
  %518 = alloca ptr, align 8
  %519 = alloca ptr, align 8
  %520 = alloca ptr, align 8
  %521 = alloca %"struct.langcc::rc_ptr.76", align 8
  %522 = alloca %"struct.langcc::rc_ptr.124", align 8
  %523 = alloca %"struct.langcc::rc_ptr.76", align 8
  %524 = alloca %"struct.langcc::rc_ptr.76", align 8
  %525 = alloca %"struct.langcc::Option::_T.72", align 4
  %526 = alloca %"struct.langcc::Option::_T.77", align 4
  %527 = alloca %"struct.langcc::rc_ptr.76", align 8
  %528 = alloca %"struct.langcc::Option::_T.72", align 4
  %529 = alloca %"struct.langcc::rc_ptr.0", align 8
  %530 = alloca %"class.std::vector", align 8
  %531 = alloca %"class.std::initializer_list", align 8
  %532 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %533 = alloca ptr, align 8
  %534 = alloca %"class.std::allocator.73", align 1
  %535 = alloca %"struct.langcc::Option::_T.77", align 4
  %536 = alloca %"struct.langcc::rc_ptr.76", align 8
  %537 = alloca %"struct.langcc::rc_ptr.76", align 8
  %538 = alloca %"struct.langcc::rc_ptr.76", align 8
  %539 = alloca %"class.std::__cxx11::basic_string", align 8
  %540 = alloca %"class.std::__cxx11::basic_string", align 8
  %541 = alloca %"class.std::allocator", align 1
  %542 = alloca %"class.std::__cxx11::basic_string", align 8
  %543 = alloca %"class.std::__cxx11::basic_string", align 8
  %544 = alloca %"class.std::allocator", align 1
  %545 = alloca %"struct.langcc::rc_ptr.76", align 8
  %546 = alloca %"struct.langcc::rc_ptr.76", align 8
  %547 = alloca ptr, align 8
  %548 = alloca ptr, align 8
  %549 = alloca ptr, align 8
  %550 = alloca ptr, align 8
  %551 = alloca %"class.std::__cxx11::basic_string", align 8
  %552 = alloca %"struct.langcc::rc_ptr.76", align 8
  %553 = alloca %"struct.langcc::rc_ptr.76", align 8
  %554 = alloca %"class.std::__cxx11::basic_string", align 8
  %555 = alloca %"class.std::__cxx11::basic_string", align 8
  %556 = alloca %"class.std::allocator", align 1
  %557 = alloca %"struct.langcc::rc_ptr.76", align 8
  %558 = alloca %"class.std::__cxx11::basic_string", align 8
  %559 = alloca %"class.std::__cxx11::basic_string", align 8
  %560 = alloca %"class.std::allocator", align 1
  %561 = alloca %"struct.langcc::rc_ptr.76", align 8
  %562 = alloca %"struct.langcc::rc_ptr.76", align 8
  %563 = alloca %"struct.langcc::rc_ptr.76", align 8
  %564 = alloca %"struct.langcc::rc_ptr.76", align 8
  %565 = alloca %"struct.langcc::rc_ptr.125", align 8
  %566 = alloca %"struct.langcc::rc_ptr.76", align 8
  %567 = alloca %"struct.langcc::rc_ptr.12", align 8
  %568 = alloca %"struct.langcc::Option::_T.117", align 4
  %569 = alloca %"struct.langcc::rc_ptr.76", align 8
  %570 = alloca %"class.std::__cxx11::basic_string", align 8
  %571 = alloca %"class.std::allocator", align 1
  %572 = alloca %"struct.langcc::rc_ptr.111", align 8
  %573 = alloca %"struct.langcc::rc_ptr.0", align 8
  %574 = alloca ptr, align 8
  %575 = alloca ptr, align 8
  %576 = alloca ptr, align 8
  %577 = alloca %"struct.std::pair.115", align 8
  %578 = alloca ptr, align 8
  %579 = alloca ptr, align 8
  %580 = alloca %"struct.langcc::rc_ptr.0", align 8
  %581 = alloca %"struct.langcc::rc_ptr.76", align 8
  %582 = alloca %"class.std::__cxx11::basic_string", align 8
  %583 = alloca %"struct.langcc::rc_ptr.76", align 8
  %584 = alloca %"struct.langcc::rc_ptr.46", align 8
  %585 = alloca %"struct.langcc::rc_ptr.83", align 8
  %586 = alloca %"class.std::__cxx11::basic_string", align 8
  %587 = alloca %"class.std::allocator", align 1
  %588 = alloca i8, align 1
  %589 = alloca ptr, align 8
  %590 = alloca ptr, align 8
  %591 = alloca ptr, align 8
  %592 = alloca %"struct.langcc::rc_ptr.42", align 8
  %593 = alloca %"class.std::__cxx11::basic_string", align 8
  %594 = alloca %"class.std::allocator", align 1
  %595 = alloca %"struct.langcc::rc_ptr.76", align 8
  %596 = alloca %"struct.langcc::rc_ptr.46", align 8
  %597 = alloca %"struct.langcc::rc_ptr.76", align 8
  %598 = alloca %"class.std::__cxx11::basic_string", align 8
  %599 = alloca %"class.std::__cxx11::basic_string", align 8
  %600 = alloca %"class.std::allocator", align 1
  %601 = alloca %"class.std::__cxx11::basic_string", align 8
  %602 = alloca %"class.std::allocator", align 1
  %603 = alloca %"struct.langcc::rc_ptr.76", align 8
  %604 = alloca %"struct.langcc::Option::_T.88", align 4
  %605 = alloca %"class.std::__cxx11::basic_string", align 8
  %606 = alloca %"class.std::allocator", align 1
  %607 = alloca %"struct.langcc::rc_ptr.0", align 8
  %608 = alloca %"class.std::vector", align 8
  %609 = alloca %"class.std::initializer_list", align 8
  %610 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %611 = alloca ptr, align 8
  %612 = alloca %"struct.langcc::rc_ptr.0", align 8
  %613 = alloca %"class.std::vector", align 8
  %614 = alloca %"class.std::__cxx11::basic_string", align 8
  %615 = alloca %"class.std::allocator", align 1
  %616 = alloca i1, align 1
  %617 = alloca %"class.std::allocator.73", align 1
  %618 = alloca %"struct.langcc::rc_ptr.0", align 8
  %619 = alloca %"struct.langcc::Option::_T.72", align 4
  %620 = alloca %"struct.langcc::rc_ptr.76", align 8
  %621 = alloca %"struct.langcc::Option::_T.72", align 4
  %622 = alloca %"struct.langcc::Option::_T.77", align 4
  %623 = alloca %"struct.langcc::rc_ptr.76", align 8
  %624 = alloca %"struct.langcc::Option::_T.72", align 4
  %625 = alloca %"struct.langcc::Option::_T.77", align 4
  %626 = alloca %"struct.langcc::rc_ptr.12", align 8
  %627 = alloca %"struct.langcc::rc_ptr.12", align 8
  %628 = alloca %"struct.langcc::rc_ptr.76", align 8
  %629 = alloca %"struct.langcc::rc_ptr.76", align 8
  %630 = alloca %"class.std::__cxx11::basic_string", align 8
  %631 = alloca %"class.std::allocator", align 1
  %632 = alloca %"class.std::__cxx11::basic_string", align 8
  %633 = alloca %"class.std::allocator", align 1
  %634 = alloca %"struct.langcc::rc_ptr.0", align 8
  %635 = alloca %"class.std::vector", align 8
  %636 = alloca %"class.std::initializer_list", align 8
  %637 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %638 = alloca ptr, align 8
  %639 = alloca %"struct.langcc::rc_ptr.0", align 8
  %640 = alloca %"class.std::vector", align 8
  %641 = alloca %"class.std::__cxx11::basic_string", align 8
  %642 = alloca %"class.std::allocator", align 1
  %643 = alloca i1, align 1
  %644 = alloca %"class.std::allocator.73", align 1
  %645 = alloca %"struct.langcc::rc_ptr.0", align 8
  %646 = alloca %"struct.langcc::Option::_T.72", align 4
  %647 = alloca %"struct.langcc::rc_ptr.76", align 8
  %648 = alloca %"struct.langcc::Option::_T.72", align 4
  %649 = alloca %"struct.langcc::Option::_T.77", align 4
  %650 = alloca %"struct.langcc::rc_ptr.76", align 8
  %651 = alloca %"struct.langcc::Option::_T.72", align 4
  %652 = alloca %"struct.langcc::Option::_T.77", align 4
  %653 = alloca %"struct.langcc::rc_ptr.76", align 8
  %654 = alloca %"struct.langcc::Option::_T.72", align 4
  %655 = alloca %"struct.langcc::Option::_T.77", align 4
  %656 = alloca %"struct.langcc::rc_ptr.12", align 8
  %657 = alloca %"struct.langcc::rc_ptr.12", align 8
  %658 = alloca %"struct.langcc::rc_ptr.76", align 8
  %659 = alloca %"struct.langcc::rc_ptr.76", align 8
  %660 = alloca %"class.std::__cxx11::basic_string", align 8
  %661 = alloca %"class.std::allocator", align 1
  %662 = alloca %"class.std::__cxx11::basic_string", align 8
  %663 = alloca %"class.std::allocator", align 1
  %664 = alloca %"struct.langcc::rc_ptr.12", align 8
  %665 = alloca ptr, align 8
  %666 = alloca %"struct.langcc::MapIterator.121", align 8
  %667 = alloca %"struct.langcc::MapIterator.121", align 8
  %668 = alloca ptr, align 8
  %669 = alloca ptr, align 8
  %670 = alloca ptr, align 8
  %671 = alloca %"struct.langcc::rc_ptr.76", align 8
  %672 = alloca %"struct.langcc::rc_ptr.76", align 8
  %673 = alloca %"struct.langcc::rc_ptr.125", align 8
  %674 = alloca %"struct.langcc::rc_ptr.76", align 8
  %675 = alloca %"struct.langcc::rc_ptr.0", align 8
  %676 = alloca %"struct.langcc::Option::_T.72", align 4
  %677 = alloca %"struct.langcc::rc_ptr.76", align 8
  %678 = alloca %"struct.langcc::Option::_T.72", align 4
  %679 = alloca %"struct.langcc::Option::_T.77", align 4
  %680 = alloca %"struct.langcc::rc_ptr.76", align 8
  %681 = alloca %"struct.langcc::Option::_T.88", align 4
  %682 = alloca %"class.std::__cxx11::basic_string", align 8
  %683 = alloca %"class.std::allocator", align 1
  %684 = alloca ptr, align 8
  %685 = alloca %"struct.langcc::MapIterator.121", align 8
  %686 = alloca %"struct.langcc::MapIterator.121", align 8
  %687 = alloca ptr, align 8
  %688 = alloca ptr, align 8
  %689 = alloca ptr, align 8
  %690 = alloca %"struct.langcc::rc_ptr.76", align 8
  %691 = alloca %"struct.langcc::rc_ptr.76", align 8
  %692 = alloca %"struct.langcc::Option::_T.88", align 4
  %693 = alloca %"class.std::__cxx11::basic_string", align 8
  %694 = alloca %"class.std::allocator", align 1
  %695 = alloca ptr, align 8
  %696 = alloca %"struct.langcc::MapIterator.121", align 8
  %697 = alloca %"struct.langcc::MapIterator.121", align 8
  %698 = alloca ptr, align 8
  %699 = alloca ptr, align 8
  %700 = alloca ptr, align 8
  %701 = alloca %"struct.langcc::rc_ptr.76", align 8
  %702 = alloca %"struct.langcc::rc_ptr.0", align 8
  %703 = alloca %"struct.langcc::rc_ptr.76", align 8
  %704 = alloca %"struct.langcc::Option::_T.72", align 4
  %705 = alloca %"struct.langcc::rc_ptr.0", align 8
  %706 = alloca %"class.std::vector", align 8
  %707 = alloca %"class.std::initializer_list", align 8
  %708 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %709 = alloca ptr, align 8
  %710 = alloca %"class.std::allocator.73", align 1
  %711 = alloca %"struct.langcc::Option::_T.77", align 4
  %712 = alloca %"class.std::__cxx11::basic_string", align 8
  %713 = alloca i8, align 1
  %714 = alloca ptr, align 8
  %715 = alloca ptr, align 8
  %716 = alloca ptr, align 8
  %717 = alloca %"class.std::__cxx11::basic_string", align 8
  %718 = alloca %"class.std::__cxx11::basic_string", align 8
  %719 = alloca %"class.std::__cxx11::basic_string", align 8
  %720 = alloca %"class.std::allocator", align 1
  %721 = alloca %"struct.langcc::rc_ptr.76", align 8
  %722 = alloca %"struct.langcc::Option::_T.88", align 4
  %723 = alloca %"class.std::__cxx11::basic_string", align 8
  %724 = alloca %"class.std::allocator", align 1
  %725 = alloca %"struct.langcc::rc_ptr.76", align 8
  %726 = alloca ptr, align 8
  %727 = alloca %"struct.langcc::MapIterator.121", align 8
  %728 = alloca %"struct.langcc::MapIterator.121", align 8
  %729 = alloca ptr, align 8
  %730 = alloca ptr, align 8
  %731 = alloca ptr, align 8
  %732 = alloca %"struct.langcc::rc_ptr.76", align 8
  %733 = alloca %"struct.langcc::rc_ptr.0", align 8
  %734 = alloca %"struct.langcc::rc_ptr.76", align 8
  %735 = alloca %"struct.langcc::rc_ptr.12", align 8
  %736 = alloca i64, align 8
  %737 = alloca ptr, align 8
  %738 = alloca %"struct.langcc::MapIterator.121", align 8
  %739 = alloca %"struct.langcc::MapIterator.121", align 8
  %740 = alloca ptr, align 8
  %741 = alloca ptr, align 8
  %742 = alloca ptr, align 8
  %743 = alloca %"struct.langcc::rc_ptr.76", align 8
  %744 = alloca %"struct.langcc::rc_ptr.124", align 8
  %745 = alloca %"struct.langcc::rc_ptr.76", align 8
  %746 = alloca %"struct.langcc::rc_ptr.76", align 8
  %747 = alloca %"struct.langcc::Option::_T.72", align 4
  %748 = alloca %"struct.langcc::Option::_T.77", align 4
  %749 = alloca %"struct.langcc::rc_ptr.76", align 8
  %750 = alloca %"struct.langcc::Option::_T.72", align 4
  %751 = alloca %"struct.langcc::rc_ptr.0", align 8
  %752 = alloca %"class.std::vector", align 8
  %753 = alloca %"class.std::initializer_list", align 8
  %754 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %755 = alloca ptr, align 8
  %756 = alloca %"class.std::allocator.73", align 1
  %757 = alloca %"struct.langcc::Option::_T.77", align 4
  %758 = alloca %"struct.langcc::rc_ptr.76", align 8
  %759 = alloca %"struct.langcc::rc_ptr.76", align 8
  %760 = alloca %"struct.langcc::rc_ptr.12", align 8
  %761 = alloca i64, align 8
  %762 = alloca ptr, align 8
  %763 = alloca %"struct.langcc::MapIterator.121", align 8
  %764 = alloca %"struct.langcc::MapIterator.121", align 8
  %765 = alloca ptr, align 8
  %766 = alloca ptr, align 8
  %767 = alloca ptr, align 8
  %768 = alloca %"struct.langcc::rc_ptr.76", align 8
  %769 = alloca %"struct.langcc::rc_ptr.124", align 8
  %770 = alloca %"struct.langcc::rc_ptr.76", align 8
  %771 = alloca %"struct.langcc::rc_ptr.76", align 8
  %772 = alloca %"struct.langcc::Option::_T.72", align 4
  %773 = alloca %"struct.langcc::Option::_T.77", align 4
  %774 = alloca %"struct.langcc::rc_ptr.76", align 8
  %775 = alloca %"struct.langcc::Option::_T.72", align 4
  %776 = alloca %"struct.langcc::rc_ptr.0", align 8
  %777 = alloca %"class.std::vector", align 8
  %778 = alloca %"class.std::initializer_list", align 8
  %779 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %780 = alloca ptr, align 8
  %781 = alloca %"class.std::allocator.73", align 1
  %782 = alloca %"struct.langcc::Option::_T.77", align 4
  %783 = alloca %"struct.langcc::rc_ptr.76", align 8
  %784 = alloca %"struct.langcc::rc_ptr.76", align 8
  %785 = alloca %"struct.langcc::rc_ptr.76", align 8
  %786 = alloca %"struct.langcc::rc_ptr.33", align 8
  %787 = alloca %"struct.std::pair", align 8
  %788 = alloca ptr, align 8
  %789 = alloca ptr, align 8
  %790 = alloca %"struct.langcc::rc_ptr.76", align 8
  %791 = alloca %"struct.langcc::Option::_T.72", align 4
  %792 = alloca %"struct.langcc::Option::_T.77", align 4
  %793 = alloca %"struct.langcc::rc_ptr.76", align 8
  %794 = alloca %"struct.langcc::Option::_T.88", align 4
  %795 = alloca %"class.std::__cxx11::basic_string", align 8
  %796 = alloca %"class.std::allocator", align 1
  %797 = alloca %"struct.langcc::rc_ptr.76", align 8
  %798 = alloca %"struct.langcc::Option::_T.88", align 4
  %799 = alloca %"class.std::__cxx11::basic_string", align 8
  %800 = alloca %"class.std::allocator", align 1
  %801 = alloca %"struct.langcc::rc_ptr.76", align 8
  %802 = alloca %"struct.langcc::Option::_T.88", align 4
  %803 = alloca %"class.std::__cxx11::basic_string", align 8
  %804 = alloca %"class.std::allocator", align 1
  %805 = alloca ptr, align 8
  %806 = alloca ptr, align 8
  %807 = alloca ptr, align 8
  %808 = alloca %"struct.std::pair.109", align 8
  %809 = alloca %"class.std::__cxx11::basic_string", align 8
  %810 = alloca %"struct.langcc::rc_ptr.104", align 8
  %811 = alloca %"struct.langcc::rc_ptr.0", align 8
  %812 = alloca %"struct.langcc::rc_ptr.76", align 8
  %813 = alloca %"struct.langcc::rc_ptr.46", align 8
  %814 = alloca %"struct.langcc::rc_ptr.76", align 8
  %815 = alloca %"class.std::__cxx11::basic_string", align 8
  %816 = alloca %"struct.langcc::rc_ptr.76", align 8
  %817 = alloca %"struct.langcc::Option::_T.88", align 4
  %818 = alloca %"class.std::__cxx11::basic_string", align 8
  %819 = alloca %"class.std::allocator", align 1
  %820 = alloca ptr, align 8
  %821 = alloca ptr, align 8
  %822 = alloca ptr, align 8
  %823 = alloca ptr, align 8
  %824 = alloca %"class.std::__cxx11::basic_string", align 8
  %825 = alloca %"struct.langcc::rc_ptr.104", align 8
  %826 = alloca %"struct.langcc::rc_ptr.0", align 8
  %827 = alloca %"struct.langcc::rc_ptr.76", align 8
  %828 = alloca %"struct.langcc::rc_ptr.46", align 8
  %829 = alloca %"struct.langcc::rc_ptr.76", align 8
  %830 = alloca %"class.std::__cxx11::basic_string", align 8
  %831 = alloca %"class.std::__cxx11::basic_string", align 8
  %832 = alloca %"struct.langcc::rc_ptr.0", align 8
  %833 = alloca %"class.std::__cxx11::basic_string", align 8
  %834 = alloca %"struct.langcc::rc_ptr.76", align 8
  %835 = alloca %"struct.langcc::rc_ptr.76", align 8
  %836 = alloca %"struct.langcc::Option::_T.88", align 4
  %837 = alloca %"class.std::__cxx11::basic_string", align 8
  %838 = alloca %"class.std::allocator", align 1
  %839 = alloca %"struct.langcc::rc_ptr.76", align 8
  %840 = alloca %"struct.langcc::Option::_T.88", align 4
  %841 = alloca %"class.std::__cxx11::basic_string", align 8
  %842 = alloca %"class.std::allocator", align 1
  %843 = alloca %"class.std::__cxx11::basic_string", align 8
  %844 = alloca %"struct.langcc::rc_ptr.0", align 8
  %845 = alloca %"class.std::__cxx11::basic_string", align 8
  %846 = alloca %"struct.langcc::rc_ptr.76", align 8
  %847 = alloca %"struct.langcc::rc_ptr.76", align 8
  %848 = alloca %"struct.langcc::Option::_T.88", align 4
  %849 = alloca %"class.std::__cxx11::basic_string", align 8
  %850 = alloca %"class.std::allocator", align 1
  %851 = alloca %"struct.langcc::rc_ptr.76", align 8
  %852 = alloca %"struct.langcc::Option::_T.88", align 4
  %853 = alloca %"class.std::__cxx11::basic_string", align 8
  %854 = alloca %"class.std::allocator", align 1
  %855 = alloca %"class.std::__cxx11::basic_string", align 8
  %856 = alloca %"struct.langcc::rc_ptr.0", align 8
  %857 = alloca %"class.std::__cxx11::basic_string", align 8
  %858 = alloca %"struct.langcc::rc_ptr.76", align 8
  %859 = alloca %"struct.langcc::rc_ptr.76", align 8
  %860 = alloca %"struct.langcc::Option::_T.88", align 4
  %861 = alloca %"class.std::__cxx11::basic_string", align 8
  %862 = alloca %"class.std::allocator", align 1
  %863 = alloca ptr, align 8
  %864 = alloca ptr, align 8
  %865 = alloca ptr, align 8
  %866 = alloca %"struct.std::pair.109", align 8
  %867 = alloca %"class.std::__cxx11::basic_string", align 8
  %868 = alloca %"struct.langcc::rc_ptr.76", align 8
  %869 = alloca %"class.std::__cxx11::basic_string", align 8
  %870 = alloca %"struct.langcc::rc_ptr.76", align 8
  %871 = alloca %"struct.langcc::Option::_T.88", align 4
  %872 = alloca %"class.std::__cxx11::basic_string", align 8
  %873 = alloca %"class.std::allocator", align 1
  %874 = alloca %"struct.langcc::rc_ptr.76", align 8
  %875 = alloca %"struct.langcc::Option::_T.88", align 4
  %876 = alloca %"class.std::__cxx11::basic_string", align 8
  %877 = alloca %"class.std::allocator", align 1
  %878 = alloca %"struct.langcc::rc_ptr.76", align 8
  %879 = alloca %"struct.langcc::rc_ptr.33", align 8
  %880 = alloca %"struct.langcc::rc_ptr.76", align 8
  %881 = alloca %"struct.langcc::Option::_T.88", align 4
  %882 = alloca %"class.std::__cxx11::basic_string", align 8
  %883 = alloca %"class.std::allocator", align 1
  %884 = alloca %"struct.langcc::rc_ptr.76", align 8
  %885 = alloca %"struct.langcc::rc_ptr.76", align 8
  %886 = alloca %"struct.langcc::rc_ptr.76", align 8
  %887 = alloca %"struct.langcc::rc_ptr.12", align 8
  %888 = alloca %"struct.langcc::rc_ptr.12", align 8
  %889 = alloca %"struct.langcc::Option::_T.117", align 4
  %890 = alloca %"struct.langcc::rc_ptr.76", align 8
  %891 = alloca %"struct.langcc::rc_ptr.76", align 8
  %892 = alloca %"struct.langcc::Option::_T.72", align 4
  %893 = alloca %"struct.langcc::Option::_T.77", align 4
  %894 = alloca %"struct.langcc::rc_ptr.12", align 8
  %895 = alloca %"struct.langcc::rc_ptr.76", align 8
  %896 = alloca %"struct.langcc::rc_ptr.76", align 8
  %897 = alloca %"struct.langcc::rc_ptr.125", align 8
  %898 = alloca %"struct.langcc::rc_ptr.76", align 8
  %899 = alloca %"struct.langcc::Option::_T.117", align 4
  %900 = alloca %"struct.langcc::rc_ptr.76", align 8
  %901 = alloca %"struct.langcc::rc_ptr.76", align 8
  %902 = alloca %"struct.langcc::Option::_T.72", align 4
  %903 = alloca %"struct.langcc::Option::_T.77", align 4
  %904 = alloca %"struct.langcc::rc_ptr.0", align 8
  %905 = alloca %"struct.langcc::Option::_T.72", align 4
  %906 = alloca %"struct.langcc::rc_ptr.76", align 8
  %907 = alloca %"struct.langcc::rc_ptr.125", align 8
  %908 = alloca %"struct.langcc::rc_ptr.76", align 8
  %909 = alloca %"struct.langcc::Option::_T.117", align 4
  %910 = alloca %"struct.langcc::rc_ptr.76", align 8
  %911 = alloca %"struct.langcc::rc_ptr.76", align 8
  %912 = alloca %"struct.langcc::Option::_T.72", align 4
  %913 = alloca %"struct.langcc::Option::_T.77", align 4
  %914 = alloca %"struct.langcc::rc_ptr.0", align 8
  %915 = alloca %"struct.langcc::Option::_T.72", align 4
  %916 = alloca ptr, align 8
  %917 = alloca ptr, align 8
  %918 = alloca ptr, align 8
  %919 = alloca %"struct.std::pair.109", align 8
  %920 = alloca %"class.std::__cxx11::basic_string", align 8
  %921 = alloca %"struct.langcc::rc_ptr.76", align 8
  %922 = alloca %"struct.langcc::rc_ptr.12", align 8
  %923 = alloca %"struct.langcc::rc_ptr.12", align 8
  %924 = alloca %"struct.langcc::Option::_T.117", align 4
  %925 = alloca %"struct.langcc::rc_ptr.76", align 8
  %926 = alloca %"struct.langcc::rc_ptr.76", align 8
  %927 = alloca %"struct.langcc::Option::_T.72", align 4
  %928 = alloca %"struct.langcc::Option::_T.77", align 4
  %929 = alloca %"struct.langcc::rc_ptr.76", align 8
  %930 = alloca %"struct.langcc::Option::_T.72", align 4
  %931 = alloca %"struct.langcc::rc_ptr.0", align 8
  %932 = alloca %"class.std::vector", align 8
  %933 = alloca %"class.std::initializer_list", align 8
  %934 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %935 = alloca ptr, align 8
  %936 = alloca %"class.std::allocator.73", align 1
  %937 = alloca %"struct.langcc::Option::_T.77", align 4
  %938 = alloca ptr, align 8
  %939 = alloca %"struct.langcc::MapIterator.121", align 8
  %940 = alloca %"struct.langcc::MapIterator.121", align 8
  %941 = alloca ptr, align 8
  %942 = alloca ptr, align 8
  %943 = alloca ptr, align 8
  %944 = alloca %"struct.langcc::rc_ptr.76", align 8
  %945 = alloca %"struct.langcc::rc_ptr.12", align 8
  %946 = alloca %"struct.langcc::rc_ptr.12", align 8
  %947 = alloca %"struct.langcc::Option::_T.117", align 4
  %948 = alloca %"struct.langcc::rc_ptr.76", align 8
  %949 = alloca %"class.std::__cxx11::basic_string", align 8
  %950 = alloca %"class.std::allocator", align 1
  %951 = alloca %"struct.langcc::rc_ptr.76", align 8
  %952 = alloca %"struct.langcc::Option::_T.72", align 4
  %953 = alloca %"struct.langcc::rc_ptr.0", align 8
  %954 = alloca %"class.std::vector", align 8
  %955 = alloca %"class.std::initializer_list", align 8
  %956 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %957 = alloca ptr, align 8
  %958 = alloca %"class.std::allocator.73", align 1
  %959 = alloca %"struct.langcc::Option::_T.77", align 4
  %960 = alloca ptr, align 8
  %961 = alloca %"struct.langcc::MapIterator.121", align 8
  %962 = alloca %"struct.langcc::MapIterator.121", align 8
  %963 = alloca ptr, align 8
  %964 = alloca ptr, align 8
  %965 = alloca ptr, align 8
  %966 = alloca %"struct.langcc::rc_ptr.76", align 8
  %967 = alloca %"struct.langcc::rc_ptr.0", align 8
  %968 = alloca %"struct.langcc::rc_ptr.76", align 8
  %969 = alloca %"struct.langcc::rc_ptr.12", align 8
  %970 = alloca %"struct.langcc::rc_ptr.12", align 8
  %971 = alloca %"struct.langcc::Option::_T.117", align 4
  %972 = alloca %"struct.langcc::rc_ptr.76", align 8
  %973 = alloca %"struct.langcc::Option::_T.72", align 4
  %974 = alloca %"struct.langcc::rc_ptr.0", align 8
  %975 = alloca %"class.std::vector", align 8
  %976 = alloca %"class.std::initializer_list", align 8
  %977 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %978 = alloca ptr, align 8
  %979 = alloca %"class.std::allocator.73", align 1
  %980 = alloca %"struct.langcc::Option::_T.77", align 4
  %981 = alloca ptr, align 8
  %982 = alloca %"struct.langcc::MapIterator.121", align 8
  %983 = alloca %"struct.langcc::MapIterator.121", align 8
  %984 = alloca ptr, align 8
  %985 = alloca ptr, align 8
  %986 = alloca ptr, align 8
  %987 = alloca %"struct.langcc::rc_ptr.76", align 8
  %988 = alloca %"struct.langcc::rc_ptr.0", align 8
  %989 = alloca %"struct.langcc::rc_ptr.76", align 8
  %990 = alloca %"struct.langcc::rc_ptr.76", align 8
  %991 = alloca %"struct.langcc::rc_ptr.12", align 8
  %992 = alloca %"struct.langcc::rc_ptr.12", align 8
  %993 = alloca %"struct.langcc::Option::_T.117", align 4
  %994 = alloca %"struct.langcc::rc_ptr.76", align 8
  %995 = alloca %"struct.langcc::Option::_T.72", align 4
  %996 = alloca %"struct.langcc::rc_ptr.0", align 8
  %997 = alloca %"class.std::vector", align 8
  %998 = alloca %"class.std::initializer_list", align 8
  %999 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1000 = alloca ptr, align 8
  %1001 = alloca %"class.std::allocator.73", align 1
  %1002 = alloca %"struct.langcc::Option::_T.77", align 4
  %1003 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1004 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1005 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1006 = alloca %"struct.langcc::Option::_T.117", align 4
  %1007 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1008 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1009 = alloca %"struct.langcc::Option::_T.72", align 4
  %1010 = alloca %"struct.langcc::Option::_T.77", align 4
  %1011 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1012 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1013 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1014 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1015 = alloca %"struct.langcc::Option::_T.117", align 4
  %1016 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1017 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1018 = alloca %"struct.langcc::Option::_T.72", align 4
  %1019 = alloca %"struct.langcc::Option::_T.77", align 4
  %1020 = alloca %"struct.langcc::rc_ptr.33", align 8
  %1021 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1022 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1023 = alloca %"struct.langcc::Option::_T.72", align 4
  %1024 = alloca %"struct.langcc::Option::_T.77", align 4
  %1025 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1026 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1027 = alloca %"struct.langcc::Option::_T.88", align 4
  %1028 = alloca %"class.std::__cxx11::basic_string", align 8
  %1029 = alloca %"class.std::allocator", align 1
  %1030 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1031 = alloca %"struct.std::pair", align 8
  %1032 = alloca ptr, align 8
  %1033 = alloca ptr, align 8
  %1034 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1035 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1036 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1037 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1038 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1039 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1040 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1041 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1042 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1043 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1044 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1045 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1046 = alloca %"struct.langcc::Option::_T.117", align 4
  %1047 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1048 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1049 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1050 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1051 = alloca %"struct.langcc::rc_ptr.78", align 8
  %1052 = alloca %"class.std::__cxx11::basic_string", align 8
  %1053 = alloca %"class.std::allocator", align 1
  %1054 = alloca %"class.std::__cxx11::basic_string", align 8
  %1055 = alloca %"class.std::allocator", align 1
  %1056 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1057 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1058 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1059 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1060 = alloca %"struct.langcc::Option::_T.117", align 4
  %1061 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1062 = alloca %"class.std::__cxx11::basic_string", align 8
  %1063 = alloca %"class.std::allocator", align 1
  %1064 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1065 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1066 = alloca %"struct.langcc::rc_ptr.83", align 8
  %1067 = alloca %"class.std::__cxx11::basic_string", align 8
  %1068 = alloca %"class.std::allocator", align 1
  %1069 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1070 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1071 = alloca %"class.std::__cxx11::basic_string", align 8
  %1072 = alloca %"class.std::allocator", align 1
  %1073 = alloca %"class.std::__cxx11::basic_string", align 8
  %1074 = alloca %"class.std::allocator", align 1
  %1075 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1076 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1077 = alloca %"struct.langcc::Option::_T.88", align 4
  %1078 = alloca %"class.std::__cxx11::basic_string", align 8
  %1079 = alloca %"class.std::allocator", align 1
  %1080 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1081 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1082 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1083 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1084 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1085 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1086 = alloca %"struct.langcc::Option::_T.117", align 4
  %1087 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1088 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1089 = alloca %"struct.langcc::Option::_T.72", align 4
  %1090 = alloca %"struct.langcc::Option::_T.77", align 4
  %1091 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1092 = alloca %"struct.langcc::Option::_T.72", align 4
  %1093 = alloca %"struct.langcc::Option::_T.77", align 4
  %1094 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1095 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1096 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1097 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1098 = alloca %"struct.langcc::Option::_T.117", align 4
  %1099 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1100 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1101 = alloca %"struct.langcc::Option::_T.72", align 4
  %1102 = alloca %"struct.langcc::Option::_T.77", align 4
  %1103 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1104 = alloca %"struct.langcc::Option::_T.72", align 4
  %1105 = alloca %"struct.langcc::Option::_T.77", align 4
  %1106 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1107 = alloca ptr, align 8
  %1108 = alloca ptr, align 8
  %1109 = alloca ptr, align 8
  %1110 = alloca %"struct.std::pair.109", align 8
  %1111 = alloca %"class.std::__cxx11::basic_string", align 8
  %1112 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1113 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1114 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1115 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1116 = alloca %"struct.langcc::Option::_T.117", align 4
  %1117 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1118 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1119 = alloca %"struct.langcc::Option::_T.72", align 4
  %1120 = alloca %"struct.langcc::Option::_T.77", align 4
  %1121 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1122 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1123 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1124 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1125 = alloca %"struct.langcc::rc_ptr.78", align 8
  %1126 = alloca %"class.std::__cxx11::basic_string", align 8
  %1127 = alloca %"class.std::allocator", align 1
  %1128 = alloca %"class.std::__cxx11::basic_string", align 8
  %1129 = alloca %"class.std::__cxx11::basic_string", align 8
  %1130 = alloca %"class.std::allocator", align 1
  %1131 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1132 = alloca ptr, align 8
  %1133 = alloca %"struct.langcc::MapIterator.121", align 8
  %1134 = alloca %"struct.langcc::MapIterator.121", align 8
  %1135 = alloca ptr, align 8
  %1136 = alloca ptr, align 8
  %1137 = alloca ptr, align 8
  %1138 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1139 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1140 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1141 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1142 = alloca %"struct.langcc::Option::_T.117", align 4
  %1143 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1144 = alloca %"class.std::__cxx11::basic_string", align 8
  %1145 = alloca %"class.std::allocator", align 1
  %1146 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1147 = alloca %"struct.langcc::Option::_T.72", align 4
  %1148 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1149 = alloca %"class.std::vector", align 8
  %1150 = alloca %"class.std::initializer_list", align 8
  %1151 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1152 = alloca ptr, align 8
  %1153 = alloca %"class.std::allocator.73", align 1
  %1154 = alloca %"struct.langcc::Option::_T.77", align 4
  %1155 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1156 = alloca ptr, align 8
  %1157 = alloca %"struct.langcc::MapIterator.121", align 8
  %1158 = alloca %"struct.langcc::MapIterator.121", align 8
  %1159 = alloca ptr, align 8
  %1160 = alloca ptr, align 8
  %1161 = alloca ptr, align 8
  %1162 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1163 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1164 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1165 = alloca %"struct.langcc::Option::_T.72", align 4
  %1166 = alloca %"struct.langcc::Option::_T.77", align 4
  %1167 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1168 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1169 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1170 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1171 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1172 = alloca %"struct.langcc::Option::_T.117", align 4
  %1173 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1174 = alloca %"struct.langcc::Option::_T.72", align 4
  %1175 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1176 = alloca %"class.std::vector", align 8
  %1177 = alloca %"class.std::initializer_list", align 8
  %1178 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1179 = alloca ptr, align 8
  %1180 = alloca %"class.std::allocator.73", align 1
  %1181 = alloca %"struct.langcc::Option::_T.77", align 4
  %1182 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1183 = alloca ptr, align 8
  %1184 = alloca %"struct.langcc::MapIterator.121", align 8
  %1185 = alloca %"struct.langcc::MapIterator.121", align 8
  %1186 = alloca ptr, align 8
  %1187 = alloca ptr, align 8
  %1188 = alloca ptr, align 8
  %1189 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1190 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1191 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1192 = alloca %"struct.langcc::Option::_T.72", align 4
  %1193 = alloca %"struct.langcc::Option::_T.77", align 4
  %1194 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1195 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1196 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1197 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1198 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1199 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1200 = alloca %"struct.langcc::Option::_T.117", align 4
  %1201 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1202 = alloca %"struct.langcc::Option::_T.72", align 4
  %1203 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1204 = alloca %"class.std::vector", align 8
  %1205 = alloca %"class.std::initializer_list", align 8
  %1206 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1207 = alloca ptr, align 8
  %1208 = alloca %"class.std::allocator.73", align 1
  %1209 = alloca %"struct.langcc::Option::_T.77", align 4
  %1210 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1211 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1212 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1213 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1214 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1215 = alloca %"struct.langcc::Option::_T.117", align 4
  %1216 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1217 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1218 = alloca %"struct.langcc::Option::_T.72", align 4
  %1219 = alloca %"struct.langcc::Option::_T.77", align 4
  %1220 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1221 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1222 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1223 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1224 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1225 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1226 = alloca %"struct.langcc::Option::_T.117", align 4
  %1227 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1228 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1229 = alloca %"struct.langcc::Option::_T.72", align 4
  %1230 = alloca %"struct.langcc::Option::_T.77", align 4
  %1231 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1232 = alloca %"struct.langcc::rc_ptr.33", align 8
  %1233 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1234 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1235 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1236 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1237 = alloca %"struct.langcc::Option::_T.117", align 4
  %1238 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1239 = alloca %"struct.langcc::rc_ptr.78", align 8
  %1240 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1241 = alloca %"class.std::vector", align 8
  %1242 = alloca %"class.std::initializer_list", align 8
  %1243 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1244 = alloca ptr, align 8
  %1245 = alloca %"class.std::allocator", align 1
  %1246 = alloca i1, align 1
  %1247 = alloca %"class.std::allocator.73", align 1
  %1248 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1249 = alloca %"struct.langcc::Option::_T.72", align 4
  %1250 = alloca %"struct.langcc::Option::_T.77", align 4
  %1251 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1252 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1253 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1254 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1255 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1256 = alloca %"struct.langcc::Option::_T.117", align 4
  %1257 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1258 = alloca %"struct.langcc::rc_ptr.78", align 8
  %1259 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1260 = alloca %"class.std::vector", align 8
  %1261 = alloca %"class.std::initializer_list", align 8
  %1262 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1263 = alloca ptr, align 8
  %1264 = alloca %"class.std::allocator", align 1
  %1265 = alloca i1, align 1
  %1266 = alloca %"class.std::allocator.73", align 1
  %1267 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1268 = alloca %"struct.langcc::Option::_T.72", align 4
  %1269 = alloca %"struct.langcc::Option::_T.77", align 4
  %1270 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1271 = alloca ptr, align 8
  %1272 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %1273 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %1274 = alloca %"struct.std::pair.139", align 8
  %1275 = alloca ptr, align 8
  %1276 = alloca ptr, align 8
  %1277 = alloca %"struct.std::pair.131", align 8
  %1278 = alloca %"struct.langcc::rc_ptr.33", align 8
  %1279 = alloca %"struct.langcc::rc_ptr.118", align 8
  %1280 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1281 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1282 = alloca %"struct.langcc::rc_ptr.33", align 8
  %1283 = alloca %"struct.langcc::rc_ptr.118", align 8
  %1284 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1285 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1286 = alloca ptr, align 8
  %1287 = alloca %"struct.langcc::SetIterator", align 8
  %1288 = alloca %"struct.langcc::SetIterator", align 8
  %1289 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1290 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1291 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1292 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1293 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1294 = alloca %"struct.std::pair.149", align 4
  %1295 = alloca ptr, align 8
  %1296 = alloca ptr, align 8
  %1297 = alloca i1, align 1
  store ptr %0, ptr %5, align 8
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store i32 %3, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 376, ptr %9) #11
  call void @_ZN6langcc18DataCompileContextC2Ev(ptr noundef nonnull align 8 dereferenceable(376) %9)
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEJEEENS_6rc_ptrIT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %10)
          to label %1298 unwind label %1318

1298:                                             ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #11
  %1299 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1)
          to label %1300 unwind label %1322

1300:                                             ; preds = %1298
  invoke void @_ZN4lang4data4Node2_T9as_ModuleEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.126") align 8 %14, ptr noundef nonnull align 8 dereferenceable(136) %1299)
          to label %1301 unwind label %1322

1301:                                             ; preds = %1300
  %1302 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node6Module2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %1303 unwind label %1326

1303:                                             ; preds = %1301
  %1304 = getelementptr inbounds %"struct.lang::data::Node::Module::_T", ptr %1302, i32 0, i32 1
  %1305 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node4Decl2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1304)
          to label %1306 unwind label %1326

1306:                                             ; preds = %1303
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node6Module2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #11
  store ptr %1305, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  %1307 = load ptr, ptr %13, align 8, !tbaa !5
  %1308 = invoke noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node4Decl2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1307)
          to label %1309 unwind label %1331

1309:                                             ; preds = %1306
  store ptr %1308, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %1310 = load ptr, ptr %13, align 8, !tbaa !5
  %1311 = invoke noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node4Decl2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1310)
          to label %1312 unwind label %1335

1312:                                             ; preds = %1309
  store ptr %1311, ptr %16, align 8, !tbaa !5
  br label %1313

1313:                                             ; preds = %1344, %1312
  %1314 = load ptr, ptr %15, align 8, !tbaa !5
  %1315 = load ptr, ptr %16, align 8, !tbaa !5
  %1316 = icmp ne ptr %1314, %1315
  br i1 %1316, label %1339, label %1317

1317:                                             ; preds = %1313
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  br label %1364

1318:                                             ; preds = %4
  %1319 = landingpad { ptr, i32 }
          cleanup
  %1320 = extractvalue { ptr, i32 } %1319, 0
  store ptr %1320, ptr %11, align 8
  %1321 = extractvalue { ptr, i32 } %1319, 1
  store i32 %1321, ptr %12, align 4
  br label %11366

1322:                                             ; preds = %1300, %1298
  %1323 = landingpad { ptr, i32 }
          cleanup
  %1324 = extractvalue { ptr, i32 } %1323, 0
  store ptr %1324, ptr %11, align 8
  %1325 = extractvalue { ptr, i32 } %1323, 1
  store i32 %1325, ptr %12, align 4
  br label %1330

1326:                                             ; preds = %1303, %1301
  %1327 = landingpad { ptr, i32 }
          cleanup
  %1328 = extractvalue { ptr, i32 } %1327, 0
  store ptr %1328, ptr %11, align 8
  %1329 = extractvalue { ptr, i32 } %1327, 1
  store i32 %1329, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node6Module2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #11
  br label %1330

1330:                                             ; preds = %1326, %1322
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #11
  br label %1363

1331:                                             ; preds = %1306
  %1332 = landingpad { ptr, i32 }
          cleanup
  %1333 = extractvalue { ptr, i32 } %1332, 0
  store ptr %1333, ptr %11, align 8
  %1334 = extractvalue { ptr, i32 } %1332, 1
  store i32 %1334, ptr %12, align 4
  br label %1362

1335:                                             ; preds = %1309
  %1336 = landingpad { ptr, i32 }
          cleanup
  %1337 = extractvalue { ptr, i32 } %1336, 0
  store ptr %1337, ptr %11, align 8
  %1338 = extractvalue { ptr, i32 } %1336, 1
  store i32 %1338, ptr %12, align 4
  br label %1361

1339:                                             ; preds = %1313
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #11
  %1340 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %1340)
          to label %1341 unwind label %1347

1341:                                             ; preds = %1339
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %1342 unwind label %1351

1342:                                             ; preds = %1341
  invoke void @_ZN6langcc22tabulate_data_decl_accENS_6rc_ptrIN4lang4data4Node2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr noundef %18, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %1343 unwind label %1355

1343:                                             ; preds = %1342
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #11
  br label %1344

1344:                                             ; preds = %1343
  %1345 = load ptr, ptr %15, align 8, !tbaa !5
  %1346 = getelementptr inbounds %"struct.langcc::rc_ptr.9", ptr %1345, i32 1
  store ptr %1346, ptr %15, align 8, !tbaa !5
  br label %1313

1347:                                             ; preds = %1339
  %1348 = landingpad { ptr, i32 }
          cleanup
  %1349 = extractvalue { ptr, i32 } %1348, 0
  store ptr %1349, ptr %11, align 8
  %1350 = extractvalue { ptr, i32 } %1348, 1
  store i32 %1350, ptr %12, align 4
  br label %1360

1351:                                             ; preds = %1341
  %1352 = landingpad { ptr, i32 }
          cleanup
  %1353 = extractvalue { ptr, i32 } %1352, 0
  store ptr %1353, ptr %11, align 8
  %1354 = extractvalue { ptr, i32 } %1352, 1
  store i32 %1354, ptr %12, align 4
  br label %1359

1355:                                             ; preds = %1342
  %1356 = landingpad { ptr, i32 }
          cleanup
  %1357 = extractvalue { ptr, i32 } %1356, 0
  store ptr %1357, ptr %11, align 8
  %1358 = extractvalue { ptr, i32 } %1356, 1
  store i32 %1358, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #11
  br label %1359

1359:                                             ; preds = %1355, %1351
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  br label %1360

1360:                                             ; preds = %1359, %1347
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #11
  br label %1361

1361:                                             ; preds = %1360, %1335
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  br label %1362

1362:                                             ; preds = %1361, %1331
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  br label %1363

1363:                                             ; preds = %1362, %1330
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  br label %11365

1364:                                             ; preds = %1317
  %1365 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1366 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1365, i32 0, i32 2
  %1367 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1366)
          to label %1368 unwind label %1411

1368:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #11
  %1369 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1370 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1369, i32 0, i32 1
  %1371 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1370)
          to label %1372 unwind label %1415

1372:                                             ; preds = %1368
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %1373 unwind label %1419

1373:                                             ; preds = %1372
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %22, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %1374 unwind label %1423

1374:                                             ; preds = %1373
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA13_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %1371, ptr noundef %22, ptr noundef nonnull align 1 dereferenceable(13) @.str.105)
          to label %1375 unwind label %1427

1375:                                             ; preds = %1374
  %1376 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %1377 unwind label %1431

1377:                                             ; preds = %1375
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %20, ptr noundef nonnull align 8 dereferenceable(136) %1376)
          to label %1378 unwind label %1431

1378:                                             ; preds = %1377
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %1379 unwind label %1435

1379:                                             ; preds = %1378
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1367, ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %1380 unwind label %1439

1380:                                             ; preds = %1379
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %22) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #11
  %1381 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1382 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1381, i32 0, i32 2
  %1383 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1382)
          to label %1384 unwind label %1411

1384:                                             ; preds = %1380
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #11
  %1385 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1386 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1385, i32 0, i32 1
  %1387 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1386)
          to label %1388 unwind label %1449

1388:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %1389 unwind label %1453

1389:                                             ; preds = %1388
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %28, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %1390 unwind label %1457

1390:                                             ; preds = %1389
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA27_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %1387, ptr noundef %28, ptr noundef nonnull align 1 dereferenceable(27) @.str.106)
          to label %1391 unwind label %1461

1391:                                             ; preds = %1390
  %1392 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %1393 unwind label %1465

1393:                                             ; preds = %1391
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %26, ptr noundef nonnull align 8 dereferenceable(136) %1392)
          to label %1394 unwind label %1465

1394:                                             ; preds = %1393
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %1395 unwind label %1469

1395:                                             ; preds = %1394
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1383, ptr noundef nonnull align 8 dereferenceable(16) %25)
          to label %1396 unwind label %1473

1396:                                             ; preds = %1395
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %28) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %1397 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 7
  %1398 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1397)
          to label %1399 unwind label %1483

1399:                                             ; preds = %1396
  store ptr %1398, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  %1400 = load ptr, ptr %31, align 8, !tbaa !5
  %1401 = invoke noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1400)
          to label %1402 unwind label %1487

1402:                                             ; preds = %1399
  store ptr %1401, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %1403 = load ptr, ptr %31, align 8, !tbaa !5
  %1404 = invoke noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1403)
          to label %1405 unwind label %1491

1405:                                             ; preds = %1402
  store ptr %1404, ptr %33, align 8, !tbaa !5
  br label %1406

1406:                                             ; preds = %1516, %1405
  %1407 = load ptr, ptr %32, align 8, !tbaa !5
  %1408 = load ptr, ptr %33, align 8, !tbaa !5
  %1409 = icmp ne ptr %1407, %1408
  br i1 %1409, label %1495, label %1410

1410:                                             ; preds = %1406
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  br label %1576

1411:                                             ; preds = %1582, %1576, %1380, %1364
  %1412 = landingpad { ptr, i32 }
          cleanup
  %1413 = extractvalue { ptr, i32 } %1412, 0
  store ptr %1413, ptr %11, align 8
  %1414 = extractvalue { ptr, i32 } %1412, 1
  store i32 %1414, ptr %12, align 4
  br label %11365

1415:                                             ; preds = %1368
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %11, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %12, align 4
  br label %1448

1419:                                             ; preds = %1372
  %1420 = landingpad { ptr, i32 }
          cleanup
  %1421 = extractvalue { ptr, i32 } %1420, 0
  store ptr %1421, ptr %11, align 8
  %1422 = extractvalue { ptr, i32 } %1420, 1
  store i32 %1422, ptr %12, align 4
  br label %1447

1423:                                             ; preds = %1373
  %1424 = landingpad { ptr, i32 }
          cleanup
  %1425 = extractvalue { ptr, i32 } %1424, 0
  store ptr %1425, ptr %11, align 8
  %1426 = extractvalue { ptr, i32 } %1424, 1
  store i32 %1426, ptr %12, align 4
  br label %1446

1427:                                             ; preds = %1374
  %1428 = landingpad { ptr, i32 }
          cleanup
  %1429 = extractvalue { ptr, i32 } %1428, 0
  store ptr %1429, ptr %11, align 8
  %1430 = extractvalue { ptr, i32 } %1428, 1
  store i32 %1430, ptr %12, align 4
  br label %1445

1431:                                             ; preds = %1377, %1375
  %1432 = landingpad { ptr, i32 }
          cleanup
  %1433 = extractvalue { ptr, i32 } %1432, 0
  store ptr %1433, ptr %11, align 8
  %1434 = extractvalue { ptr, i32 } %1432, 1
  store i32 %1434, ptr %12, align 4
  br label %1444

1435:                                             ; preds = %1378
  %1436 = landingpad { ptr, i32 }
          cleanup
  %1437 = extractvalue { ptr, i32 } %1436, 0
  store ptr %1437, ptr %11, align 8
  %1438 = extractvalue { ptr, i32 } %1436, 1
  store i32 %1438, ptr %12, align 4
  br label %1443

1439:                                             ; preds = %1379
  %1440 = landingpad { ptr, i32 }
          cleanup
  %1441 = extractvalue { ptr, i32 } %1440, 0
  store ptr %1441, ptr %11, align 8
  %1442 = extractvalue { ptr, i32 } %1440, 1
  store i32 %1442, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #11
  br label %1443

1443:                                             ; preds = %1439, %1435
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #11
  br label %1444

1444:                                             ; preds = %1443, %1431
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #11
  br label %1445

1445:                                             ; preds = %1444, %1427
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %22) #11
  br label %1446

1446:                                             ; preds = %1445, %1423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  br label %1447

1447:                                             ; preds = %1446, %1419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #11
  br label %1448

1448:                                             ; preds = %1447, %1415
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #11
  br label %11365

1449:                                             ; preds = %1384
  %1450 = landingpad { ptr, i32 }
          cleanup
  %1451 = extractvalue { ptr, i32 } %1450, 0
  store ptr %1451, ptr %11, align 8
  %1452 = extractvalue { ptr, i32 } %1450, 1
  store i32 %1452, ptr %12, align 4
  br label %1482

1453:                                             ; preds = %1388
  %1454 = landingpad { ptr, i32 }
          cleanup
  %1455 = extractvalue { ptr, i32 } %1454, 0
  store ptr %1455, ptr %11, align 8
  %1456 = extractvalue { ptr, i32 } %1454, 1
  store i32 %1456, ptr %12, align 4
  br label %1481

1457:                                             ; preds = %1389
  %1458 = landingpad { ptr, i32 }
          cleanup
  %1459 = extractvalue { ptr, i32 } %1458, 0
  store ptr %1459, ptr %11, align 8
  %1460 = extractvalue { ptr, i32 } %1458, 1
  store i32 %1460, ptr %12, align 4
  br label %1480

1461:                                             ; preds = %1390
  %1462 = landingpad { ptr, i32 }
          cleanup
  %1463 = extractvalue { ptr, i32 } %1462, 0
  store ptr %1463, ptr %11, align 8
  %1464 = extractvalue { ptr, i32 } %1462, 1
  store i32 %1464, ptr %12, align 4
  br label %1479

1465:                                             ; preds = %1393, %1391
  %1466 = landingpad { ptr, i32 }
          cleanup
  %1467 = extractvalue { ptr, i32 } %1466, 0
  store ptr %1467, ptr %11, align 8
  %1468 = extractvalue { ptr, i32 } %1466, 1
  store i32 %1468, ptr %12, align 4
  br label %1478

1469:                                             ; preds = %1394
  %1470 = landingpad { ptr, i32 }
          cleanup
  %1471 = extractvalue { ptr, i32 } %1470, 0
  store ptr %1471, ptr %11, align 8
  %1472 = extractvalue { ptr, i32 } %1470, 1
  store i32 %1472, ptr %12, align 4
  br label %1477

1473:                                             ; preds = %1395
  %1474 = landingpad { ptr, i32 }
          cleanup
  %1475 = extractvalue { ptr, i32 } %1474, 0
  store ptr %1475, ptr %11, align 8
  %1476 = extractvalue { ptr, i32 } %1474, 1
  store i32 %1476, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #11
  br label %1477

1477:                                             ; preds = %1473, %1469
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #11
  br label %1478

1478:                                             ; preds = %1477, %1465
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #11
  br label %1479

1479:                                             ; preds = %1478, %1461
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %28) #11
  br label %1480

1480:                                             ; preds = %1479, %1457
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %1481

1481:                                             ; preds = %1480, %1453
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #11
  br label %1482

1482:                                             ; preds = %1481, %1449
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #11
  br label %11365

1483:                                             ; preds = %1396
  %1484 = landingpad { ptr, i32 }
          cleanup
  %1485 = extractvalue { ptr, i32 } %1484, 0
  store ptr %1485, ptr %11, align 8
  %1486 = extractvalue { ptr, i32 } %1484, 1
  store i32 %1486, ptr %12, align 4
  br label %1575

1487:                                             ; preds = %1399
  %1488 = landingpad { ptr, i32 }
          cleanup
  %1489 = extractvalue { ptr, i32 } %1488, 0
  store ptr %1489, ptr %11, align 8
  %1490 = extractvalue { ptr, i32 } %1488, 1
  store i32 %1490, ptr %12, align 4
  br label %1574

1491:                                             ; preds = %1402
  %1492 = landingpad { ptr, i32 }
          cleanup
  %1493 = extractvalue { ptr, i32 } %1492, 0
  store ptr %1493, ptr %11, align 8
  %1494 = extractvalue { ptr, i32 } %1492, 1
  store i32 %1494, ptr %12, align 4
  br label %1573

1495:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #11
  %1496 = load ptr, ptr %32, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %1496)
          to label %1497 unwind label %1519

1497:                                             ; preds = %1495
  %1498 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1499 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1498, i32 0, i32 2
  %1500 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1499)
          to label %1501 unwind label %1523

1501:                                             ; preds = %1497
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #11
  %1502 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1503 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1502, i32 0, i32 1
  %1504 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1503)
          to label %1505 unwind label %1527

1505:                                             ; preds = %1501
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %1506 unwind label %1531

1506:                                             ; preds = %1505
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %38, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %1507 unwind label %1535

1507:                                             ; preds = %1506
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.107, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %1508 unwind label %1539

1508:                                             ; preds = %1507
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %1509 unwind label %1543

1509:                                             ; preds = %1508
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIS4_EENS_6Option2_TISF_EEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %1504, ptr noundef %38, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %1510 unwind label %1547

1510:                                             ; preds = %1509
  %1511 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %37)
          to label %1512 unwind label %1551

1512:                                             ; preds = %1510
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %36, ptr noundef nonnull align 8 dereferenceable(136) %1511)
          to label %1513 unwind label %1551

1513:                                             ; preds = %1512
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %1514 unwind label %1555

1514:                                             ; preds = %1513
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1500, ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %1515 unwind label %1559

1515:                                             ; preds = %1514
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #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 @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %38) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  br label %1516

1516:                                             ; preds = %1515
  %1517 = load ptr, ptr %32, align 8, !tbaa !5
  %1518 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1517, i32 1
  store ptr %1518, ptr %32, align 8, !tbaa !5
  br label %1406

1519:                                             ; preds = %1495
  %1520 = landingpad { ptr, i32 }
          cleanup
  %1521 = extractvalue { ptr, i32 } %1520, 0
  store ptr %1521, ptr %11, align 8
  %1522 = extractvalue { ptr, i32 } %1520, 1
  store i32 %1522, ptr %12, align 4
  br label %1572

1523:                                             ; preds = %1497
  %1524 = landingpad { ptr, i32 }
          cleanup
  %1525 = extractvalue { ptr, i32 } %1524, 0
  store ptr %1525, ptr %11, align 8
  %1526 = extractvalue { ptr, i32 } %1524, 1
  store i32 %1526, ptr %12, align 4
  br label %1571

1527:                                             ; preds = %1501
  %1528 = landingpad { ptr, i32 }
          cleanup
  %1529 = extractvalue { ptr, i32 } %1528, 0
  store ptr %1529, ptr %11, align 8
  %1530 = extractvalue { ptr, i32 } %1528, 1
  store i32 %1530, ptr %12, align 4
  br label %1570

1531:                                             ; preds = %1505
  %1532 = landingpad { ptr, i32 }
          cleanup
  %1533 = extractvalue { ptr, i32 } %1532, 0
  store ptr %1533, ptr %11, align 8
  %1534 = extractvalue { ptr, i32 } %1532, 1
  store i32 %1534, ptr %12, align 4
  br label %1569

1535:                                             ; preds = %1506
  %1536 = landingpad { ptr, i32 }
          cleanup
  %1537 = extractvalue { ptr, i32 } %1536, 0
  store ptr %1537, ptr %11, align 8
  %1538 = extractvalue { ptr, i32 } %1536, 1
  store i32 %1538, ptr %12, align 4
  br label %1568

1539:                                             ; preds = %1507
  %1540 = landingpad { ptr, i32 }
          cleanup
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %11, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %12, align 4
  br label %1567

1543:                                             ; preds = %1508
  %1544 = landingpad { ptr, i32 }
          cleanup
  %1545 = extractvalue { ptr, i32 } %1544, 0
  store ptr %1545, ptr %11, align 8
  %1546 = extractvalue { ptr, i32 } %1544, 1
  store i32 %1546, ptr %12, align 4
  br label %1566

1547:                                             ; preds = %1509
  %1548 = landingpad { ptr, i32 }
          cleanup
  %1549 = extractvalue { ptr, i32 } %1548, 0
  store ptr %1549, ptr %11, align 8
  %1550 = extractvalue { ptr, i32 } %1548, 1
  store i32 %1550, ptr %12, align 4
  br label %1565

1551:                                             ; preds = %1512, %1510
  %1552 = landingpad { ptr, i32 }
          cleanup
  %1553 = extractvalue { ptr, i32 } %1552, 0
  store ptr %1553, ptr %11, align 8
  %1554 = extractvalue { ptr, i32 } %1552, 1
  store i32 %1554, ptr %12, align 4
  br label %1564

1555:                                             ; preds = %1513
  %1556 = landingpad { ptr, i32 }
          cleanup
  %1557 = extractvalue { ptr, i32 } %1556, 0
  store ptr %1557, ptr %11, align 8
  %1558 = extractvalue { ptr, i32 } %1556, 1
  store i32 %1558, ptr %12, align 4
  br label %1563

1559:                                             ; preds = %1514
  %1560 = landingpad { ptr, i32 }
          cleanup
  %1561 = extractvalue { ptr, i32 } %1560, 0
  store ptr %1561, ptr %11, align 8
  %1562 = extractvalue { ptr, i32 } %1560, 1
  store i32 %1562, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #11
  br label %1563

1563:                                             ; preds = %1559, %1555
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #11
  br label %1564

1564:                                             ; preds = %1563, %1551
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #11
  br label %1565

1565:                                             ; preds = %1564, %1547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  br label %1566

1566:                                             ; preds = %1565, %1543
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  br label %1567

1567:                                             ; preds = %1566, %1539
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %38) #11
  br label %1568

1568:                                             ; preds = %1567, %1535
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  br label %1569

1569:                                             ; preds = %1568, %1531
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  br label %1570

1570:                                             ; preds = %1569, %1527
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #11
  br label %1571

1571:                                             ; preds = %1570, %1523
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  br label %1572

1572:                                             ; preds = %1571, %1519
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  br label %1573

1573:                                             ; preds = %1572, %1491
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  br label %1574

1574:                                             ; preds = %1573, %1487
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %1575

1575:                                             ; preds = %1574, %1483
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  br label %11365

1576:                                             ; preds = %1410
  %1577 = invoke noundef zeroext i1 @_ZNK6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7is_someEv(ptr noundef nonnull align 4 dereferenceable(36) %2)
          to label %1578 unwind label %1411

1578:                                             ; preds = %1576
  br i1 %1577, label %1579, label %1647

1579:                                             ; preds = %1578
  %1580 = load i32, ptr %8, align 4, !tbaa !9
  %1581 = icmp eq i32 %1580, 0
  br i1 %1581, label %1582, label %1647

1582:                                             ; preds = %1579
  %1583 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1584 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1583, i32 0, i32 3
  %1585 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1584)
          to label %1586 unwind label %1411

1586:                                             ; preds = %1582
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #11
  %1587 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1588 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1587, i32 0, i32 1
  %1589 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1588)
          to label %1590 unwind label %1603

1590:                                             ; preds = %1586
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %1591 unwind label %1607

1591:                                             ; preds = %1590
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %47, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %1592 unwind label %1611

1592:                                             ; preds = %1591
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #11
  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.108, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %1593 unwind label %1615

1593:                                             ; preds = %1592
  %1594 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7as_someEv(ptr noundef nonnull align 4 dereferenceable(36) %2)
          to label %1595 unwind label %1619

1595:                                             ; preds = %1593
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %1594)
          to label %1596 unwind label %1619

1596:                                             ; preds = %1595
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIS4_EENS_6Option2_TISF_EEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %1589, ptr noundef %47, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %1597 unwind label %1623

1597:                                             ; preds = %1596
  %1598 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %46)
          to label %1599 unwind label %1627

1599:                                             ; preds = %1597
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %45, ptr noundef nonnull align 8 dereferenceable(136) %1598)
          to label %1600 unwind label %1627

1600:                                             ; preds = %1599
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %1601 unwind label %1631

1601:                                             ; preds = %1600
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1585, ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %1602 unwind label %1635

1602:                                             ; preds = %1601
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #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 @llvm.lifetime.end.p0(i64 32, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %47) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  br label %1647

1603:                                             ; preds = %1586
  %1604 = landingpad { ptr, i32 }
          cleanup
  %1605 = extractvalue { ptr, i32 } %1604, 0
  store ptr %1605, ptr %11, align 8
  %1606 = extractvalue { ptr, i32 } %1604, 1
  store i32 %1606, ptr %12, align 4
  br label %1646

1607:                                             ; preds = %1590
  %1608 = landingpad { ptr, i32 }
          cleanup
  %1609 = extractvalue { ptr, i32 } %1608, 0
  store ptr %1609, ptr %11, align 8
  %1610 = extractvalue { ptr, i32 } %1608, 1
  store i32 %1610, ptr %12, align 4
  br label %1645

1611:                                             ; preds = %1591
  %1612 = landingpad { ptr, i32 }
          cleanup
  %1613 = extractvalue { ptr, i32 } %1612, 0
  store ptr %1613, ptr %11, align 8
  %1614 = extractvalue { ptr, i32 } %1612, 1
  store i32 %1614, ptr %12, align 4
  br label %1644

1615:                                             ; preds = %1592
  %1616 = landingpad { ptr, i32 }
          cleanup
  %1617 = extractvalue { ptr, i32 } %1616, 0
  store ptr %1617, ptr %11, align 8
  %1618 = extractvalue { ptr, i32 } %1616, 1
  store i32 %1618, ptr %12, align 4
  br label %1643

1619:                                             ; preds = %1595, %1593
  %1620 = landingpad { ptr, i32 }
          cleanup
  %1621 = extractvalue { ptr, i32 } %1620, 0
  store ptr %1621, ptr %11, align 8
  %1622 = extractvalue { ptr, i32 } %1620, 1
  store i32 %1622, ptr %12, align 4
  br label %1642

1623:                                             ; preds = %1596
  %1624 = landingpad { ptr, i32 }
          cleanup
  %1625 = extractvalue { ptr, i32 } %1624, 0
  store ptr %1625, ptr %11, align 8
  %1626 = extractvalue { ptr, i32 } %1624, 1
  store i32 %1626, ptr %12, align 4
  br label %1641

1627:                                             ; preds = %1599, %1597
  %1628 = landingpad { ptr, i32 }
          cleanup
  %1629 = extractvalue { ptr, i32 } %1628, 0
  store ptr %1629, ptr %11, align 8
  %1630 = extractvalue { ptr, i32 } %1628, 1
  store i32 %1630, ptr %12, align 4
  br label %1640

1631:                                             ; preds = %1600
  %1632 = landingpad { ptr, i32 }
          cleanup
  %1633 = extractvalue { ptr, i32 } %1632, 0
  store ptr %1633, ptr %11, align 8
  %1634 = extractvalue { ptr, i32 } %1632, 1
  store i32 %1634, ptr %12, align 4
  br label %1639

1635:                                             ; preds = %1601
  %1636 = landingpad { ptr, i32 }
          cleanup
  %1637 = extractvalue { ptr, i32 } %1636, 0
  store ptr %1637, ptr %11, align 8
  %1638 = extractvalue { ptr, i32 } %1636, 1
  store i32 %1638, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #11
  br label %1639

1639:                                             ; preds = %1635, %1631
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #11
  br label %1640

1640:                                             ; preds = %1639, %1627
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #11
  br label %1641

1641:                                             ; preds = %1640, %1623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %1642

1642:                                             ; preds = %1641, %1619
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  br label %1643

1643:                                             ; preds = %1642, %1615
  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 @llvm.lifetime.end.p0(i64 32, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %47) #11
  br label %1644

1644:                                             ; preds = %1643, %1611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  br label %1645

1645:                                             ; preds = %1644, %1607
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #11
  br label %1646

1646:                                             ; preds = %1645, %1603
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  br label %11365

1647:                                             ; preds = %1602, %1579, %1578
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  %1648 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 4
  %1649 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Enum2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1648)
          to label %1650 unwind label %1669

1650:                                             ; preds = %1647
  store ptr %1649, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #11
  %1651 = load ptr, ptr %53, align 8, !tbaa !5
  %1652 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %1651)
          to label %1653 unwind label %1673

1653:                                             ; preds = %1650
  %1654 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 0
  %1655 = extractvalue { ptr, i64 } %1652, 0
  store ptr %1655, ptr %1654, align 8
  %1656 = getelementptr inbounds { ptr, i64 }, ptr %54, i32 0, i32 1
  %1657 = extractvalue { ptr, i64 } %1652, 1
  store i64 %1657, ptr %1656, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #11
  %1658 = load ptr, ptr %53, align 8, !tbaa !5
  %1659 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %1658)
          to label %1660 unwind label %1677

1660:                                             ; preds = %1653
  %1661 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 0
  %1662 = extractvalue { ptr, i64 } %1659, 0
  store ptr %1662, ptr %1661, align 8
  %1663 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 1
  %1664 = extractvalue { ptr, i64 } %1659, 1
  store i64 %1664, ptr %1663, align 8
  br label %1665

1665:                                             ; preds = %2582, %1660
  %1666 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEneERKSI_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(16) %55)
          to label %1667 unwind label %1677

1667:                                             ; preds = %1665
  br i1 %1666, label %1681, label %1668

1668:                                             ; preds = %1667
  store i32 6, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  br label %2738

1669:                                             ; preds = %1647
  %1670 = landingpad { ptr, i32 }
          cleanup
  %1671 = extractvalue { ptr, i32 } %1670, 0
  store ptr %1671, ptr %11, align 8
  %1672 = extractvalue { ptr, i32 } %1670, 1
  store i32 %1672, ptr %12, align 4
  br label %2737

1673:                                             ; preds = %1650
  %1674 = landingpad { ptr, i32 }
          cleanup
  %1675 = extractvalue { ptr, i32 } %1674, 0
  store ptr %1675, ptr %11, align 8
  %1676 = extractvalue { ptr, i32 } %1674, 1
  store i32 %1676, ptr %12, align 4
  br label %2736

1677:                                             ; preds = %2580, %1665, %1653
  %1678 = landingpad { ptr, i32 }
          cleanup
  %1679 = extractvalue { ptr, i32 } %1678, 0
  store ptr %1679, ptr %11, align 8
  %1680 = extractvalue { ptr, i32 } %1678, 1
  store i32 %1680, ptr %12, align 4
  br label %2735

1681:                                             ; preds = %1667
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %1682 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %1683 unwind label %1706

1683:                                             ; preds = %1681
  store ptr %1682, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #11
  %1684 = load ptr, ptr %57, align 8, !tbaa !5
  %1685 = getelementptr inbounds %"struct.std::pair.128", ptr %1684, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %1685)
          to label %1686 unwind label %1710

1686:                                             ; preds = %1683
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %59)
          to label %1687 unwind label %1714

1687:                                             ; preds = %1686
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %1688 = load ptr, ptr %57, align 8, !tbaa !5
  %1689 = getelementptr inbounds %"struct.std::pair.128", ptr %1688, i32 0, i32 1
  %1690 = invoke noundef ptr @_ZNK6langcc6rc_ptrIN4lang4data4Node4Decl4Enum2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1689)
          to label %1691 unwind label %1718

1691:                                             ; preds = %1687
  %1692 = getelementptr inbounds %"struct.lang::data::Node::Decl::Enum::_T", ptr %1690, i32 0, i32 2
  %1693 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK6langcc6rc_ptrINS_3VecINS_8StrSliceEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1692)
          to label %1694 unwind label %1718

1694:                                             ; preds = %1691
  store ptr %1693, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %1695 = load ptr, ptr %60, align 8, !tbaa !5
  %1696 = invoke noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1695)
          to label %1697 unwind label %1722

1697:                                             ; preds = %1694
  store ptr %1696, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %1698 = load ptr, ptr %60, align 8, !tbaa !5
  %1699 = invoke noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1698)
          to label %1700 unwind label %1726

1700:                                             ; preds = %1697
  store ptr %1699, ptr %62, align 8, !tbaa !5
  br label %1701

1701:                                             ; preds = %1739, %1700
  %1702 = load ptr, ptr %61, align 8, !tbaa !5
  %1703 = load ptr, ptr %62, align 8, !tbaa !5
  %1704 = icmp ne ptr %1702, %1703
  br i1 %1704, label %1730, label %1705

1705:                                             ; preds = %1701
  store i32 8, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %1764

1706:                                             ; preds = %1681
  %1707 = landingpad { ptr, i32 }
          cleanup
  %1708 = extractvalue { ptr, i32 } %1707, 0
  store ptr %1708, ptr %11, align 8
  %1709 = extractvalue { ptr, i32 } %1707, 1
  store i32 %1709, ptr %12, align 4
  br label %2734

1710:                                             ; preds = %1683
  %1711 = landingpad { ptr, i32 }
          cleanup
  %1712 = extractvalue { ptr, i32 } %1711, 0
  store ptr %1712, ptr %11, align 8
  %1713 = extractvalue { ptr, i32 } %1711, 1
  store i32 %1713, ptr %12, align 4
  br label %2733

1714:                                             ; preds = %1686
  %1715 = landingpad { ptr, i32 }
          cleanup
  %1716 = extractvalue { ptr, i32 } %1715, 0
  store ptr %1716, ptr %11, align 8
  %1717 = extractvalue { ptr, i32 } %1715, 1
  store i32 %1717, ptr %12, align 4
  br label %2732

1718:                                             ; preds = %1691, %1687
  %1719 = landingpad { ptr, i32 }
          cleanup
  %1720 = extractvalue { ptr, i32 } %1719, 0
  store ptr %1720, ptr %11, align 8
  %1721 = extractvalue { ptr, i32 } %1719, 1
  store i32 %1721, ptr %12, align 4
  br label %1763

1722:                                             ; preds = %1694
  %1723 = landingpad { ptr, i32 }
          cleanup
  %1724 = extractvalue { ptr, i32 } %1723, 0
  store ptr %1724, ptr %11, align 8
  %1725 = extractvalue { ptr, i32 } %1723, 1
  store i32 %1725, ptr %12, align 4
  br label %1762

1726:                                             ; preds = %1697
  %1727 = landingpad { ptr, i32 }
          cleanup
  %1728 = extractvalue { ptr, i32 } %1727, 0
  store ptr %1728, ptr %11, align 8
  %1729 = extractvalue { ptr, i32 } %1727, 1
  store i32 %1729, ptr %12, align 4
  br label %1761

1730:                                             ; preds = %1701
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #11
  %1731 = load ptr, ptr %61, align 8, !tbaa !5
  store ptr %1731, ptr %63, align 8, !tbaa !5
  %1732 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %59)
          to label %1733 unwind label %1742

1733:                                             ; preds = %1730
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #11
  %1734 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #11
  %1735 = load ptr, ptr %63, align 8, !tbaa !5
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %1735)
          to label %1736 unwind label %1746

1736:                                             ; preds = %1733
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %64, ptr noundef nonnull align 8 dereferenceable(264) %1734, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %1737 unwind label %1750

1737:                                             ; preds = %1736
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1732, ptr noundef nonnull align 8 dereferenceable(16) %64)
          to label %1738 unwind label %1754

1738:                                             ; preds = %1737
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  br label %1739

1739:                                             ; preds = %1738
  %1740 = load ptr, ptr %61, align 8, !tbaa !5
  %1741 = getelementptr inbounds %"struct.langcc::StrSlice", ptr %1740, i32 1
  store ptr %1741, ptr %61, align 8, !tbaa !5
  br label %1701

1742:                                             ; preds = %1730
  %1743 = landingpad { ptr, i32 }
          cleanup
  %1744 = extractvalue { ptr, i32 } %1743, 0
  store ptr %1744, ptr %11, align 8
  %1745 = extractvalue { ptr, i32 } %1743, 1
  store i32 %1745, ptr %12, align 4
  br label %1760

1746:                                             ; preds = %1733
  %1747 = landingpad { ptr, i32 }
          cleanup
  %1748 = extractvalue { ptr, i32 } %1747, 0
  store ptr %1748, ptr %11, align 8
  %1749 = extractvalue { ptr, i32 } %1747, 1
  store i32 %1749, ptr %12, align 4
  br label %1759

1750:                                             ; preds = %1736
  %1751 = landingpad { ptr, i32 }
          cleanup
  %1752 = extractvalue { ptr, i32 } %1751, 0
  store ptr %1752, ptr %11, align 8
  %1753 = extractvalue { ptr, i32 } %1751, 1
  store i32 %1753, ptr %12, align 4
  br label %1758

1754:                                             ; preds = %1737
  %1755 = landingpad { ptr, i32 }
          cleanup
  %1756 = extractvalue { ptr, i32 } %1755, 0
  store ptr %1756, ptr %11, align 8
  %1757 = extractvalue { ptr, i32 } %1755, 1
  store i32 %1757, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #11
  br label %1758

1758:                                             ; preds = %1754, %1750
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  br label %1759

1759:                                             ; preds = %1758, %1746
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #11
  br label %1760

1760:                                             ; preds = %1759, %1742
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  br label %1761

1761:                                             ; preds = %1760, %1726
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %1762

1762:                                             ; preds = %1761, %1722
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  br label %1763

1763:                                             ; preds = %1762, %1718
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %2731

1764:                                             ; preds = %1705
  %1765 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1766 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1765, i32 0, i32 2
  %1767 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1766)
          to label %1768 unwind label %1976

1768:                                             ; preds = %1764
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #11
  %1769 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef nonnull align 8 dereferenceable(16) %58)
          to label %1770 unwind label %1980

1770:                                             ; preds = %1768
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_decl_enumENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %68, ptr noundef nonnull align 8 dereferenceable(264) %1769, ptr noundef %69, ptr noundef nonnull align 8 dereferenceable(16) %59)
          to label %1771 unwind label %1984

1771:                                             ; preds = %1770
  %1772 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %1773 unwind label %1988

1773:                                             ; preds = %1771
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %67, ptr noundef nonnull align 8 dereferenceable(136) %1772)
          to label %1774 unwind label %1988

1774:                                             ; preds = %1773
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull align 8 dereferenceable(16) %67)
          to label %1775 unwind label %1992

1775:                                             ; preds = %1774
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1767, ptr noundef nonnull align 8 dereferenceable(16) %66)
          to label %1776 unwind label %1996

1776:                                             ; preds = %1775
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #11
  store i1 true, ptr %79, align 1
  store ptr %73, ptr %74, align 8
  %1777 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #11
  call void @llvm.memset.p0.i64(ptr align 8 %76, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %76) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %75, ptr noundef nonnull align 8 dereferenceable(24) %76)
          to label %1778 unwind label %2004

1778:                                             ; preds = %1776
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %1779 unwind label %2008

1779:                                             ; preds = %1778
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(264) %1777, ptr noundef %75, ptr noundef %77)
          to label %1780 unwind label %2012

1780:                                             ; preds = %1779
  store i1 false, ptr %79, align 1
  %1781 = getelementptr inbounds %"class.std::initializer_list", ptr %72, i32 0, i32 0
  store ptr %73, ptr %1781, align 8, !tbaa !11
  %1782 = getelementptr inbounds %"class.std::initializer_list", ptr %72, i32 0, i32 1
  store i64 1, ptr %1782, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #11
  %1783 = getelementptr inbounds { ptr, i64 }, ptr %72, i32 0, i32 0
  %1784 = load ptr, ptr %1783, align 8
  %1785 = getelementptr inbounds { ptr, i64 }, ptr %72, i32 0, i32 1
  %1786 = load i64, ptr %1785, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %71, ptr %1784, i64 %1786, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %1787 unwind label %2016

1787:                                             ; preds = %1780
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %70, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %1788 unwind label %2020

1788:                                             ; preds = %1787
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #11
  %1789 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %73, i32 0, i32 0
  %1790 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1789, i64 1
  br label %1791

1791:                                             ; preds = %1791, %1788
  %1792 = phi ptr [ %1790, %1788 ], [ %1793, %1791 ]
  %1793 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1792, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1793) #11
  %1794 = icmp eq ptr %1793, %1789
  br i1 %1794, label %1795, label %1791

1795:                                             ; preds = %1791
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %76) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %81) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr %84) #11
  store i1 true, ptr %88, align 1
  store ptr %84, ptr %85, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %1796 unwind label %2045

1796:                                             ; preds = %1795
  %1797 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %84, i64 1
  store ptr %1797, ptr %85, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1797, ptr noundef @.str.109, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1798 unwind label %2049

1798:                                             ; preds = %1796
  store i1 false, ptr %88, align 1
  %1799 = getelementptr inbounds %"class.std::initializer_list", ptr %83, i32 0, i32 0
  store ptr %84, ptr %1799, align 8, !tbaa !11
  %1800 = getelementptr inbounds %"class.std::initializer_list", ptr %83, i32 0, i32 1
  store i64 2, ptr %1800, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #11
  %1801 = getelementptr inbounds { ptr, i64 }, ptr %83, i32 0, i32 0
  %1802 = load ptr, ptr %1801, align 8
  %1803 = getelementptr inbounds { ptr, i64 }, ptr %83, i32 0, i32 1
  %1804 = load i64, ptr %1803, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %82, ptr %1802, i64 %1804, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %1805 unwind label %2053

1805:                                             ; preds = %1798
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %81, ptr noundef nonnull align 8 dereferenceable(24) %82)
          to label %1806 unwind label %2057

1806:                                             ; preds = %1805
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  %1807 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %84, i32 0, i32 0
  %1808 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1807, i64 2
  br label %1809

1809:                                             ; preds = %1809, %1806
  %1810 = phi ptr [ %1808, %1806 ], [ %1811, %1809 ]
  %1811 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1810, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1811) #11
  %1812 = icmp eq ptr %1811, %1807
  br i1 %1812, label %1813, label %1809

1813:                                             ; preds = %1809
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #11
  %1814 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %90, ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(264) %1814)
          to label %1815 unwind label %2081

1815:                                             ; preds = %1813
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %91)
          to label %1816 unwind label %2085

1816:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %92)
          to label %1817 unwind label %2089

1817:                                             ; preds = %1816
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #11
  %1818 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 8 dereferenceable(16) %70)
          to label %1819 unwind label %2093

1819:                                             ; preds = %1817
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %1820 unwind label %2097

1820:                                             ; preds = %1819
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(264) %1818, ptr noundef %94, ptr noundef %95)
          to label %1821 unwind label %2101

1821:                                             ; preds = %1820
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #11
  %1822 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %97, ptr noundef nonnull align 8 dereferenceable(264) %1822, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %1823 unwind label %2106

1823:                                             ; preds = %1821
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #11
  %1824 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1825 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1824, i32 0, i32 1
  %1826 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1825)
          to label %1827 unwind label %2110

1827:                                             ; preds = %1823
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %1828 unwind label %2114

1828:                                             ; preds = %1827
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %99, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %1829 unwind label %2118

1829:                                             ; preds = %1828
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA16_cNS_6rc_ptrIS4_EEEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %1826, ptr noundef %99, ptr noundef nonnull align 1 dereferenceable(16) @.str.112, ptr noundef nonnull align 8 dereferenceable(16) %97)
          to label %1830 unwind label %2122

1830:                                             ; preds = %1829
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %99) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #11
  %1831 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %1832 unwind label %2128

1832:                                             ; preds = %1830
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1831, ptr noundef nonnull align 8 dereferenceable(16) %98)
          to label %1833 unwind label %2128

1833:                                             ; preds = %1832
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #11
  %1834 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 8 dereferenceable(16) %70)
          to label %1835 unwind label %2132

1835:                                             ; preds = %1833
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %1836 unwind label %2136

1836:                                             ; preds = %1835
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(264) %1834, ptr noundef %103, ptr noundef %104)
          to label %1837 unwind label %2140

1837:                                             ; preds = %1836
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #11
  %1838 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %106, ptr noundef nonnull align 8 dereferenceable(264) %1838, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1839 unwind label %2145

1839:                                             ; preds = %1837
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #11
  %1840 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1841 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1840, i32 0, i32 1
  %1842 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1841)
          to label %1843 unwind label %2149

1843:                                             ; preds = %1839
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %1844 unwind label %2153

1844:                                             ; preds = %1843
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %108, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %1845 unwind label %2157

1845:                                             ; preds = %1844
  call void @llvm.lifetime.start.p0(i64 16, ptr %111) #11
  %1846 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %111, ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(264) %1846)
          to label %1847 unwind label %2161

1847:                                             ; preds = %1845
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrINS3_4Expr2_TEEENSA_IS4_EEEEESE_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %1842, ptr noundef %108, ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull align 8 dereferenceable(16) %106)
          to label %1848 unwind label %2165

1848:                                             ; preds = %1847
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %108) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #11
  %1849 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %1850 unwind label %2172

1850:                                             ; preds = %1848
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1849, ptr noundef nonnull align 8 dereferenceable(16) %107)
          to label %1851 unwind label %2172

1851:                                             ; preds = %1850
  %1852 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %92)
          to label %1853 unwind label %2172

1853:                                             ; preds = %1851
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #11
  %1854 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1855 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1854, i32 0, i32 1
  %1856 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1855)
          to label %1857 unwind label %2176

1857:                                             ; preds = %1853
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %1858 unwind label %2180

1858:                                             ; preds = %1857
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %113, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %1859 unwind label %2184

1859:                                             ; preds = %1858
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA2_cA26_cSC_A4_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %1856, ptr noundef %113, ptr noundef nonnull align 1 dereferenceable(18) @.str.113, ptr noundef nonnull align 8 dereferenceable(16) %97, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 1 dereferenceable(26) @.str.114, ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef nonnull align 1 dereferenceable(4) @.str.115)
          to label %1860 unwind label %2188

1860:                                             ; preds = %1859
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1852, ptr noundef nonnull align 8 dereferenceable(16) %112)
          to label %1861 unwind label %2192

1861:                                             ; preds = %1860
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %113) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #11
  %1862 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1863 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1862, i32 0, i32 2
  %1864 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1863)
          to label %1865 unwind label %2172

1865:                                             ; preds = %1861
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %117) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %118) #11
  %1866 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %119) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %119)
          to label %1867 unwind label %2200

1867:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %120)
          to label %1868 unwind label %2204

1868:                                             ; preds = %1867
  call void @llvm.lifetime.start.p0(i64 20, ptr %121) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #11
  %1869 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %124) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %124)
          to label %1870 unwind label %2208

1870:                                             ; preds = %1868
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %122, ptr noundef nonnull align 8 dereferenceable(264) %1869, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %1871 unwind label %2212

1871:                                             ; preds = %1870
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %121, ptr noundef nonnull align 8 dereferenceable(16) %122)
          to label %1872 unwind label %2216

1872:                                             ; preds = %1871
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %118, ptr noundef nonnull align 8 dereferenceable(264) %1866, ptr noundef nonnull align 8 dereferenceable(16) %119, ptr noundef nonnull align 8 dereferenceable(16) %120, ptr noundef nonnull align 4 dereferenceable(20) %121, ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %1873 unwind label %2220

1873:                                             ; preds = %1872
  %1874 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %118)
          to label %1875 unwind label %2224

1875:                                             ; preds = %1873
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %117, ptr noundef nonnull align 8 dereferenceable(136) %1874)
          to label %1876 unwind label %2224

1876:                                             ; preds = %1875
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef nonnull align 8 dereferenceable(16) %117)
          to label %1877 unwind label %2228

1877:                                             ; preds = %1876
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1864, ptr noundef nonnull align 8 dereferenceable(16) %116)
          to label %1878 unwind label %2232

1878:                                             ; preds = %1877
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %117) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %121) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %122) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %121) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %119) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %119) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #11
  %1879 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %1880 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %1879, i32 0, i32 3
  %1881 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1880)
          to label %1882 unwind label %2172

1882:                                             ; preds = %1878
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #11
  %1883 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %128)
          to label %1884 unwind label %2244

1884:                                             ; preds = %1882
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %129)
          to label %1885 unwind label %2248

1885:                                             ; preds = %1884
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #11
  %1886 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %130, i32 noundef %1886, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %1887 unwind label %2252

1887:                                             ; preds = %1885
  call void @llvm.lifetime.start.p0(i64 20, ptr %131) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %132) #11
  %1888 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %134) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %1889 unwind label %2256

1889:                                             ; preds = %1887
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %132, ptr noundef nonnull align 8 dereferenceable(264) %1888, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %1890 unwind label %2260

1890:                                             ; preds = %1889
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %131, ptr noundef nonnull align 8 dereferenceable(16) %132)
          to label %1891 unwind label %2264

1891:                                             ; preds = %1890
  call void @llvm.lifetime.start.p0(i64 16, ptr %135) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %135, ptr noundef nonnull align 8 dereferenceable(16) %90)
          to label %1892 unwind label %2268

1892:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 16, ptr %136) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %136)
          to label %1893 unwind label %2272

1893:                                             ; preds = %1892
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %127, ptr noundef nonnull align 8 dereferenceable(264) %1883, ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef nonnull align 8 dereferenceable(16) %129, ptr noundef nonnull align 8 dereferenceable(16) %130, ptr noundef nonnull align 4 dereferenceable(20) %131, ptr noundef nonnull align 8 dereferenceable(16) %135, ptr noundef nonnull align 8 dereferenceable(16) %91, ptr noundef nonnull align 8 dereferenceable(16) %136, ptr noundef nonnull align 8 dereferenceable(16) %92, i1 noundef zeroext false)
          to label %1894 unwind label %2276

1894:                                             ; preds = %1893
  %1895 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %127)
          to label %1896 unwind label %2280

1896:                                             ; preds = %1894
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %126, ptr noundef nonnull align 8 dereferenceable(136) %1895)
          to label %1897 unwind label %2280

1897:                                             ; preds = %1896
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef nonnull align 8 dereferenceable(16) %126)
          to label %1898 unwind label %2284

1898:                                             ; preds = %1897
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1881, ptr noundef nonnull align 8 dereferenceable(16) %125)
          to label %1899 unwind label %2288

1899:                                             ; preds = %1898
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %136) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %136) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %135) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %131) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %131) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %129) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %137) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %138) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #11
  store i1 true, ptr %146, align 1
  store ptr %140, ptr %141, align 8
  %1900 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %143) #11
  call void @llvm.memset.p0.i64(ptr align 8 %143, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %143) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %142, ptr noundef nonnull align 8 dereferenceable(24) %143)
          to label %1901 unwind label %2303

1901:                                             ; preds = %1899
  call void @llvm.lifetime.start.p0(i64 1, ptr %145) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %1902 unwind label %2307

1902:                                             ; preds = %1901
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %140, ptr noundef nonnull align 8 dereferenceable(264) %1900, ptr noundef %142, ptr noundef %144)
          to label %1903 unwind label %2311

1903:                                             ; preds = %1902
  store i1 false, ptr %146, align 1
  %1904 = getelementptr inbounds %"class.std::initializer_list", ptr %139, i32 0, i32 0
  store ptr %140, ptr %1904, align 8, !tbaa !11
  %1905 = getelementptr inbounds %"class.std::initializer_list", ptr %139, i32 0, i32 1
  store i64 1, ptr %1905, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #11
  %1906 = getelementptr inbounds { ptr, i64 }, ptr %139, i32 0, i32 0
  %1907 = load ptr, ptr %1906, align 8
  %1908 = getelementptr inbounds { ptr, i64 }, ptr %139, i32 0, i32 1
  %1909 = load i64, ptr %1908, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %138, ptr %1907, i64 %1909, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %1910 unwind label %2315

1910:                                             ; preds = %1903
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %137, ptr noundef nonnull align 8 dereferenceable(24) %138)
          to label %1911 unwind label %2319

1911:                                             ; preds = %1910
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %138) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #11
  %1912 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %140, i32 0, i32 0
  %1913 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1912, i64 1
  br label %1914

1914:                                             ; preds = %1914, %1911
  %1915 = phi ptr [ %1913, %1911 ], [ %1916, %1914 ]
  %1916 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1915, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1916) #11
  %1917 = icmp eq ptr %1916, %1912
  br i1 %1917, label %1918, label %1914

1918:                                             ; preds = %1914
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %143) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %143) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %138) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %148) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %149) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr %151) #11
  store i1 true, ptr %155, align 1
  store ptr %151, ptr %152, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %153) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %1919 unwind label %2344

1919:                                             ; preds = %1918
  %1920 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %151, i64 1
  store ptr %1920, ptr %152, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %154) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1920, ptr noundef @.str.116, ptr noundef nonnull align 1 dereferenceable(1) %154)
          to label %1921 unwind label %2348

1921:                                             ; preds = %1919
  store i1 false, ptr %155, align 1
  %1922 = getelementptr inbounds %"class.std::initializer_list", ptr %150, i32 0, i32 0
  store ptr %151, ptr %1922, align 8, !tbaa !11
  %1923 = getelementptr inbounds %"class.std::initializer_list", ptr %150, i32 0, i32 1
  store i64 2, ptr %1923, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #11
  %1924 = getelementptr inbounds { ptr, i64 }, ptr %150, i32 0, i32 0
  %1925 = load ptr, ptr %1924, align 8
  %1926 = getelementptr inbounds { ptr, i64 }, ptr %150, i32 0, i32 1
  %1927 = load i64, ptr %1926, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %149, ptr %1925, i64 %1927, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %1928 unwind label %2352

1928:                                             ; preds = %1921
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %148, ptr noundef nonnull align 8 dereferenceable(24) %149)
          to label %1929 unwind label %2356

1929:                                             ; preds = %1928
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %149) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #11
  %1930 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %151, i32 0, i32 0
  %1931 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1930, i64 2
  br label %1932

1932:                                             ; preds = %1932, %1929
  %1933 = phi ptr [ %1931, %1929 ], [ %1934, %1932 ]
  %1934 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %1933, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1934) #11
  %1935 = icmp eq ptr %1934, %1930
  br i1 %1935, label %1936, label %1932

1936:                                             ; preds = %1932
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %151) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %149) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %157) #11
  %1937 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %157, ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef nonnull align 8 dereferenceable(264) %1937)
          to label %1938 unwind label %2380

1938:                                             ; preds = %1936
  call void @llvm.lifetime.start.p0(i64 16, ptr %158) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %158)
          to label %1939 unwind label %2384

1939:                                             ; preds = %1938
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %159)
          to label %1940 unwind label %2388

1940:                                             ; preds = %1939
  call void @llvm.lifetime.start.p0(i64 16, ptr %160) #11
  %1941 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %161) #11
  %1942 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA14_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %161, ptr noundef nonnull align 8 dereferenceable(264) %1942, ptr noundef nonnull align 1 dereferenceable(14) @.str.117)
          to label %1943 unwind label %2392

1943:                                             ; preds = %1940
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %1944 unwind label %2396

1944:                                             ; preds = %1943
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %160, ptr noundef nonnull align 8 dereferenceable(264) %1941, ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull align 8 dereferenceable(16) %137, ptr noundef nonnull align 8 dereferenceable(16) %161, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %1945 unwind label %2400

1945:                                             ; preds = %1944
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %161) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %161) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #11
  %1946 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %165) #11
  %1947 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %165, ptr noundef nonnull align 8 dereferenceable(264) %1947, ptr noundef nonnull align 1 dereferenceable(17) @.str.119)
          to label %1948 unwind label %2406

1948:                                             ; preds = %1945
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %167)
          to label %1949 unwind label %2410

1949:                                             ; preds = %1948
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %164, ptr noundef nonnull align 8 dereferenceable(264) %1946, ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull align 8 dereferenceable(16) %137, ptr noundef nonnull align 8 dereferenceable(16) %165, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %1950 unwind label %2414

1950:                                             ; preds = %1949
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %165) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %165) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %168) #11
  %1951 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %169) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %170) #11
  %1952 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %170, ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(264) %1952)
          to label %1953 unwind label %2420

1953:                                             ; preds = %1950
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 8 dereferenceable(16) %170)
          to label %1954 unwind label %2424

1954:                                             ; preds = %1953
  call void @llvm.lifetime.start.p0(i64 32, ptr %171) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %172) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %172)
          to label %1955 unwind label %2428

1955:                                             ; preds = %1954
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %168, ptr noundef nonnull align 8 dereferenceable(264) %1951, ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull align 8 dereferenceable(16) %137, ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 8 dereferenceable(32) %171)
          to label %1956 unwind label %2432

1956:                                             ; preds = %1955
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %169) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %170) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %169) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %173) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %173)
          to label %1957 unwind label %2439

1957:                                             ; preds = %1956
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #11
  %1958 = load ptr, ptr %57, align 8, !tbaa !5
  %1959 = getelementptr inbounds %"struct.std::pair.128", ptr %1958, i32 0, i32 1
  %1960 = invoke noundef ptr @_ZNK6langcc6rc_ptrIN4lang4data4Node4Decl4Enum2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1959)
          to label %1961 unwind label %2443

1961:                                             ; preds = %1957
  %1962 = getelementptr inbounds %"struct.lang::data::Node::Decl::Enum::_T", ptr %1960, i32 0, i32 2
  %1963 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK6langcc6rc_ptrINS_3VecINS_8StrSliceEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1962)
          to label %1964 unwind label %2443

1964:                                             ; preds = %1961
  store ptr %1963, ptr %174, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #11
  %1965 = load ptr, ptr %174, align 8, !tbaa !5
  %1966 = invoke noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1965)
          to label %1967 unwind label %2447

1967:                                             ; preds = %1964
  store ptr %1966, ptr %175, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #11
  %1968 = load ptr, ptr %174, align 8, !tbaa !5
  %1969 = invoke noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1968)
          to label %1970 unwind label %2451

1970:                                             ; preds = %1967
  store ptr %1969, ptr %176, align 8, !tbaa !5
  br label %1971

1971:                                             ; preds = %2474, %1970
  %1972 = load ptr, ptr %175, align 8, !tbaa !5
  %1973 = load ptr, ptr %176, align 8, !tbaa !5
  %1974 = icmp ne ptr %1972, %1973
  br i1 %1974, label %2455, label %1975

1975:                                             ; preds = %1971
  store i32 10, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #11
  br label %2529

1976:                                             ; preds = %1764
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %11, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %12, align 4
  br label %2731

1980:                                             ; preds = %1768
  %1981 = landingpad { ptr, i32 }
          cleanup
  %1982 = extractvalue { ptr, i32 } %1981, 0
  store ptr %1982, ptr %11, align 8
  %1983 = extractvalue { ptr, i32 } %1981, 1
  store i32 %1983, ptr %12, align 4
  br label %2003

1984:                                             ; preds = %1770
  %1985 = landingpad { ptr, i32 }
          cleanup
  %1986 = extractvalue { ptr, i32 } %1985, 0
  store ptr %1986, ptr %11, align 8
  %1987 = extractvalue { ptr, i32 } %1985, 1
  store i32 %1987, ptr %12, align 4
  br label %2002

1988:                                             ; preds = %1773, %1771
  %1989 = landingpad { ptr, i32 }
          cleanup
  %1990 = extractvalue { ptr, i32 } %1989, 0
  store ptr %1990, ptr %11, align 8
  %1991 = extractvalue { ptr, i32 } %1989, 1
  store i32 %1991, ptr %12, align 4
  br label %2001

1992:                                             ; preds = %1774
  %1993 = landingpad { ptr, i32 }
          cleanup
  %1994 = extractvalue { ptr, i32 } %1993, 0
  store ptr %1994, ptr %11, align 8
  %1995 = extractvalue { ptr, i32 } %1993, 1
  store i32 %1995, ptr %12, align 4
  br label %2000

1996:                                             ; preds = %1775
  %1997 = landingpad { ptr, i32 }
          cleanup
  %1998 = extractvalue { ptr, i32 } %1997, 0
  store ptr %1998, ptr %11, align 8
  %1999 = extractvalue { ptr, i32 } %1997, 1
  store i32 %1999, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #11
  br label %2000

2000:                                             ; preds = %1996, %1992
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #11
  br label %2001

2001:                                             ; preds = %2000, %1988
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #11
  br label %2002

2002:                                             ; preds = %2001, %1984
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #11
  br label %2003

2003:                                             ; preds = %2002, %1980
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #11
  br label %2731

2004:                                             ; preds = %1776
  %2005 = landingpad { ptr, i32 }
          cleanup
  %2006 = extractvalue { ptr, i32 } %2005, 0
  store ptr %2006, ptr %11, align 8
  %2007 = extractvalue { ptr, i32 } %2005, 1
  store i32 %2007, ptr %12, align 4
  br label %2034

2008:                                             ; preds = %1778
  %2009 = landingpad { ptr, i32 }
          cleanup
  %2010 = extractvalue { ptr, i32 } %2009, 0
  store ptr %2010, ptr %11, align 8
  %2011 = extractvalue { ptr, i32 } %2009, 1
  store i32 %2011, ptr %12, align 4
  br label %2033

2012:                                             ; preds = %1779
  %2013 = landingpad { ptr, i32 }
          cleanup
  %2014 = extractvalue { ptr, i32 } %2013, 0
  store ptr %2014, ptr %11, align 8
  %2015 = extractvalue { ptr, i32 } %2013, 1
  store i32 %2015, ptr %12, align 4
  br label %2032

2016:                                             ; preds = %1780
  %2017 = landingpad { ptr, i32 }
          cleanup
  %2018 = extractvalue { ptr, i32 } %2017, 0
  store ptr %2018, ptr %11, align 8
  %2019 = extractvalue { ptr, i32 } %2017, 1
  store i32 %2019, ptr %12, align 4
  br label %2024

2020:                                             ; preds = %1787
  %2021 = landingpad { ptr, i32 }
          cleanup
  %2022 = extractvalue { ptr, i32 } %2021, 0
  store ptr %2022, ptr %11, align 8
  %2023 = extractvalue { ptr, i32 } %2021, 1
  store i32 %2023, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #11
  br label %2024

2024:                                             ; preds = %2020, %2016
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #11
  %2025 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %73, i32 0, i32 0
  %2026 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2025, i64 1
  br label %2027

2027:                                             ; preds = %2027, %2024
  %2028 = phi ptr [ %2026, %2024 ], [ %2029, %2027 ]
  %2029 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2028, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2029) #11
  %2030 = icmp eq ptr %2029, %2025
  br i1 %2030, label %2031, label %2027

2031:                                             ; preds = %2027
  br label %2032

2032:                                             ; preds = %2031, %2012
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  br label %2033

2033:                                             ; preds = %2032, %2008
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #11
  br label %2034

2034:                                             ; preds = %2033, %2004
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %76) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #11
  %2035 = load i1, ptr %79, align 1
  br i1 %2035, label %2036, label %2044

2036:                                             ; preds = %2034
  %2037 = load ptr, ptr %74, align 8
  %2038 = icmp eq ptr %73, %2037
  br i1 %2038, label %2043, label %2039

2039:                                             ; preds = %2039, %2036
  %2040 = phi ptr [ %2037, %2036 ], [ %2041, %2039 ]
  %2041 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2040, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2041) #11
  %2042 = icmp eq ptr %2041, %73
  br i1 %2042, label %2043, label %2039

2043:                                             ; preds = %2039, %2036
  br label %2044

2044:                                             ; preds = %2043, %2034
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %71) #11
  br label %2730

2045:                                             ; preds = %1795
  %2046 = landingpad { ptr, i32 }
          cleanup
  %2047 = extractvalue { ptr, i32 } %2046, 0
  store ptr %2047, ptr %11, align 8
  %2048 = extractvalue { ptr, i32 } %2046, 1
  store i32 %2048, ptr %12, align 4
  br label %2070

2049:                                             ; preds = %1796
  %2050 = landingpad { ptr, i32 }
          cleanup
  %2051 = extractvalue { ptr, i32 } %2050, 0
  store ptr %2051, ptr %11, align 8
  %2052 = extractvalue { ptr, i32 } %2050, 1
  store i32 %2052, ptr %12, align 4
  br label %2069

2053:                                             ; preds = %1798
  %2054 = landingpad { ptr, i32 }
          cleanup
  %2055 = extractvalue { ptr, i32 } %2054, 0
  store ptr %2055, ptr %11, align 8
  %2056 = extractvalue { ptr, i32 } %2054, 1
  store i32 %2056, ptr %12, align 4
  br label %2061

2057:                                             ; preds = %1805
  %2058 = landingpad { ptr, i32 }
          cleanup
  %2059 = extractvalue { ptr, i32 } %2058, 0
  store ptr %2059, ptr %11, align 8
  %2060 = extractvalue { ptr, i32 } %2058, 1
  store i32 %2060, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #11
  br label %2061

2061:                                             ; preds = %2057, %2053
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  %2062 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %84, i32 0, i32 0
  %2063 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2062, i64 2
  br label %2064

2064:                                             ; preds = %2064, %2061
  %2065 = phi ptr [ %2063, %2061 ], [ %2066, %2064 ]
  %2066 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2065, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2066) #11
  %2067 = icmp eq ptr %2066, %2062
  br i1 %2067, label %2068, label %2064

2068:                                             ; preds = %2064
  br label %2069

2069:                                             ; preds = %2068, %2049
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #11
  br label %2070

2070:                                             ; preds = %2069, %2045
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #11
  %2071 = load i1, ptr %88, align 1
  br i1 %2071, label %2072, label %2080

2072:                                             ; preds = %2070
  %2073 = load ptr, ptr %85, align 8
  %2074 = icmp eq ptr %84, %2073
  br i1 %2074, label %2079, label %2075

2075:                                             ; preds = %2075, %2072
  %2076 = phi ptr [ %2073, %2072 ], [ %2077, %2075 ]
  %2077 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2076, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2077) #11
  %2078 = icmp eq ptr %2077, %84
  br i1 %2078, label %2079, label %2075

2079:                                             ; preds = %2075, %2072
  br label %2080

2080:                                             ; preds = %2079, %2070
  call void @llvm.lifetime.end.p0(i64 64, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #11
  br label %2729

2081:                                             ; preds = %1813
  %2082 = landingpad { ptr, i32 }
          cleanup
  %2083 = extractvalue { ptr, i32 } %2082, 0
  store ptr %2083, ptr %11, align 8
  %2084 = extractvalue { ptr, i32 } %2082, 1
  store i32 %2084, ptr %12, align 4
  br label %2728

2085:                                             ; preds = %1815
  %2086 = landingpad { ptr, i32 }
          cleanup
  %2087 = extractvalue { ptr, i32 } %2086, 0
  store ptr %2087, ptr %11, align 8
  %2088 = extractvalue { ptr, i32 } %2086, 1
  store i32 %2088, ptr %12, align 4
  br label %2727

2089:                                             ; preds = %1816
  %2090 = landingpad { ptr, i32 }
          cleanup
  %2091 = extractvalue { ptr, i32 } %2090, 0
  store ptr %2091, ptr %11, align 8
  %2092 = extractvalue { ptr, i32 } %2090, 1
  store i32 %2092, ptr %12, align 4
  br label %2726

2093:                                             ; preds = %1817
  %2094 = landingpad { ptr, i32 }
          cleanup
  %2095 = extractvalue { ptr, i32 } %2094, 0
  store ptr %2095, ptr %11, align 8
  %2096 = extractvalue { ptr, i32 } %2094, 1
  store i32 %2096, ptr %12, align 4
  br label %2725

2097:                                             ; preds = %1819
  %2098 = landingpad { ptr, i32 }
          cleanup
  %2099 = extractvalue { ptr, i32 } %2098, 0
  store ptr %2099, ptr %11, align 8
  %2100 = extractvalue { ptr, i32 } %2098, 1
  store i32 %2100, ptr %12, align 4
  br label %2105

2101:                                             ; preds = %1820
  %2102 = landingpad { ptr, i32 }
          cleanup
  %2103 = extractvalue { ptr, i32 } %2102, 0
  store ptr %2103, ptr %11, align 8
  %2104 = extractvalue { ptr, i32 } %2102, 1
  store i32 %2104, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  br label %2105

2105:                                             ; preds = %2101, %2097
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #11
  br label %2725

2106:                                             ; preds = %1821
  %2107 = landingpad { ptr, i32 }
          cleanup
  %2108 = extractvalue { ptr, i32 } %2107, 0
  store ptr %2108, ptr %11, align 8
  %2109 = extractvalue { ptr, i32 } %2107, 1
  store i32 %2109, ptr %12, align 4
  br label %2724

2110:                                             ; preds = %1823
  %2111 = landingpad { ptr, i32 }
          cleanup
  %2112 = extractvalue { ptr, i32 } %2111, 0
  store ptr %2112, ptr %11, align 8
  %2113 = extractvalue { ptr, i32 } %2111, 1
  store i32 %2113, ptr %12, align 4
  br label %2723

2114:                                             ; preds = %1827
  %2115 = landingpad { ptr, i32 }
          cleanup
  %2116 = extractvalue { ptr, i32 } %2115, 0
  store ptr %2116, ptr %11, align 8
  %2117 = extractvalue { ptr, i32 } %2115, 1
  store i32 %2117, ptr %12, align 4
  br label %2127

2118:                                             ; preds = %1828
  %2119 = landingpad { ptr, i32 }
          cleanup
  %2120 = extractvalue { ptr, i32 } %2119, 0
  store ptr %2120, ptr %11, align 8
  %2121 = extractvalue { ptr, i32 } %2119, 1
  store i32 %2121, ptr %12, align 4
  br label %2126

2122:                                             ; preds = %1829
  %2123 = landingpad { ptr, i32 }
          cleanup
  %2124 = extractvalue { ptr, i32 } %2123, 0
  store ptr %2124, ptr %11, align 8
  %2125 = extractvalue { ptr, i32 } %2123, 1
  store i32 %2125, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %99) #11
  br label %2126

2126:                                             ; preds = %2122, %2118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  br label %2127

2127:                                             ; preds = %2126, %2114
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #11
  br label %2723

2128:                                             ; preds = %1832, %1830
  %2129 = landingpad { ptr, i32 }
          cleanup
  %2130 = extractvalue { ptr, i32 } %2129, 0
  store ptr %2130, ptr %11, align 8
  %2131 = extractvalue { ptr, i32 } %2129, 1
  store i32 %2131, ptr %12, align 4
  br label %2722

2132:                                             ; preds = %1833
  %2133 = landingpad { ptr, i32 }
          cleanup
  %2134 = extractvalue { ptr, i32 } %2133, 0
  store ptr %2134, ptr %11, align 8
  %2135 = extractvalue { ptr, i32 } %2133, 1
  store i32 %2135, ptr %12, align 4
  br label %2721

2136:                                             ; preds = %1835
  %2137 = landingpad { ptr, i32 }
          cleanup
  %2138 = extractvalue { ptr, i32 } %2137, 0
  store ptr %2138, ptr %11, align 8
  %2139 = extractvalue { ptr, i32 } %2137, 1
  store i32 %2139, ptr %12, align 4
  br label %2144

2140:                                             ; preds = %1836
  %2141 = landingpad { ptr, i32 }
          cleanup
  %2142 = extractvalue { ptr, i32 } %2141, 0
  store ptr %2142, ptr %11, align 8
  %2143 = extractvalue { ptr, i32 } %2141, 1
  store i32 %2143, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  br label %2144

2144:                                             ; preds = %2140, %2136
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #11
  br label %2721

2145:                                             ; preds = %1837
  %2146 = landingpad { ptr, i32 }
          cleanup
  %2147 = extractvalue { ptr, i32 } %2146, 0
  store ptr %2147, ptr %11, align 8
  %2148 = extractvalue { ptr, i32 } %2146, 1
  store i32 %2148, ptr %12, align 4
  br label %2720

2149:                                             ; preds = %1839
  %2150 = landingpad { ptr, i32 }
          cleanup
  %2151 = extractvalue { ptr, i32 } %2150, 0
  store ptr %2151, ptr %11, align 8
  %2152 = extractvalue { ptr, i32 } %2150, 1
  store i32 %2152, ptr %12, align 4
  br label %2719

2153:                                             ; preds = %1843
  %2154 = landingpad { ptr, i32 }
          cleanup
  %2155 = extractvalue { ptr, i32 } %2154, 0
  store ptr %2155, ptr %11, align 8
  %2156 = extractvalue { ptr, i32 } %2154, 1
  store i32 %2156, ptr %12, align 4
  br label %2171

2157:                                             ; preds = %1844
  %2158 = landingpad { ptr, i32 }
          cleanup
  %2159 = extractvalue { ptr, i32 } %2158, 0
  store ptr %2159, ptr %11, align 8
  %2160 = extractvalue { ptr, i32 } %2158, 1
  store i32 %2160, ptr %12, align 4
  br label %2170

2161:                                             ; preds = %1845
  %2162 = landingpad { ptr, i32 }
          cleanup
  %2163 = extractvalue { ptr, i32 } %2162, 0
  store ptr %2163, ptr %11, align 8
  %2164 = extractvalue { ptr, i32 } %2162, 1
  store i32 %2164, ptr %12, align 4
  br label %2169

2165:                                             ; preds = %1847
  %2166 = landingpad { ptr, i32 }
          cleanup
  %2167 = extractvalue { ptr, i32 } %2166, 0
  store ptr %2167, ptr %11, align 8
  %2168 = extractvalue { ptr, i32 } %2166, 1
  store i32 %2168, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #11
  br label %2169

2169:                                             ; preds = %2165, %2161
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %108) #11
  br label %2170

2170:                                             ; preds = %2169, %2157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  br label %2171

2171:                                             ; preds = %2170, %2153
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #11
  br label %2719

2172:                                             ; preds = %1878, %1861, %1851, %1850, %1848
  %2173 = landingpad { ptr, i32 }
          cleanup
  %2174 = extractvalue { ptr, i32 } %2173, 0
  store ptr %2174, ptr %11, align 8
  %2175 = extractvalue { ptr, i32 } %2173, 1
  store i32 %2175, ptr %12, align 4
  br label %2718

2176:                                             ; preds = %1853
  %2177 = landingpad { ptr, i32 }
          cleanup
  %2178 = extractvalue { ptr, i32 } %2177, 0
  store ptr %2178, ptr %11, align 8
  %2179 = extractvalue { ptr, i32 } %2177, 1
  store i32 %2179, ptr %12, align 4
  br label %2199

2180:                                             ; preds = %1857
  %2181 = landingpad { ptr, i32 }
          cleanup
  %2182 = extractvalue { ptr, i32 } %2181, 0
  store ptr %2182, ptr %11, align 8
  %2183 = extractvalue { ptr, i32 } %2181, 1
  store i32 %2183, ptr %12, align 4
  br label %2198

2184:                                             ; preds = %1858
  %2185 = landingpad { ptr, i32 }
          cleanup
  %2186 = extractvalue { ptr, i32 } %2185, 0
  store ptr %2186, ptr %11, align 8
  %2187 = extractvalue { ptr, i32 } %2185, 1
  store i32 %2187, ptr %12, align 4
  br label %2197

2188:                                             ; preds = %1859
  %2189 = landingpad { ptr, i32 }
          cleanup
  %2190 = extractvalue { ptr, i32 } %2189, 0
  store ptr %2190, ptr %11, align 8
  %2191 = extractvalue { ptr, i32 } %2189, 1
  store i32 %2191, ptr %12, align 4
  br label %2196

2192:                                             ; preds = %1860
  %2193 = landingpad { ptr, i32 }
          cleanup
  %2194 = extractvalue { ptr, i32 } %2193, 0
  store ptr %2194, ptr %11, align 8
  %2195 = extractvalue { ptr, i32 } %2193, 1
  store i32 %2195, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #11
  br label %2196

2196:                                             ; preds = %2192, %2188
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %113) #11
  br label %2197

2197:                                             ; preds = %2196, %2184
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br label %2198

2198:                                             ; preds = %2197, %2180
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #11
  br label %2199

2199:                                             ; preds = %2198, %2176
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #11
  br label %2718

2200:                                             ; preds = %1865
  %2201 = landingpad { ptr, i32 }
          cleanup
  %2202 = extractvalue { ptr, i32 } %2201, 0
  store ptr %2202, ptr %11, align 8
  %2203 = extractvalue { ptr, i32 } %2201, 1
  store i32 %2203, ptr %12, align 4
  br label %2243

2204:                                             ; preds = %1867
  %2205 = landingpad { ptr, i32 }
          cleanup
  %2206 = extractvalue { ptr, i32 } %2205, 0
  store ptr %2206, ptr %11, align 8
  %2207 = extractvalue { ptr, i32 } %2205, 1
  store i32 %2207, ptr %12, align 4
  br label %2242

2208:                                             ; preds = %1868
  %2209 = landingpad { ptr, i32 }
          cleanup
  %2210 = extractvalue { ptr, i32 } %2209, 0
  store ptr %2210, ptr %11, align 8
  %2211 = extractvalue { ptr, i32 } %2209, 1
  store i32 %2211, ptr %12, align 4
  br label %2241

2212:                                             ; preds = %1870
  %2213 = landingpad { ptr, i32 }
          cleanup
  %2214 = extractvalue { ptr, i32 } %2213, 0
  store ptr %2214, ptr %11, align 8
  %2215 = extractvalue { ptr, i32 } %2213, 1
  store i32 %2215, ptr %12, align 4
  br label %2240

2216:                                             ; preds = %1871
  %2217 = landingpad { ptr, i32 }
          cleanup
  %2218 = extractvalue { ptr, i32 } %2217, 0
  store ptr %2218, ptr %11, align 8
  %2219 = extractvalue { ptr, i32 } %2217, 1
  store i32 %2219, ptr %12, align 4
  br label %2239

2220:                                             ; preds = %1872
  %2221 = landingpad { ptr, i32 }
          cleanup
  %2222 = extractvalue { ptr, i32 } %2221, 0
  store ptr %2222, ptr %11, align 8
  %2223 = extractvalue { ptr, i32 } %2221, 1
  store i32 %2223, ptr %12, align 4
  br label %2238

2224:                                             ; preds = %1875, %1873
  %2225 = landingpad { ptr, i32 }
          cleanup
  %2226 = extractvalue { ptr, i32 } %2225, 0
  store ptr %2226, ptr %11, align 8
  %2227 = extractvalue { ptr, i32 } %2225, 1
  store i32 %2227, ptr %12, align 4
  br label %2237

2228:                                             ; preds = %1876
  %2229 = landingpad { ptr, i32 }
          cleanup
  %2230 = extractvalue { ptr, i32 } %2229, 0
  store ptr %2230, ptr %11, align 8
  %2231 = extractvalue { ptr, i32 } %2229, 1
  store i32 %2231, ptr %12, align 4
  br label %2236

2232:                                             ; preds = %1877
  %2233 = landingpad { ptr, i32 }
          cleanup
  %2234 = extractvalue { ptr, i32 } %2233, 0
  store ptr %2234, ptr %11, align 8
  %2235 = extractvalue { ptr, i32 } %2233, 1
  store i32 %2235, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #11
  br label %2236

2236:                                             ; preds = %2232, %2228
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %117) #11
  br label %2237

2237:                                             ; preds = %2236, %2224
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %118) #11
  br label %2238

2238:                                             ; preds = %2237, %2220
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %121) #11
  br label %2239

2239:                                             ; preds = %2238, %2216
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %122) #11
  br label %2240

2240:                                             ; preds = %2239, %2212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #11
  br label %2241

2241:                                             ; preds = %2240, %2208
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %121) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #11
  br label %2242

2242:                                             ; preds = %2241, %2204
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %119) #11
  br label %2243

2243:                                             ; preds = %2242, %2200
  call void @llvm.lifetime.end.p0(i64 16, ptr %119) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #11
  br label %2718

2244:                                             ; preds = %1882
  %2245 = landingpad { ptr, i32 }
          cleanup
  %2246 = extractvalue { ptr, i32 } %2245, 0
  store ptr %2246, ptr %11, align 8
  %2247 = extractvalue { ptr, i32 } %2245, 1
  store i32 %2247, ptr %12, align 4
  br label %2302

2248:                                             ; preds = %1884
  %2249 = landingpad { ptr, i32 }
          cleanup
  %2250 = extractvalue { ptr, i32 } %2249, 0
  store ptr %2250, ptr %11, align 8
  %2251 = extractvalue { ptr, i32 } %2249, 1
  store i32 %2251, ptr %12, align 4
  br label %2301

2252:                                             ; preds = %1885
  %2253 = landingpad { ptr, i32 }
          cleanup
  %2254 = extractvalue { ptr, i32 } %2253, 0
  store ptr %2254, ptr %11, align 8
  %2255 = extractvalue { ptr, i32 } %2253, 1
  store i32 %2255, ptr %12, align 4
  br label %2300

2256:                                             ; preds = %1887
  %2257 = landingpad { ptr, i32 }
          cleanup
  %2258 = extractvalue { ptr, i32 } %2257, 0
  store ptr %2258, ptr %11, align 8
  %2259 = extractvalue { ptr, i32 } %2257, 1
  store i32 %2259, ptr %12, align 4
  br label %2299

2260:                                             ; preds = %1889
  %2261 = landingpad { ptr, i32 }
          cleanup
  %2262 = extractvalue { ptr, i32 } %2261, 0
  store ptr %2262, ptr %11, align 8
  %2263 = extractvalue { ptr, i32 } %2261, 1
  store i32 %2263, ptr %12, align 4
  br label %2298

2264:                                             ; preds = %1890
  %2265 = landingpad { ptr, i32 }
          cleanup
  %2266 = extractvalue { ptr, i32 } %2265, 0
  store ptr %2266, ptr %11, align 8
  %2267 = extractvalue { ptr, i32 } %2265, 1
  store i32 %2267, ptr %12, align 4
  br label %2297

2268:                                             ; preds = %1891
  %2269 = landingpad { ptr, i32 }
          cleanup
  %2270 = extractvalue { ptr, i32 } %2269, 0
  store ptr %2270, ptr %11, align 8
  %2271 = extractvalue { ptr, i32 } %2269, 1
  store i32 %2271, ptr %12, align 4
  br label %2296

2272:                                             ; preds = %1892
  %2273 = landingpad { ptr, i32 }
          cleanup
  %2274 = extractvalue { ptr, i32 } %2273, 0
  store ptr %2274, ptr %11, align 8
  %2275 = extractvalue { ptr, i32 } %2273, 1
  store i32 %2275, ptr %12, align 4
  br label %2295

2276:                                             ; preds = %1893
  %2277 = landingpad { ptr, i32 }
          cleanup
  %2278 = extractvalue { ptr, i32 } %2277, 0
  store ptr %2278, ptr %11, align 8
  %2279 = extractvalue { ptr, i32 } %2277, 1
  store i32 %2279, ptr %12, align 4
  br label %2294

2280:                                             ; preds = %1896, %1894
  %2281 = landingpad { ptr, i32 }
          cleanup
  %2282 = extractvalue { ptr, i32 } %2281, 0
  store ptr %2282, ptr %11, align 8
  %2283 = extractvalue { ptr, i32 } %2281, 1
  store i32 %2283, ptr %12, align 4
  br label %2293

2284:                                             ; preds = %1897
  %2285 = landingpad { ptr, i32 }
          cleanup
  %2286 = extractvalue { ptr, i32 } %2285, 0
  store ptr %2286, ptr %11, align 8
  %2287 = extractvalue { ptr, i32 } %2285, 1
  store i32 %2287, ptr %12, align 4
  br label %2292

2288:                                             ; preds = %1898
  %2289 = landingpad { ptr, i32 }
          cleanup
  %2290 = extractvalue { ptr, i32 } %2289, 0
  store ptr %2290, ptr %11, align 8
  %2291 = extractvalue { ptr, i32 } %2289, 1
  store i32 %2291, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %125) #11
  br label %2292

2292:                                             ; preds = %2288, %2284
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #11
  br label %2293

2293:                                             ; preds = %2292, %2280
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  br label %2294

2294:                                             ; preds = %2293, %2276
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %136) #11
  br label %2295

2295:                                             ; preds = %2294, %2272
  call void @llvm.lifetime.end.p0(i64 16, ptr %136) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135) #11
  br label %2296

2296:                                             ; preds = %2295, %2268
  call void @llvm.lifetime.end.p0(i64 16, ptr %135) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %131) #11
  br label %2297

2297:                                             ; preds = %2296, %2264
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #11
  br label %2298

2298:                                             ; preds = %2297, %2260
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #11
  br label %2299

2299:                                             ; preds = %2298, %2256
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %131) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #11
  br label %2300

2300:                                             ; preds = %2299, %2252
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %129) #11
  br label %2301

2301:                                             ; preds = %2300, %2248
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #11
  br label %2302

2302:                                             ; preds = %2301, %2244
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #11
  br label %2718

2303:                                             ; preds = %1899
  %2304 = landingpad { ptr, i32 }
          cleanup
  %2305 = extractvalue { ptr, i32 } %2304, 0
  store ptr %2305, ptr %11, align 8
  %2306 = extractvalue { ptr, i32 } %2304, 1
  store i32 %2306, ptr %12, align 4
  br label %2333

2307:                                             ; preds = %1901
  %2308 = landingpad { ptr, i32 }
          cleanup
  %2309 = extractvalue { ptr, i32 } %2308, 0
  store ptr %2309, ptr %11, align 8
  %2310 = extractvalue { ptr, i32 } %2308, 1
  store i32 %2310, ptr %12, align 4
  br label %2332

2311:                                             ; preds = %1902
  %2312 = landingpad { ptr, i32 }
          cleanup
  %2313 = extractvalue { ptr, i32 } %2312, 0
  store ptr %2313, ptr %11, align 8
  %2314 = extractvalue { ptr, i32 } %2312, 1
  store i32 %2314, ptr %12, align 4
  br label %2331

2315:                                             ; preds = %1903
  %2316 = landingpad { ptr, i32 }
          cleanup
  %2317 = extractvalue { ptr, i32 } %2316, 0
  store ptr %2317, ptr %11, align 8
  %2318 = extractvalue { ptr, i32 } %2316, 1
  store i32 %2318, ptr %12, align 4
  br label %2323

2319:                                             ; preds = %1910
  %2320 = landingpad { ptr, i32 }
          cleanup
  %2321 = extractvalue { ptr, i32 } %2320, 0
  store ptr %2321, ptr %11, align 8
  %2322 = extractvalue { ptr, i32 } %2320, 1
  store i32 %2322, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %138) #11
  br label %2323

2323:                                             ; preds = %2319, %2315
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #11
  %2324 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %140, i32 0, i32 0
  %2325 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2324, i64 1
  br label %2326

2326:                                             ; preds = %2326, %2323
  %2327 = phi ptr [ %2325, %2323 ], [ %2328, %2326 ]
  %2328 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2327, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2328) #11
  %2329 = icmp eq ptr %2328, %2324
  br i1 %2329, label %2330, label %2326

2330:                                             ; preds = %2326
  br label %2331

2331:                                             ; preds = %2330, %2311
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  br label %2332

2332:                                             ; preds = %2331, %2307
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #11
  br label %2333

2333:                                             ; preds = %2332, %2303
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %143) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %143) #11
  %2334 = load i1, ptr %146, align 1
  br i1 %2334, label %2335, label %2343

2335:                                             ; preds = %2333
  %2336 = load ptr, ptr %141, align 8
  %2337 = icmp eq ptr %140, %2336
  br i1 %2337, label %2342, label %2338

2338:                                             ; preds = %2338, %2335
  %2339 = phi ptr [ %2336, %2335 ], [ %2340, %2338 ]
  %2340 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2339, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2340) #11
  %2341 = icmp eq ptr %2340, %140
  br i1 %2341, label %2342, label %2338

2342:                                             ; preds = %2338, %2335
  br label %2343

2343:                                             ; preds = %2342, %2333
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %138) #11
  br label %2717

2344:                                             ; preds = %1918
  %2345 = landingpad { ptr, i32 }
          cleanup
  %2346 = extractvalue { ptr, i32 } %2345, 0
  store ptr %2346, ptr %11, align 8
  %2347 = extractvalue { ptr, i32 } %2345, 1
  store i32 %2347, ptr %12, align 4
  br label %2369

2348:                                             ; preds = %1919
  %2349 = landingpad { ptr, i32 }
          cleanup
  %2350 = extractvalue { ptr, i32 } %2349, 0
  store ptr %2350, ptr %11, align 8
  %2351 = extractvalue { ptr, i32 } %2349, 1
  store i32 %2351, ptr %12, align 4
  br label %2368

2352:                                             ; preds = %1921
  %2353 = landingpad { ptr, i32 }
          cleanup
  %2354 = extractvalue { ptr, i32 } %2353, 0
  store ptr %2354, ptr %11, align 8
  %2355 = extractvalue { ptr, i32 } %2353, 1
  store i32 %2355, ptr %12, align 4
  br label %2360

2356:                                             ; preds = %1928
  %2357 = landingpad { ptr, i32 }
          cleanup
  %2358 = extractvalue { ptr, i32 } %2357, 0
  store ptr %2358, ptr %11, align 8
  %2359 = extractvalue { ptr, i32 } %2357, 1
  store i32 %2359, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %149) #11
  br label %2360

2360:                                             ; preds = %2356, %2352
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #11
  %2361 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %151, i32 0, i32 0
  %2362 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2361, i64 2
  br label %2363

2363:                                             ; preds = %2363, %2360
  %2364 = phi ptr [ %2362, %2360 ], [ %2365, %2363 ]
  %2365 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2364, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2365) #11
  %2366 = icmp eq ptr %2365, %2361
  br i1 %2366, label %2367, label %2363

2367:                                             ; preds = %2363
  br label %2368

2368:                                             ; preds = %2367, %2348
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #11
  br label %2369

2369:                                             ; preds = %2368, %2344
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #11
  %2370 = load i1, ptr %155, align 1
  br i1 %2370, label %2371, label %2379

2371:                                             ; preds = %2369
  %2372 = load ptr, ptr %152, align 8
  %2373 = icmp eq ptr %151, %2372
  br i1 %2373, label %2378, label %2374

2374:                                             ; preds = %2374, %2371
  %2375 = phi ptr [ %2372, %2371 ], [ %2376, %2374 ]
  %2376 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %2375, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2376) #11
  %2377 = icmp eq ptr %2376, %151
  br i1 %2377, label %2378, label %2374

2378:                                             ; preds = %2374, %2371
  br label %2379

2379:                                             ; preds = %2378, %2369
  call void @llvm.lifetime.end.p0(i64 64, ptr %151) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %149) #11
  br label %2716

2380:                                             ; preds = %1936
  %2381 = landingpad { ptr, i32 }
          cleanup
  %2382 = extractvalue { ptr, i32 } %2381, 0
  store ptr %2382, ptr %11, align 8
  %2383 = extractvalue { ptr, i32 } %2381, 1
  store i32 %2383, ptr %12, align 4
  br label %2715

2384:                                             ; preds = %1938
  %2385 = landingpad { ptr, i32 }
          cleanup
  %2386 = extractvalue { ptr, i32 } %2385, 0
  store ptr %2386, ptr %11, align 8
  %2387 = extractvalue { ptr, i32 } %2385, 1
  store i32 %2387, ptr %12, align 4
  br label %2714

2388:                                             ; preds = %1939
  %2389 = landingpad { ptr, i32 }
          cleanup
  %2390 = extractvalue { ptr, i32 } %2389, 0
  store ptr %2390, ptr %11, align 8
  %2391 = extractvalue { ptr, i32 } %2389, 1
  store i32 %2391, ptr %12, align 4
  br label %2713

2392:                                             ; preds = %1940
  %2393 = landingpad { ptr, i32 }
          cleanup
  %2394 = extractvalue { ptr, i32 } %2393, 0
  store ptr %2394, ptr %11, align 8
  %2395 = extractvalue { ptr, i32 } %2393, 1
  store i32 %2395, ptr %12, align 4
  br label %2405

2396:                                             ; preds = %1943
  %2397 = landingpad { ptr, i32 }
          cleanup
  %2398 = extractvalue { ptr, i32 } %2397, 0
  store ptr %2398, ptr %11, align 8
  %2399 = extractvalue { ptr, i32 } %2397, 1
  store i32 %2399, ptr %12, align 4
  br label %2404

2400:                                             ; preds = %1944
  %2401 = landingpad { ptr, i32 }
          cleanup
  %2402 = extractvalue { ptr, i32 } %2401, 0
  store ptr %2402, ptr %11, align 8
  %2403 = extractvalue { ptr, i32 } %2401, 1
  store i32 %2403, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #11
  br label %2404

2404:                                             ; preds = %2400, %2396
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %161) #11
  br label %2405

2405:                                             ; preds = %2404, %2392
  call void @llvm.lifetime.end.p0(i64 16, ptr %161) #11
  br label %2712

2406:                                             ; preds = %1945
  %2407 = landingpad { ptr, i32 }
          cleanup
  %2408 = extractvalue { ptr, i32 } %2407, 0
  store ptr %2408, ptr %11, align 8
  %2409 = extractvalue { ptr, i32 } %2407, 1
  store i32 %2409, ptr %12, align 4
  br label %2419

2410:                                             ; preds = %1948
  %2411 = landingpad { ptr, i32 }
          cleanup
  %2412 = extractvalue { ptr, i32 } %2411, 0
  store ptr %2412, ptr %11, align 8
  %2413 = extractvalue { ptr, i32 } %2411, 1
  store i32 %2413, ptr %12, align 4
  br label %2418

2414:                                             ; preds = %1949
  %2415 = landingpad { ptr, i32 }
          cleanup
  %2416 = extractvalue { ptr, i32 } %2415, 0
  store ptr %2416, ptr %11, align 8
  %2417 = extractvalue { ptr, i32 } %2415, 1
  store i32 %2417, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #11
  br label %2418

2418:                                             ; preds = %2414, %2410
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %165) #11
  br label %2419

2419:                                             ; preds = %2418, %2406
  call void @llvm.lifetime.end.p0(i64 16, ptr %165) #11
  br label %2711

2420:                                             ; preds = %1950
  %2421 = landingpad { ptr, i32 }
          cleanup
  %2422 = extractvalue { ptr, i32 } %2421, 0
  store ptr %2422, ptr %11, align 8
  %2423 = extractvalue { ptr, i32 } %2421, 1
  store i32 %2423, ptr %12, align 4
  br label %2438

2424:                                             ; preds = %1953
  %2425 = landingpad { ptr, i32 }
          cleanup
  %2426 = extractvalue { ptr, i32 } %2425, 0
  store ptr %2426, ptr %11, align 8
  %2427 = extractvalue { ptr, i32 } %2425, 1
  store i32 %2427, ptr %12, align 4
  br label %2437

2428:                                             ; preds = %1954
  %2429 = landingpad { ptr, i32 }
          cleanup
  %2430 = extractvalue { ptr, i32 } %2429, 0
  store ptr %2430, ptr %11, align 8
  %2431 = extractvalue { ptr, i32 } %2429, 1
  store i32 %2431, ptr %12, align 4
  br label %2436

2432:                                             ; preds = %1955
  %2433 = landingpad { ptr, i32 }
          cleanup
  %2434 = extractvalue { ptr, i32 } %2433, 0
  store ptr %2434, ptr %11, align 8
  %2435 = extractvalue { ptr, i32 } %2433, 1
  store i32 %2435, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #11
  br label %2436

2436:                                             ; preds = %2432, %2428
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %169) #11
  br label %2437

2437:                                             ; preds = %2436, %2424
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #11
  br label %2438

2438:                                             ; preds = %2437, %2420
  call void @llvm.lifetime.end.p0(i64 16, ptr %170) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %169) #11
  br label %2710

2439:                                             ; preds = %1956
  %2440 = landingpad { ptr, i32 }
          cleanup
  %2441 = extractvalue { ptr, i32 } %2440, 0
  store ptr %2441, ptr %11, align 8
  %2442 = extractvalue { ptr, i32 } %2440, 1
  store i32 %2442, ptr %12, align 4
  br label %2709

2443:                                             ; preds = %1961, %1957
  %2444 = landingpad { ptr, i32 }
          cleanup
  %2445 = extractvalue { ptr, i32 } %2444, 0
  store ptr %2445, ptr %11, align 8
  %2446 = extractvalue { ptr, i32 } %2444, 1
  store i32 %2446, ptr %12, align 4
  br label %2528

2447:                                             ; preds = %1964
  %2448 = landingpad { ptr, i32 }
          cleanup
  %2449 = extractvalue { ptr, i32 } %2448, 0
  store ptr %2449, ptr %11, align 8
  %2450 = extractvalue { ptr, i32 } %2448, 1
  store i32 %2450, ptr %12, align 4
  br label %2527

2451:                                             ; preds = %1967
  %2452 = landingpad { ptr, i32 }
          cleanup
  %2453 = extractvalue { ptr, i32 } %2452, 0
  store ptr %2453, ptr %11, align 8
  %2454 = extractvalue { ptr, i32 } %2452, 1
  store i32 %2454, ptr %12, align 4
  br label %2526

2455:                                             ; preds = %1971
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #11
  %2456 = load ptr, ptr %175, align 8, !tbaa !5
  store ptr %2456, ptr %177, align 8, !tbaa !5
  %2457 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %173)
          to label %2458 unwind label %2477

2458:                                             ; preds = %2455
  call void @llvm.lifetime.start.p0(i64 16, ptr %178) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %179) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %180) #11
  %2459 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %181) #11
  %2460 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %181, ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(264) %2460)
          to label %2461 unwind label %2481

2461:                                             ; preds = %2458
  call void @llvm.lifetime.start.p0(i64 32, ptr %182) #11
  %2462 = load ptr, ptr %177, align 8, !tbaa !5
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %182, ptr noundef nonnull align 8 dereferenceable(32) %2462)
          to label %2463 unwind label %2485

2463:                                             ; preds = %2461
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %184) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %185) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef @.str.122, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %2464 unwind label %2489

2464:                                             ; preds = %2463
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #11
  %2465 = load ptr, ptr %177, align 8, !tbaa !5
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %2465)
          to label %2466 unwind label %2493

2466:                                             ; preds = %2464
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %183, ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull align 8 dereferenceable(32) %186)
          to label %2467 unwind label %2497

2467:                                             ; preds = %2466
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node4Expr2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cSH_A2_cA9_cEEENS4_INS7_2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %180, ptr noundef nonnull align 8 dereferenceable(264) %2459, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 1 dereferenceable(7) @.str.121, ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 1 dereferenceable(2) @.str.93, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %2468 unwind label %2501

2468:                                             ; preds = %2467
  %2469 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %180)
          to label %2470 unwind label %2505

2470:                                             ; preds = %2468
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.124") align 8 %179, ptr noundef nonnull align 8 dereferenceable(136) %2469)
          to label %2471 unwind label %2505

2471:                                             ; preds = %2470
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %178, ptr noundef nonnull align 8 dereferenceable(16) %179)
          to label %2472 unwind label %2509

2472:                                             ; preds = %2471
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2457, ptr noundef nonnull align 8 dereferenceable(16) %178)
          to label %2473 unwind label %2513

2473:                                             ; preds = %2472
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %178) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %179) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %180) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %181) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %181) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %180) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %178) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #11
  br label %2474

2474:                                             ; preds = %2473
  %2475 = load ptr, ptr %175, align 8, !tbaa !5
  %2476 = getelementptr inbounds %"struct.langcc::StrSlice", ptr %2475, i32 1
  store ptr %2476, ptr %175, align 8, !tbaa !5
  br label %1971

2477:                                             ; preds = %2455
  %2478 = landingpad { ptr, i32 }
          cleanup
  %2479 = extractvalue { ptr, i32 } %2478, 0
  store ptr %2479, ptr %11, align 8
  %2480 = extractvalue { ptr, i32 } %2478, 1
  store i32 %2480, ptr %12, align 4
  br label %2525

2481:                                             ; preds = %2458
  %2482 = landingpad { ptr, i32 }
          cleanup
  %2483 = extractvalue { ptr, i32 } %2482, 0
  store ptr %2483, ptr %11, align 8
  %2484 = extractvalue { ptr, i32 } %2482, 1
  store i32 %2484, ptr %12, align 4
  br label %2524

2485:                                             ; preds = %2461
  %2486 = landingpad { ptr, i32 }
          cleanup
  %2487 = extractvalue { ptr, i32 } %2486, 0
  store ptr %2487, ptr %11, align 8
  %2488 = extractvalue { ptr, i32 } %2486, 1
  store i32 %2488, ptr %12, align 4
  br label %2523

2489:                                             ; preds = %2463
  %2490 = landingpad { ptr, i32 }
          cleanup
  %2491 = extractvalue { ptr, i32 } %2490, 0
  store ptr %2491, ptr %11, align 8
  %2492 = extractvalue { ptr, i32 } %2490, 1
  store i32 %2492, ptr %12, align 4
  br label %2522

2493:                                             ; preds = %2464
  %2494 = landingpad { ptr, i32 }
          cleanup
  %2495 = extractvalue { ptr, i32 } %2494, 0
  store ptr %2495, ptr %11, align 8
  %2496 = extractvalue { ptr, i32 } %2494, 1
  store i32 %2496, ptr %12, align 4
  br label %2521

2497:                                             ; preds = %2466
  %2498 = landingpad { ptr, i32 }
          cleanup
  %2499 = extractvalue { ptr, i32 } %2498, 0
  store ptr %2499, ptr %11, align 8
  %2500 = extractvalue { ptr, i32 } %2498, 1
  store i32 %2500, ptr %12, align 4
  br label %2520

2501:                                             ; preds = %2467
  %2502 = landingpad { ptr, i32 }
          cleanup
  %2503 = extractvalue { ptr, i32 } %2502, 0
  store ptr %2503, ptr %11, align 8
  %2504 = extractvalue { ptr, i32 } %2502, 1
  store i32 %2504, ptr %12, align 4
  br label %2519

2505:                                             ; preds = %2470, %2468
  %2506 = landingpad { ptr, i32 }
          cleanup
  %2507 = extractvalue { ptr, i32 } %2506, 0
  store ptr %2507, ptr %11, align 8
  %2508 = extractvalue { ptr, i32 } %2506, 1
  store i32 %2508, ptr %12, align 4
  br label %2518

2509:                                             ; preds = %2471
  %2510 = landingpad { ptr, i32 }
          cleanup
  %2511 = extractvalue { ptr, i32 } %2510, 0
  store ptr %2511, ptr %11, align 8
  %2512 = extractvalue { ptr, i32 } %2510, 1
  store i32 %2512, ptr %12, align 4
  br label %2517

2513:                                             ; preds = %2472
  %2514 = landingpad { ptr, i32 }
          cleanup
  %2515 = extractvalue { ptr, i32 } %2514, 0
  store ptr %2515, ptr %11, align 8
  %2516 = extractvalue { ptr, i32 } %2514, 1
  store i32 %2516, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %178) #11
  br label %2517

2517:                                             ; preds = %2513, %2509
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %179) #11
  br label %2518

2518:                                             ; preds = %2517, %2505
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %180) #11
  br label %2519

2519:                                             ; preds = %2518, %2501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #11
  br label %2520

2520:                                             ; preds = %2519, %2497
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #11
  br label %2521

2521:                                             ; preds = %2520, %2493
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  br label %2522

2522:                                             ; preds = %2521, %2489
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #11
  br label %2523

2523:                                             ; preds = %2522, %2485
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %181) #11
  br label %2524

2524:                                             ; preds = %2523, %2481
  call void @llvm.lifetime.end.p0(i64 16, ptr %181) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %180) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %178) #11
  br label %2525

2525:                                             ; preds = %2524, %2477
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #11
  br label %2526

2526:                                             ; preds = %2525, %2451
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  br label %2527

2527:                                             ; preds = %2526, %2447
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  br label %2528

2528:                                             ; preds = %2527, %2443
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #11
  br label %2708

2529:                                             ; preds = %1975
  %2530 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %173)
          to label %2531 unwind label %2583

2531:                                             ; preds = %2529
  call void @llvm.lifetime.start.p0(i64 16, ptr %187) #11
  %2532 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %187, ptr noundef nonnull align 8 dereferenceable(264) %2532, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %2533 unwind label %2587

2533:                                             ; preds = %2531
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2530, ptr noundef nonnull align 8 dereferenceable(16) %187)
          to label %2534 unwind label %2591

2534:                                             ; preds = %2533
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %187) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %187) #11
  %2535 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %159)
          to label %2536 unwind label %2583

2536:                                             ; preds = %2534
  call void @llvm.lifetime.start.p0(i64 16, ptr %188) #11
  %2537 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %2538 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %173)
          to label %2539 unwind label %2596

2539:                                             ; preds = %2536
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %188, ptr noundef nonnull align 8 dereferenceable(264) %2537, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %2538, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %2540 unwind label %2596

2540:                                             ; preds = %2539
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2535, ptr noundef nonnull align 8 dereferenceable(16) %188)
          to label %2541 unwind label %2600

2541:                                             ; preds = %2540
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %188) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #11
  %2542 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %2543 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %2542, i32 0, i32 2
  %2544 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2543)
          to label %2545 unwind label %2583

2545:                                             ; preds = %2541
  call void @llvm.lifetime.start.p0(i64 16, ptr %189) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %190) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %191) #11
  %2546 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %192) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %192)
          to label %2547 unwind label %2605

2547:                                             ; preds = %2545
  call void @llvm.lifetime.start.p0(i64 16, ptr %193) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %193)
          to label %2548 unwind label %2609

2548:                                             ; preds = %2547
  call void @llvm.lifetime.start.p0(i64 20, ptr %194) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %195) #11
  %2549 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %197) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %2550 unwind label %2613

2550:                                             ; preds = %2548
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %195, ptr noundef nonnull align 8 dereferenceable(264) %2549, ptr noundef nonnull align 8 dereferenceable(32) %196)
          to label %2551 unwind label %2617

2551:                                             ; preds = %2550
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %194, ptr noundef nonnull align 8 dereferenceable(16) %195)
          to label %2552 unwind label %2621

2552:                                             ; preds = %2551
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %191, ptr noundef nonnull align 8 dereferenceable(264) %2546, ptr noundef nonnull align 8 dereferenceable(16) %192, ptr noundef nonnull align 8 dereferenceable(16) %193, ptr noundef nonnull align 4 dereferenceable(20) %194, ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef nonnull align 8 dereferenceable(16) %158)
          to label %2553 unwind label %2625

2553:                                             ; preds = %2552
  %2554 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %191)
          to label %2555 unwind label %2629

2555:                                             ; preds = %2553
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %190, ptr noundef nonnull align 8 dereferenceable(136) %2554)
          to label %2556 unwind label %2629

2556:                                             ; preds = %2555
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %189, ptr noundef nonnull align 8 dereferenceable(16) %190)
          to label %2557 unwind label %2633

2557:                                             ; preds = %2556
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2544, ptr noundef nonnull align 8 dereferenceable(16) %189)
          to label %2558 unwind label %2637

2558:                                             ; preds = %2557
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %191) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %194) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %195) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %195) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %194) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %193) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %192) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %192) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %191) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %190) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %189) #11
  %2559 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %2560 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %2559, i32 0, i32 3
  %2561 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2560)
          to label %2562 unwind label %2583

2562:                                             ; preds = %2558
  call void @llvm.lifetime.start.p0(i64 16, ptr %198) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %199) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %200) #11
  %2563 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %201) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %201)
          to label %2564 unwind label %2649

2564:                                             ; preds = %2562
  call void @llvm.lifetime.start.p0(i64 16, ptr %202) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %202)
          to label %2565 unwind label %2653

2565:                                             ; preds = %2564
  call void @llvm.lifetime.start.p0(i64 16, ptr %203) #11
  %2566 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %203, i32 noundef %2566, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %2567 unwind label %2657

2567:                                             ; preds = %2565
  call void @llvm.lifetime.start.p0(i64 20, ptr %204) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %205) #11
  %2568 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %207) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %207)
          to label %2569 unwind label %2661

2569:                                             ; preds = %2567
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %205, ptr noundef nonnull align 8 dereferenceable(264) %2568, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %2570 unwind label %2665

2570:                                             ; preds = %2569
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %204, ptr noundef nonnull align 8 dereferenceable(16) %205)
          to label %2571 unwind label %2669

2571:                                             ; preds = %2570
  call void @llvm.lifetime.start.p0(i64 16, ptr %208) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %208, ptr noundef nonnull align 8 dereferenceable(16) %157)
          to label %2572 unwind label %2673

2572:                                             ; preds = %2571
  call void @llvm.lifetime.start.p0(i64 16, ptr %209) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %209)
          to label %2573 unwind label %2677

2573:                                             ; preds = %2572
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %200, ptr noundef nonnull align 8 dereferenceable(264) %2563, ptr noundef nonnull align 8 dereferenceable(16) %201, ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef nonnull align 8 dereferenceable(16) %203, ptr noundef nonnull align 4 dereferenceable(20) %204, ptr noundef nonnull align 8 dereferenceable(16) %208, ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull align 8 dereferenceable(16) %209, ptr noundef nonnull align 8 dereferenceable(16) %159, i1 noundef zeroext false)
          to label %2574 unwind label %2681

2574:                                             ; preds = %2573
  %2575 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %200)
          to label %2576 unwind label %2685

2576:                                             ; preds = %2574
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %199, ptr noundef nonnull align 8 dereferenceable(136) %2575)
          to label %2577 unwind label %2685

2577:                                             ; preds = %2576
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %198, ptr noundef nonnull align 8 dereferenceable(16) %199)
          to label %2578 unwind label %2689

2578:                                             ; preds = %2577
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2561, ptr noundef nonnull align 8 dereferenceable(16) %198)
          to label %2579 unwind label %2693

2579:                                             ; preds = %2578
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %198) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %199) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %200) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %209) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %209) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %208) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %208) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %204) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %205) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %205) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %204) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %202) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %201) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %200) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %199) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %198) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %173) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %168) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %168) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %159) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %157) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %148) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %137) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %2580

2580:                                             ; preds = %2579
  %2581 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %2582 unwind label %1677

2582:                                             ; preds = %2580
  br label %1665

2583:                                             ; preds = %2558, %2541, %2534, %2529
  %2584 = landingpad { ptr, i32 }
          cleanup
  %2585 = extractvalue { ptr, i32 } %2584, 0
  store ptr %2585, ptr %11, align 8
  %2586 = extractvalue { ptr, i32 } %2584, 1
  store i32 %2586, ptr %12, align 4
  br label %2708

2587:                                             ; preds = %2531
  %2588 = landingpad { ptr, i32 }
          cleanup
  %2589 = extractvalue { ptr, i32 } %2588, 0
  store ptr %2589, ptr %11, align 8
  %2590 = extractvalue { ptr, i32 } %2588, 1
  store i32 %2590, ptr %12, align 4
  br label %2595

2591:                                             ; preds = %2533
  %2592 = landingpad { ptr, i32 }
          cleanup
  %2593 = extractvalue { ptr, i32 } %2592, 0
  store ptr %2593, ptr %11, align 8
  %2594 = extractvalue { ptr, i32 } %2592, 1
  store i32 %2594, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %187) #11
  br label %2595

2595:                                             ; preds = %2591, %2587
  call void @llvm.lifetime.end.p0(i64 16, ptr %187) #11
  br label %2708

2596:                                             ; preds = %2539, %2536
  %2597 = landingpad { ptr, i32 }
          cleanup
  %2598 = extractvalue { ptr, i32 } %2597, 0
  store ptr %2598, ptr %11, align 8
  %2599 = extractvalue { ptr, i32 } %2597, 1
  store i32 %2599, ptr %12, align 4
  br label %2604

2600:                                             ; preds = %2540
  %2601 = landingpad { ptr, i32 }
          cleanup
  %2602 = extractvalue { ptr, i32 } %2601, 0
  store ptr %2602, ptr %11, align 8
  %2603 = extractvalue { ptr, i32 } %2601, 1
  store i32 %2603, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %188) #11
  br label %2604

2604:                                             ; preds = %2600, %2596
  call void @llvm.lifetime.end.p0(i64 16, ptr %188) #11
  br label %2708

2605:                                             ; preds = %2545
  %2606 = landingpad { ptr, i32 }
          cleanup
  %2607 = extractvalue { ptr, i32 } %2606, 0
  store ptr %2607, ptr %11, align 8
  %2608 = extractvalue { ptr, i32 } %2606, 1
  store i32 %2608, ptr %12, align 4
  br label %2648

2609:                                             ; preds = %2547
  %2610 = landingpad { ptr, i32 }
          cleanup
  %2611 = extractvalue { ptr, i32 } %2610, 0
  store ptr %2611, ptr %11, align 8
  %2612 = extractvalue { ptr, i32 } %2610, 1
  store i32 %2612, ptr %12, align 4
  br label %2647

2613:                                             ; preds = %2548
  %2614 = landingpad { ptr, i32 }
          cleanup
  %2615 = extractvalue { ptr, i32 } %2614, 0
  store ptr %2615, ptr %11, align 8
  %2616 = extractvalue { ptr, i32 } %2614, 1
  store i32 %2616, ptr %12, align 4
  br label %2646

2617:                                             ; preds = %2550
  %2618 = landingpad { ptr, i32 }
          cleanup
  %2619 = extractvalue { ptr, i32 } %2618, 0
  store ptr %2619, ptr %11, align 8
  %2620 = extractvalue { ptr, i32 } %2618, 1
  store i32 %2620, ptr %12, align 4
  br label %2645

2621:                                             ; preds = %2551
  %2622 = landingpad { ptr, i32 }
          cleanup
  %2623 = extractvalue { ptr, i32 } %2622, 0
  store ptr %2623, ptr %11, align 8
  %2624 = extractvalue { ptr, i32 } %2622, 1
  store i32 %2624, ptr %12, align 4
  br label %2644

2625:                                             ; preds = %2552
  %2626 = landingpad { ptr, i32 }
          cleanup
  %2627 = extractvalue { ptr, i32 } %2626, 0
  store ptr %2627, ptr %11, align 8
  %2628 = extractvalue { ptr, i32 } %2626, 1
  store i32 %2628, ptr %12, align 4
  br label %2643

2629:                                             ; preds = %2555, %2553
  %2630 = landingpad { ptr, i32 }
          cleanup
  %2631 = extractvalue { ptr, i32 } %2630, 0
  store ptr %2631, ptr %11, align 8
  %2632 = extractvalue { ptr, i32 } %2630, 1
  store i32 %2632, ptr %12, align 4
  br label %2642

2633:                                             ; preds = %2556
  %2634 = landingpad { ptr, i32 }
          cleanup
  %2635 = extractvalue { ptr, i32 } %2634, 0
  store ptr %2635, ptr %11, align 8
  %2636 = extractvalue { ptr, i32 } %2634, 1
  store i32 %2636, ptr %12, align 4
  br label %2641

2637:                                             ; preds = %2557
  %2638 = landingpad { ptr, i32 }
          cleanup
  %2639 = extractvalue { ptr, i32 } %2638, 0
  store ptr %2639, ptr %11, align 8
  %2640 = extractvalue { ptr, i32 } %2638, 1
  store i32 %2640, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #11
  br label %2641

2641:                                             ; preds = %2637, %2633
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #11
  br label %2642

2642:                                             ; preds = %2641, %2629
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %191) #11
  br label %2643

2643:                                             ; preds = %2642, %2625
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %194) #11
  br label %2644

2644:                                             ; preds = %2643, %2621
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %195) #11
  br label %2645

2645:                                             ; preds = %2644, %2617
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #11
  br label %2646

2646:                                             ; preds = %2645, %2613
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %195) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %194) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #11
  br label %2647

2647:                                             ; preds = %2646, %2609
  call void @llvm.lifetime.end.p0(i64 16, ptr %193) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %192) #11
  br label %2648

2648:                                             ; preds = %2647, %2605
  call void @llvm.lifetime.end.p0(i64 16, ptr %192) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %191) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %190) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %189) #11
  br label %2708

2649:                                             ; preds = %2562
  %2650 = landingpad { ptr, i32 }
          cleanup
  %2651 = extractvalue { ptr, i32 } %2650, 0
  store ptr %2651, ptr %11, align 8
  %2652 = extractvalue { ptr, i32 } %2650, 1
  store i32 %2652, ptr %12, align 4
  br label %2707

2653:                                             ; preds = %2564
  %2654 = landingpad { ptr, i32 }
          cleanup
  %2655 = extractvalue { ptr, i32 } %2654, 0
  store ptr %2655, ptr %11, align 8
  %2656 = extractvalue { ptr, i32 } %2654, 1
  store i32 %2656, ptr %12, align 4
  br label %2706

2657:                                             ; preds = %2565
  %2658 = landingpad { ptr, i32 }
          cleanup
  %2659 = extractvalue { ptr, i32 } %2658, 0
  store ptr %2659, ptr %11, align 8
  %2660 = extractvalue { ptr, i32 } %2658, 1
  store i32 %2660, ptr %12, align 4
  br label %2705

2661:                                             ; preds = %2567
  %2662 = landingpad { ptr, i32 }
          cleanup
  %2663 = extractvalue { ptr, i32 } %2662, 0
  store ptr %2663, ptr %11, align 8
  %2664 = extractvalue { ptr, i32 } %2662, 1
  store i32 %2664, ptr %12, align 4
  br label %2704

2665:                                             ; preds = %2569
  %2666 = landingpad { ptr, i32 }
          cleanup
  %2667 = extractvalue { ptr, i32 } %2666, 0
  store ptr %2667, ptr %11, align 8
  %2668 = extractvalue { ptr, i32 } %2666, 1
  store i32 %2668, ptr %12, align 4
  br label %2703

2669:                                             ; preds = %2570
  %2670 = landingpad { ptr, i32 }
          cleanup
  %2671 = extractvalue { ptr, i32 } %2670, 0
  store ptr %2671, ptr %11, align 8
  %2672 = extractvalue { ptr, i32 } %2670, 1
  store i32 %2672, ptr %12, align 4
  br label %2702

2673:                                             ; preds = %2571
  %2674 = landingpad { ptr, i32 }
          cleanup
  %2675 = extractvalue { ptr, i32 } %2674, 0
  store ptr %2675, ptr %11, align 8
  %2676 = extractvalue { ptr, i32 } %2674, 1
  store i32 %2676, ptr %12, align 4
  br label %2701

2677:                                             ; preds = %2572
  %2678 = landingpad { ptr, i32 }
          cleanup
  %2679 = extractvalue { ptr, i32 } %2678, 0
  store ptr %2679, ptr %11, align 8
  %2680 = extractvalue { ptr, i32 } %2678, 1
  store i32 %2680, ptr %12, align 4
  br label %2700

2681:                                             ; preds = %2573
  %2682 = landingpad { ptr, i32 }
          cleanup
  %2683 = extractvalue { ptr, i32 } %2682, 0
  store ptr %2683, ptr %11, align 8
  %2684 = extractvalue { ptr, i32 } %2682, 1
  store i32 %2684, ptr %12, align 4
  br label %2699

2685:                                             ; preds = %2576, %2574
  %2686 = landingpad { ptr, i32 }
          cleanup
  %2687 = extractvalue { ptr, i32 } %2686, 0
  store ptr %2687, ptr %11, align 8
  %2688 = extractvalue { ptr, i32 } %2686, 1
  store i32 %2688, ptr %12, align 4
  br label %2698

2689:                                             ; preds = %2577
  %2690 = landingpad { ptr, i32 }
          cleanup
  %2691 = extractvalue { ptr, i32 } %2690, 0
  store ptr %2691, ptr %11, align 8
  %2692 = extractvalue { ptr, i32 } %2690, 1
  store i32 %2692, ptr %12, align 4
  br label %2697

2693:                                             ; preds = %2578
  %2694 = landingpad { ptr, i32 }
          cleanup
  %2695 = extractvalue { ptr, i32 } %2694, 0
  store ptr %2695, ptr %11, align 8
  %2696 = extractvalue { ptr, i32 } %2694, 1
  store i32 %2696, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %198) #11
  br label %2697

2697:                                             ; preds = %2693, %2689
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %199) #11
  br label %2698

2698:                                             ; preds = %2697, %2685
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %200) #11
  br label %2699

2699:                                             ; preds = %2698, %2681
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %209) #11
  br label %2700

2700:                                             ; preds = %2699, %2677
  call void @llvm.lifetime.end.p0(i64 16, ptr %209) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %208) #11
  br label %2701

2701:                                             ; preds = %2700, %2673
  call void @llvm.lifetime.end.p0(i64 16, ptr %208) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %204) #11
  br label %2702

2702:                                             ; preds = %2701, %2669
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %205) #11
  br label %2703

2703:                                             ; preds = %2702, %2665
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #11
  br label %2704

2704:                                             ; preds = %2703, %2661
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %205) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %204) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #11
  br label %2705

2705:                                             ; preds = %2704, %2657
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %202) #11
  br label %2706

2706:                                             ; preds = %2705, %2653
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %201) #11
  br label %2707

2707:                                             ; preds = %2706, %2649
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %200) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %199) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %198) #11
  br label %2708

2708:                                             ; preds = %2707, %2648, %2604, %2595, %2583, %2528
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #11
  br label %2709

2709:                                             ; preds = %2708, %2439
  call void @llvm.lifetime.end.p0(i64 16, ptr %173) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %168) #11
  br label %2710

2710:                                             ; preds = %2709, %2438
  call void @llvm.lifetime.end.p0(i64 16, ptr %168) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #11
  br label %2711

2711:                                             ; preds = %2710, %2419
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #11
  br label %2712

2712:                                             ; preds = %2711, %2405
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %159) #11
  br label %2713

2713:                                             ; preds = %2712, %2388
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #11
  br label %2714

2714:                                             ; preds = %2713, %2384
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #11
  br label %2715

2715:                                             ; preds = %2714, %2380
  call void @llvm.lifetime.end.p0(i64 16, ptr %157) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #11
  br label %2716

2716:                                             ; preds = %2715, %2379
  call void @llvm.lifetime.end.p0(i64 16, ptr %148) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %137) #11
  br label %2717

2717:                                             ; preds = %2716, %2343
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #11
  br label %2718

2718:                                             ; preds = %2717, %2302, %2243, %2199, %2172
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #11
  br label %2719

2719:                                             ; preds = %2718, %2171, %2149
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #11
  br label %2720

2720:                                             ; preds = %2719, %2145
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  br label %2721

2721:                                             ; preds = %2720, %2144, %2132
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #11
  br label %2722

2722:                                             ; preds = %2721, %2128
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #11
  br label %2723

2723:                                             ; preds = %2722, %2127, %2110
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #11
  br label %2724

2724:                                             ; preds = %2723, %2106
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #11
  br label %2725

2725:                                             ; preds = %2724, %2105, %2093
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #11
  br label %2726

2726:                                             ; preds = %2725, %2089
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #11
  br label %2727

2727:                                             ; preds = %2726, %2085
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #11
  br label %2728

2728:                                             ; preds = %2727, %2081
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #11
  br label %2729

2729:                                             ; preds = %2728, %2080
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #11
  br label %2730

2730:                                             ; preds = %2729, %2044
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #11
  br label %2731

2731:                                             ; preds = %2730, %2003, %1976, %1763
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #11
  br label %2732

2732:                                             ; preds = %2731, %1714
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #11
  br label %2733

2733:                                             ; preds = %2732, %1710
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #11
  br label %2734

2734:                                             ; preds = %2733, %1706
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %2735

2735:                                             ; preds = %2734, %1677
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #11
  br label %2736

2736:                                             ; preds = %2735, %1673
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #11
  br label %2737

2737:                                             ; preds = %2736, %1669
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  br label %11365

2738:                                             ; preds = %1668
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #11
  %2739 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 3
  %2740 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2739)
          to label %2741 unwind label %2760

2741:                                             ; preds = %2738
  store ptr %2740, ptr %210, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %211) #11
  %2742 = load ptr, ptr %210, align 8, !tbaa !5
  %2743 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2742)
          to label %2744 unwind label %2764

2744:                                             ; preds = %2741
  %2745 = getelementptr inbounds { ptr, i64 }, ptr %211, i32 0, i32 0
  %2746 = extractvalue { ptr, i64 } %2743, 0
  store ptr %2746, ptr %2745, align 8
  %2747 = getelementptr inbounds { ptr, i64 }, ptr %211, i32 0, i32 1
  %2748 = extractvalue { ptr, i64 } %2743, 1
  store i64 %2748, ptr %2747, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %212) #11
  %2749 = load ptr, ptr %210, align 8, !tbaa !5
  %2750 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2749)
          to label %2751 unwind label %2768

2751:                                             ; preds = %2744
  %2752 = getelementptr inbounds { ptr, i64 }, ptr %212, i32 0, i32 0
  %2753 = extractvalue { ptr, i64 } %2750, 0
  store ptr %2753, ptr %2752, align 8
  %2754 = getelementptr inbounds { ptr, i64 }, ptr %212, i32 0, i32 1
  %2755 = extractvalue { ptr, i64 } %2750, 1
  store i64 %2755, ptr %2754, align 8
  br label %2756

2756:                                             ; preds = %2816, %2751
  %2757 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEneERKSI_(ptr noundef nonnull align 8 dereferenceable(16) %211, ptr noundef nonnull align 8 dereferenceable(16) %212)
          to label %2758 unwind label %2768

2758:                                             ; preds = %2756
  br i1 %2757, label %2772, label %2759

2759:                                             ; preds = %2758
  store i32 12, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %212) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #11
  br label %2930

2760:                                             ; preds = %2738
  %2761 = landingpad { ptr, i32 }
          cleanup
  %2762 = extractvalue { ptr, i32 } %2761, 0
  store ptr %2762, ptr %11, align 8
  %2763 = extractvalue { ptr, i32 } %2761, 1
  store i32 %2763, ptr %12, align 4
  br label %2929

2764:                                             ; preds = %2741
  %2765 = landingpad { ptr, i32 }
          cleanup
  %2766 = extractvalue { ptr, i32 } %2765, 0
  store ptr %2766, ptr %11, align 8
  %2767 = extractvalue { ptr, i32 } %2765, 1
  store i32 %2767, ptr %12, align 4
  br label %2928

2768:                                             ; preds = %2814, %2756, %2744
  %2769 = landingpad { ptr, i32 }
          cleanup
  %2770 = extractvalue { ptr, i32 } %2769, 0
  store ptr %2770, ptr %11, align 8
  %2771 = extractvalue { ptr, i32 } %2769, 1
  store i32 %2771, ptr %12, align 4
  br label %2927

2772:                                             ; preds = %2758
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #11
  %2773 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %211)
          to label %2774 unwind label %2817

2774:                                             ; preds = %2772
  store ptr %2773, ptr %213, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %214) #11
  %2775 = load ptr, ptr %213, align 8, !tbaa !5
  %2776 = getelementptr inbounds %"struct.std::pair.131", ptr %2775, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %214, ptr noundef nonnull align 8 dereferenceable(16) %2776)
          to label %2777 unwind label %2821

2777:                                             ; preds = %2774
  call void @llvm.lifetime.start.p0(i64 16, ptr %215) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %216)
          to label %2778 unwind label %2825

2778:                                             ; preds = %2777
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %215, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %214, ptr noundef %216)
          to label %2779 unwind label %2829

2779:                                             ; preds = %2778
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %216) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %217) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %218)
          to label %2780 unwind label %2833

2780:                                             ; preds = %2779
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %219)
          to label %2781 unwind label %2837

2781:                                             ; preds = %2780
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %217, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %214, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %218, ptr noundef %219)
          to label %2782 unwind label %2841

2782:                                             ; preds = %2781
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %219) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %218) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %220) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr noundef nonnull align 8 dereferenceable(16) %214)
          to label %2783 unwind label %2846

2783:                                             ; preds = %2782
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %220, ptr noundef %221, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %2784 unwind label %2850

2784:                                             ; preds = %2783
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %222) #11
  %2785 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %222, ptr noundef nonnull align 8 dereferenceable(264) %2785, ptr noundef nonnull align 8 dereferenceable(16) %217, ptr noundef nonnull align 8 dereferenceable(16) %220)
          to label %2786 unwind label %2854

2786:                                             ; preds = %2784
  %2787 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %2788 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %2787, i32 0, i32 2
  %2789 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2788)
          to label %2790 unwind label %2858

2790:                                             ; preds = %2786
  call void @llvm.lifetime.start.p0(i64 16, ptr %223) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %224) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %225) #11
  %2791 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %226, ptr noundef nonnull align 8 dereferenceable(16) %215)
          to label %2792 unwind label %2862

2792:                                             ; preds = %2790
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_decl_struct_fwdENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %225, ptr noundef nonnull align 8 dereferenceable(264) %2791, ptr noundef %226, ptr noundef nonnull align 8 dereferenceable(16) %220)
          to label %2793 unwind label %2866

2793:                                             ; preds = %2792
  %2794 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %225)
          to label %2795 unwind label %2870

2795:                                             ; preds = %2793
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %224, ptr noundef nonnull align 8 dereferenceable(136) %2794)
          to label %2796 unwind label %2870

2796:                                             ; preds = %2795
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %223, ptr noundef nonnull align 8 dereferenceable(16) %224)
          to label %2797 unwind label %2874

2797:                                             ; preds = %2796
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2789, ptr noundef nonnull align 8 dereferenceable(16) %223)
          to label %2798 unwind label %2878

2798:                                             ; preds = %2797
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %223) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %224) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %225) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %226) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %223) #11
  %2799 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %2800 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %2799, i32 0, i32 2
  %2801 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2800)
          to label %2802 unwind label %2858

2802:                                             ; preds = %2798
  call void @llvm.lifetime.start.p0(i64 16, ptr %227) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %228) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %229) #11
  %2803 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %231)
          to label %2804 unwind label %2886

2804:                                             ; preds = %2802
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %230, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %214, ptr noundef %231)
          to label %2805 unwind label %2890

2805:                                             ; preds = %2804
  call void @llvm.lifetime.start.p0(i64 16, ptr %232) #11
  %2806 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext14gen_cpp_rc_ptrERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %232, ptr noundef nonnull align 8 dereferenceable(264) %2806, ptr noundef nonnull align 8 dereferenceable(16) %222)
          to label %2807 unwind label %2894

2807:                                             ; preds = %2805
  invoke void @_ZN6langcc13CppGenContext18gen_cpp_decl_usingENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_IN4lang2cc4Node2_TEEERKNS1_INS2_ISF_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %229, ptr noundef nonnull align 8 dereferenceable(264) %2803, ptr noundef %230, ptr noundef nonnull align 8 dereferenceable(16) %232, ptr noundef nonnull align 8 dereferenceable(16) %220)
          to label %2808 unwind label %2898

2808:                                             ; preds = %2807
  %2809 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %229)
          to label %2810 unwind label %2902

2810:                                             ; preds = %2808
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %228, ptr noundef nonnull align 8 dereferenceable(136) %2809)
          to label %2811 unwind label %2902

2811:                                             ; preds = %2810
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %227, ptr noundef nonnull align 8 dereferenceable(16) %228)
          to label %2812 unwind label %2906

2812:                                             ; preds = %2811
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2801, ptr noundef nonnull align 8 dereferenceable(16) %227)
          to label %2813 unwind label %2910

2813:                                             ; preds = %2812
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %227) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %228) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %229) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %232) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %230) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %231) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %229) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %228) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %227) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %222) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %222) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %220) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %220) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %217) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %215) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %214) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %214) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #11
  br label %2814

2814:                                             ; preds = %2813
  %2815 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %211)
          to label %2816 unwind label %2768

2816:                                             ; preds = %2814
  br label %2756

2817:                                             ; preds = %2772
  %2818 = landingpad { ptr, i32 }
          cleanup
  %2819 = extractvalue { ptr, i32 } %2818, 0
  store ptr %2819, ptr %11, align 8
  %2820 = extractvalue { ptr, i32 } %2818, 1
  store i32 %2820, ptr %12, align 4
  br label %2926

2821:                                             ; preds = %2774
  %2822 = landingpad { ptr, i32 }
          cleanup
  %2823 = extractvalue { ptr, i32 } %2822, 0
  store ptr %2823, ptr %11, align 8
  %2824 = extractvalue { ptr, i32 } %2822, 1
  store i32 %2824, ptr %12, align 4
  br label %2925

2825:                                             ; preds = %2777
  %2826 = landingpad { ptr, i32 }
          cleanup
  %2827 = extractvalue { ptr, i32 } %2826, 0
  store ptr %2827, ptr %11, align 8
  %2828 = extractvalue { ptr, i32 } %2826, 1
  store i32 %2828, ptr %12, align 4
  br label %2924

2829:                                             ; preds = %2778
  %2830 = landingpad { ptr, i32 }
          cleanup
  %2831 = extractvalue { ptr, i32 } %2830, 0
  store ptr %2831, ptr %11, align 8
  %2832 = extractvalue { ptr, i32 } %2830, 1
  store i32 %2832, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %216) #11
  br label %2924

2833:                                             ; preds = %2779
  %2834 = landingpad { ptr, i32 }
          cleanup
  %2835 = extractvalue { ptr, i32 } %2834, 0
  store ptr %2835, ptr %11, align 8
  %2836 = extractvalue { ptr, i32 } %2834, 1
  store i32 %2836, ptr %12, align 4
  br label %2923

2837:                                             ; preds = %2780
  %2838 = landingpad { ptr, i32 }
          cleanup
  %2839 = extractvalue { ptr, i32 } %2838, 0
  store ptr %2839, ptr %11, align 8
  %2840 = extractvalue { ptr, i32 } %2838, 1
  store i32 %2840, ptr %12, align 4
  br label %2845

2841:                                             ; preds = %2781
  %2842 = landingpad { ptr, i32 }
          cleanup
  %2843 = extractvalue { ptr, i32 } %2842, 0
  store ptr %2843, ptr %11, align 8
  %2844 = extractvalue { ptr, i32 } %2842, 1
  store i32 %2844, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %219) #11
  br label %2845

2845:                                             ; preds = %2841, %2837
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %218) #11
  br label %2923

2846:                                             ; preds = %2782
  %2847 = landingpad { ptr, i32 }
          cleanup
  %2848 = extractvalue { ptr, i32 } %2847, 0
  store ptr %2848, ptr %11, align 8
  %2849 = extractvalue { ptr, i32 } %2847, 1
  store i32 %2849, ptr %12, align 4
  br label %2922

2850:                                             ; preds = %2783
  %2851 = landingpad { ptr, i32 }
          cleanup
  %2852 = extractvalue { ptr, i32 } %2851, 0
  store ptr %2852, ptr %11, align 8
  %2853 = extractvalue { ptr, i32 } %2851, 1
  store i32 %2853, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #11
  br label %2922

2854:                                             ; preds = %2784
  %2855 = landingpad { ptr, i32 }
          cleanup
  %2856 = extractvalue { ptr, i32 } %2855, 0
  store ptr %2856, ptr %11, align 8
  %2857 = extractvalue { ptr, i32 } %2855, 1
  store i32 %2857, ptr %12, align 4
  br label %2921

2858:                                             ; preds = %2798, %2786
  %2859 = landingpad { ptr, i32 }
          cleanup
  %2860 = extractvalue { ptr, i32 } %2859, 0
  store ptr %2860, ptr %11, align 8
  %2861 = extractvalue { ptr, i32 } %2859, 1
  store i32 %2861, ptr %12, align 4
  br label %2920

2862:                                             ; preds = %2790
  %2863 = landingpad { ptr, i32 }
          cleanup
  %2864 = extractvalue { ptr, i32 } %2863, 0
  store ptr %2864, ptr %11, align 8
  %2865 = extractvalue { ptr, i32 } %2863, 1
  store i32 %2865, ptr %12, align 4
  br label %2885

2866:                                             ; preds = %2792
  %2867 = landingpad { ptr, i32 }
          cleanup
  %2868 = extractvalue { ptr, i32 } %2867, 0
  store ptr %2868, ptr %11, align 8
  %2869 = extractvalue { ptr, i32 } %2867, 1
  store i32 %2869, ptr %12, align 4
  br label %2884

2870:                                             ; preds = %2795, %2793
  %2871 = landingpad { ptr, i32 }
          cleanup
  %2872 = extractvalue { ptr, i32 } %2871, 0
  store ptr %2872, ptr %11, align 8
  %2873 = extractvalue { ptr, i32 } %2871, 1
  store i32 %2873, ptr %12, align 4
  br label %2883

2874:                                             ; preds = %2796
  %2875 = landingpad { ptr, i32 }
          cleanup
  %2876 = extractvalue { ptr, i32 } %2875, 0
  store ptr %2876, ptr %11, align 8
  %2877 = extractvalue { ptr, i32 } %2875, 1
  store i32 %2877, ptr %12, align 4
  br label %2882

2878:                                             ; preds = %2797
  %2879 = landingpad { ptr, i32 }
          cleanup
  %2880 = extractvalue { ptr, i32 } %2879, 0
  store ptr %2880, ptr %11, align 8
  %2881 = extractvalue { ptr, i32 } %2879, 1
  store i32 %2881, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %223) #11
  br label %2882

2882:                                             ; preds = %2878, %2874
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %224) #11
  br label %2883

2883:                                             ; preds = %2882, %2870
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %225) #11
  br label %2884

2884:                                             ; preds = %2883, %2866
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %226) #11
  br label %2885

2885:                                             ; preds = %2884, %2862
  call void @llvm.lifetime.end.p0(i64 16, ptr %225) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %224) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %223) #11
  br label %2920

2886:                                             ; preds = %2802
  %2887 = landingpad { ptr, i32 }
          cleanup
  %2888 = extractvalue { ptr, i32 } %2887, 0
  store ptr %2888, ptr %11, align 8
  %2889 = extractvalue { ptr, i32 } %2887, 1
  store i32 %2889, ptr %12, align 4
  br label %2919

2890:                                             ; preds = %2804
  %2891 = landingpad { ptr, i32 }
          cleanup
  %2892 = extractvalue { ptr, i32 } %2891, 0
  store ptr %2892, ptr %11, align 8
  %2893 = extractvalue { ptr, i32 } %2891, 1
  store i32 %2893, ptr %12, align 4
  br label %2918

2894:                                             ; preds = %2805
  %2895 = landingpad { ptr, i32 }
          cleanup
  %2896 = extractvalue { ptr, i32 } %2895, 0
  store ptr %2896, ptr %11, align 8
  %2897 = extractvalue { ptr, i32 } %2895, 1
  store i32 %2897, ptr %12, align 4
  br label %2917

2898:                                             ; preds = %2807
  %2899 = landingpad { ptr, i32 }
          cleanup
  %2900 = extractvalue { ptr, i32 } %2899, 0
  store ptr %2900, ptr %11, align 8
  %2901 = extractvalue { ptr, i32 } %2899, 1
  store i32 %2901, ptr %12, align 4
  br label %2916

2902:                                             ; preds = %2810, %2808
  %2903 = landingpad { ptr, i32 }
          cleanup
  %2904 = extractvalue { ptr, i32 } %2903, 0
  store ptr %2904, ptr %11, align 8
  %2905 = extractvalue { ptr, i32 } %2903, 1
  store i32 %2905, ptr %12, align 4
  br label %2915

2906:                                             ; preds = %2811
  %2907 = landingpad { ptr, i32 }
          cleanup
  %2908 = extractvalue { ptr, i32 } %2907, 0
  store ptr %2908, ptr %11, align 8
  %2909 = extractvalue { ptr, i32 } %2907, 1
  store i32 %2909, ptr %12, align 4
  br label %2914

2910:                                             ; preds = %2812
  %2911 = landingpad { ptr, i32 }
          cleanup
  %2912 = extractvalue { ptr, i32 } %2911, 0
  store ptr %2912, ptr %11, align 8
  %2913 = extractvalue { ptr, i32 } %2911, 1
  store i32 %2913, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %227) #11
  br label %2914

2914:                                             ; preds = %2910, %2906
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %228) #11
  br label %2915

2915:                                             ; preds = %2914, %2902
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %229) #11
  br label %2916

2916:                                             ; preds = %2915, %2898
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %232) #11
  br label %2917

2917:                                             ; preds = %2916, %2894
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %230) #11
  br label %2918

2918:                                             ; preds = %2917, %2890
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %231) #11
  br label %2919

2919:                                             ; preds = %2918, %2886
  call void @llvm.lifetime.end.p0(i64 16, ptr %229) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %228) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %227) #11
  br label %2920

2920:                                             ; preds = %2919, %2885, %2858
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %222) #11
  br label %2921

2921:                                             ; preds = %2920, %2854
  call void @llvm.lifetime.end.p0(i64 16, ptr %222) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %220) #11
  br label %2922

2922:                                             ; preds = %2921, %2850, %2846
  call void @llvm.lifetime.end.p0(i64 16, ptr %220) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #11
  br label %2923

2923:                                             ; preds = %2922, %2845, %2833
  call void @llvm.lifetime.end.p0(i64 16, ptr %217) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %215) #11
  br label %2924

2924:                                             ; preds = %2923, %2829, %2825
  call void @llvm.lifetime.end.p0(i64 16, ptr %215) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %214) #11
  br label %2925

2925:                                             ; preds = %2924, %2821
  call void @llvm.lifetime.end.p0(i64 16, ptr %214) #11
  br label %2926

2926:                                             ; preds = %2925, %2817
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #11
  br label %2927

2927:                                             ; preds = %2926, %2768
  call void @llvm.lifetime.end.p0(i64 16, ptr %212) #11
  br label %2928

2928:                                             ; preds = %2927, %2764
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #11
  br label %2929

2929:                                             ; preds = %2928, %2760
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #11
  br label %11365

2930:                                             ; preds = %2759
  call void @llvm.lifetime.start.p0(i64 16, ptr %233) #11
  invoke void @_ZN6langcc7make_rcINS_3VecISt4pairINS_6rc_ptrINS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS3_IN4lang4data4Node4Decl4Data2_TEEEEEEJEEENS3_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.133") align 8 %233)
          to label %2931 unwind label %2953

2931:                                             ; preds = %2930
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #11
  %2932 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 3
  %2933 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2932)
          to label %2934 unwind label %2957

2934:                                             ; preds = %2931
  store ptr %2933, ptr %234, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %235) #11
  %2935 = load ptr, ptr %234, align 8, !tbaa !5
  %2936 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2935)
          to label %2937 unwind label %2961

2937:                                             ; preds = %2934
  %2938 = getelementptr inbounds { ptr, i64 }, ptr %235, i32 0, i32 0
  %2939 = extractvalue { ptr, i64 } %2936, 0
  store ptr %2939, ptr %2938, align 8
  %2940 = getelementptr inbounds { ptr, i64 }, ptr %235, i32 0, i32 1
  %2941 = extractvalue { ptr, i64 } %2936, 1
  store i64 %2941, ptr %2940, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %236) #11
  %2942 = load ptr, ptr %234, align 8, !tbaa !5
  %2943 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2942)
          to label %2944 unwind label %2965

2944:                                             ; preds = %2937
  %2945 = getelementptr inbounds { ptr, i64 }, ptr %236, i32 0, i32 0
  %2946 = extractvalue { ptr, i64 } %2943, 0
  store ptr %2946, ptr %2945, align 8
  %2947 = getelementptr inbounds { ptr, i64 }, ptr %236, i32 0, i32 1
  %2948 = extractvalue { ptr, i64 } %2943, 1
  store i64 %2948, ptr %2947, align 8
  br label %2949

2949:                                             ; preds = %2978, %2944
  %2950 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEneERKSI_(ptr noundef nonnull align 8 dereferenceable(16) %235, ptr noundef nonnull align 8 dereferenceable(16) %236)
          to label %2951 unwind label %2965

2951:                                             ; preds = %2949
  br i1 %2950, label %2969, label %2952

2952:                                             ; preds = %2951
  store i32 14, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %236) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %235) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #11
  br label %2986

2953:                                             ; preds = %2930
  %2954 = landingpad { ptr, i32 }
          cleanup
  %2955 = extractvalue { ptr, i32 } %2954, 0
  store ptr %2955, ptr %11, align 8
  %2956 = extractvalue { ptr, i32 } %2954, 1
  store i32 %2956, ptr %12, align 4
  br label %11364

2957:                                             ; preds = %2931
  %2958 = landingpad { ptr, i32 }
          cleanup
  %2959 = extractvalue { ptr, i32 } %2958, 0
  store ptr %2959, ptr %11, align 8
  %2960 = extractvalue { ptr, i32 } %2958, 1
  store i32 %2960, ptr %12, align 4
  br label %2985

2961:                                             ; preds = %2934
  %2962 = landingpad { ptr, i32 }
          cleanup
  %2963 = extractvalue { ptr, i32 } %2962, 0
  store ptr %2963, ptr %11, align 8
  %2964 = extractvalue { ptr, i32 } %2962, 1
  store i32 %2964, ptr %12, align 4
  br label %2984

2965:                                             ; preds = %2976, %2949, %2937
  %2966 = landingpad { ptr, i32 }
          cleanup
  %2967 = extractvalue { ptr, i32 } %2966, 0
  store ptr %2967, ptr %11, align 8
  %2968 = extractvalue { ptr, i32 } %2966, 1
  store i32 %2968, ptr %12, align 4
  br label %2983

2969:                                             ; preds = %2951
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #11
  %2970 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %235)
          to label %2971 unwind label %2979

2971:                                             ; preds = %2969
  store ptr %2970, ptr %237, align 8, !tbaa !5
  %2972 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %2973 unwind label %2979

2973:                                             ; preds = %2971
  %2974 = load ptr, ptr %237, align 8, !tbaa !5
  invoke void @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE9push_backERKSI_(ptr noundef nonnull align 8 dereferenceable(64) %2972, ptr noundef nonnull align 8 dereferenceable(32) %2974)
          to label %2975 unwind label %2979

2975:                                             ; preds = %2973
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  br label %2976

2976:                                             ; preds = %2975
  %2977 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %235)
          to label %2978 unwind label %2965

2978:                                             ; preds = %2976
  br label %2949

2979:                                             ; preds = %2973, %2971, %2969
  %2980 = landingpad { ptr, i32 }
          cleanup
  %2981 = extractvalue { ptr, i32 } %2980, 0
  store ptr %2981, ptr %11, align 8
  %2982 = extractvalue { ptr, i32 } %2980, 1
  store i32 %2982, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  br label %2983

2983:                                             ; preds = %2979, %2965
  call void @llvm.lifetime.end.p0(i64 16, ptr %236) #11
  br label %2984

2984:                                             ; preds = %2983, %2961
  call void @llvm.lifetime.end.p0(i64 16, ptr %235) #11
  br label %2985

2985:                                             ; preds = %2984, %2957
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #11
  br label %11363

2986:                                             ; preds = %2952
  call void @llvm.lifetime.start.p0(i64 24, ptr %238) #11
  call void @_ZNSt6vectorISt4pairIllESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %238) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #11
  store i64 0, ptr %239, align 8, !tbaa !15
  br label %2987

2987:                                             ; preds = %3017, %2986
  %2988 = load i64, ptr %239, align 8, !tbaa !15
  %2989 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %2990 unwind label %2995

2990:                                             ; preds = %2987
  %2991 = invoke noundef i64 @_ZNK6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %2989)
          to label %2992 unwind label %2995

2992:                                             ; preds = %2990
  %2993 = icmp slt i64 %2988, %2991
  br i1 %2993, label %2999, label %2994

2994:                                             ; preds = %2992
  store i32 16, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #11
  br label %3030

2995:                                             ; preds = %2990, %2987
  %2996 = landingpad { ptr, i32 }
          cleanup
  %2997 = extractvalue { ptr, i32 } %2996, 0
  store ptr %2997, ptr %11, align 8
  %2998 = extractvalue { ptr, i32 } %2996, 1
  store i32 %2998, ptr %12, align 4
  br label %3029

2999:                                             ; preds = %2992
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #11
  %3000 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %3001 unwind label %3020

3001:                                             ; preds = %2999
  %3002 = load i64, ptr %239, align 8, !tbaa !15
  %3003 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %3000, i64 noundef %3002)
          to label %3004 unwind label %3020

3004:                                             ; preds = %3001
  %3005 = getelementptr inbounds %"struct.std::pair.131", ptr %3003, i32 0, i32 0
  %3006 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3005)
          to label %3007 unwind label %3020

3007:                                             ; preds = %3004
  %3008 = invoke noundef i64 @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %3006)
          to label %3009 unwind label %3020

3009:                                             ; preds = %3007
  store i64 %3008, ptr %240, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %241) #11
  %3010 = invoke { i64, i64 } @_ZSt9make_pairIRlS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull align 8 dereferenceable(8) %239)
          to label %3011 unwind label %3024

3011:                                             ; preds = %3009
  %3012 = getelementptr inbounds { i64, i64 }, ptr %241, i32 0, i32 0
  %3013 = extractvalue { i64, i64 } %3010, 0
  store i64 %3013, ptr %3012, align 8
  %3014 = getelementptr inbounds { i64, i64 }, ptr %241, i32 0, i32 1
  %3015 = extractvalue { i64, i64 } %3010, 1
  store i64 %3015, ptr %3014, align 8
  invoke void @_ZNSt6vectorISt4pairIllESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %238, ptr noundef nonnull align 8 dereferenceable(16) %241)
          to label %3016 unwind label %3024

3016:                                             ; preds = %3011
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #11
  br label %3017

3017:                                             ; preds = %3016
  %3018 = load i64, ptr %239, align 8, !tbaa !15
  %3019 = add nsw i64 %3018, 1
  store i64 %3019, ptr %239, align 8, !tbaa !15
  br label %2987, !llvm.loop !16

3020:                                             ; preds = %3007, %3004, %3001, %2999
  %3021 = landingpad { ptr, i32 }
          cleanup
  %3022 = extractvalue { ptr, i32 } %3021, 0
  store ptr %3022, ptr %11, align 8
  %3023 = extractvalue { ptr, i32 } %3021, 1
  store i32 %3023, ptr %12, align 4
  br label %3028

3024:                                             ; preds = %3011, %3009
  %3025 = landingpad { ptr, i32 }
          cleanup
  %3026 = extractvalue { ptr, i32 } %3025, 0
  store ptr %3026, ptr %11, align 8
  %3027 = extractvalue { ptr, i32 } %3025, 1
  store i32 %3027, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %241) #11
  br label %3028

3028:                                             ; preds = %3024, %3020
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #11
  br label %3029

3029:                                             ; preds = %3028, %2995
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #11
  br label %11362

3030:                                             ; preds = %2994
  %3031 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #11
  %3032 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %242, i32 0, i32 0
  store ptr %3031, ptr %3032, align 8
  %3033 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #11
  %3034 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %243, i32 0, i32 0
  store ptr %3033, ptr %3034, align 8
  %3035 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %242, i32 0, i32 0
  %3036 = load ptr, ptr %3035, align 8
  %3037 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %243, i32 0, i32 0
  %3038 = load ptr, ptr %3037, align 8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %3036, ptr %3038)
          to label %3039 unwind label %3049

3039:                                             ; preds = %3030
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #11
  store ptr %238, ptr %244, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #11
  %3040 = load ptr, ptr %244, align 8, !tbaa !5
  %3041 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3040) #11
  %3042 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %245, i32 0, i32 0
  store ptr %3041, ptr %3042, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #11
  %3043 = load ptr, ptr %244, align 8, !tbaa !5
  %3044 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3043) #11
  %3045 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %246, i32 0, i32 0
  store ptr %3044, ptr %3045, align 8
  br label %3046

3046:                                             ; preds = %11055, %3039
  %3047 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIllESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull align 8 dereferenceable(8) %246) #11
  br i1 %3047, label %3053, label %3048

3048:                                             ; preds = %3046
  store i32 19, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #11
  br label %11142

3049:                                             ; preds = %3030
  %3050 = landingpad { ptr, i32 }
          cleanup
  %3051 = extractvalue { ptr, i32 } %3050, 0
  store ptr %3051, ptr %11, align 8
  %3052 = extractvalue { ptr, i32 } %3050, 1
  store i32 %3052, ptr %12, align 4
  br label %11362

3053:                                             ; preds = %3046
  call void @llvm.lifetime.start.p0(i64 16, ptr %247) #11
  %3054 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %245) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %247, ptr align 8 %3054, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #11
  %3055 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %247) #11
  store ptr %3055, ptr %248, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #11
  %3056 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %247) #11
  store ptr %3056, ptr %249, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %250) #11
  %3057 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %3058 unwind label %3127

3058:                                             ; preds = %3053
  %3059 = load ptr, ptr %249, align 8, !tbaa !5
  %3060 = load i64, ptr %3059, align 8, !tbaa !15
  %3061 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %3057, i64 noundef %3060)
          to label %3062 unwind label %3127

3062:                                             ; preds = %3058
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEC2ERKSI_(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull align 8 dereferenceable(32) %3061)
          to label %3063 unwind label %3127

3063:                                             ; preds = %3062
  call void @llvm.lifetime.start.p0(i64 16, ptr %251) #11
  %3064 = getelementptr inbounds %"struct.std::pair.131", ptr %250, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(16) %3064)
          to label %3065 unwind label %3131

3065:                                             ; preds = %3063
  call void @llvm.lifetime.start.p0(i64 16, ptr %252) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %253)
          to label %3066 unwind label %3135

3066:                                             ; preds = %3065
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %252, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %253)
          to label %3067 unwind label %3139

3067:                                             ; preds = %3066
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %253) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %254) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %255)
          to label %3068 unwind label %3143

3068:                                             ; preds = %3067
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %256)
          to label %3069 unwind label %3147

3069:                                             ; preds = %3068
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %254, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %255, ptr noundef %256)
          to label %3070 unwind label %3151

3070:                                             ; preds = %3069
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %256) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %255) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %257) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %258)
          to label %3071 unwind label %3156

3071:                                             ; preds = %3070
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %259)
          to label %3072 unwind label %3160

3072:                                             ; preds = %3071
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %257, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %258, ptr noundef %259)
          to label %3073 unwind label %3164

3073:                                             ; preds = %3072
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %259) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %258) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %260) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %261, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %3074 unwind label %3169

3074:                                             ; preds = %3073
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %260, ptr noundef %261, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %3075 unwind label %3173

3075:                                             ; preds = %3074
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %262) #11
  %3076 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %262, ptr noundef nonnull align 8 dereferenceable(264) %3076, ptr noundef nonnull align 8 dereferenceable(16) %254, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %3077 unwind label %3177

3077:                                             ; preds = %3075
  call void @llvm.lifetime.start.p0(i64 1, ptr %263) #11
  %3078 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %3079 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3078)
          to label %3080 unwind label %3181

3080:                                             ; preds = %3077
  %3081 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3079, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %3082 unwind label %3181

3082:                                             ; preds = %3080
  %3083 = zext i1 %3081 to i8
  store i8 %3083, ptr %263, align 1, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 16, ptr %264) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %264)
          to label %3084 unwind label %3185

3084:                                             ; preds = %3082
  call void @llvm.lifetime.start.p0(i64 32, ptr %265) #11
  %3085 = getelementptr inbounds %"struct.std::pair.131", ptr %250, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %266, ptr noundef nonnull align 8 dereferenceable(16) %3085)
          to label %3086 unwind label %3189

3086:                                             ; preds = %3084
  invoke void @_ZN6langcc26dt_extract_def_fields_fullENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.std::pair.91") align 8 %265, ptr noundef %266, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %3087 unwind label %3193

3087:                                             ; preds = %3086
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %266) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %267) #11
  %3088 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32) %265) #11
  store ptr %3088, ptr %267, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %268) #11
  %3089 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32) %265) #11
  store ptr %3089, ptr %268, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %269) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %270)
          to label %3090 unwind label %3197

3090:                                             ; preds = %3087
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %269, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %270)
          to label %3091 unwind label %3201

3091:                                             ; preds = %3090
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %270) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %271) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %271)
          to label %3092 unwind label %3205

3092:                                             ; preds = %3091
  call void @llvm.lifetime.start.p0(i64 16, ptr %272) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %272)
          to label %3093 unwind label %3209

3093:                                             ; preds = %3092
  call void @llvm.lifetime.start.p0(i64 16, ptr %273) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %273)
          to label %3094 unwind label %3213

3094:                                             ; preds = %3093
  %3095 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %3096 = trunc i8 %3095 to i1
  br i1 %3096, label %3097, label %3298

3097:                                             ; preds = %3094
  call void @llvm.lifetime.start.p0(i64 32, ptr %274) #11
  %3098 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %275, ptr noundef nonnull align 8 dereferenceable(16) %269)
          to label %3099 unwind label %3217

3099:                                             ; preds = %3097
  call void @llvm.lifetime.start.p0(i64 1, ptr %277) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef @.str.123, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %3100 unwind label %3221

3100:                                             ; preds = %3099
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %274, ptr noundef nonnull align 8 dereferenceable(264) %3098, ptr noundef %275, ptr noundef %276)
          to label %3101 unwind label %3225

3101:                                             ; preds = %3100
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %275) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %278) #11
  %3102 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %278, ptr noundef nonnull align 8 dereferenceable(264) %3102, ptr noundef nonnull align 8 dereferenceable(32) %274)
          to label %3103 unwind label %3230

3103:                                             ; preds = %3101
  call void @llvm.lifetime.start.p0(i64 16, ptr %279) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %280)
          to label %3104 unwind label %3234

3104:                                             ; preds = %3103
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %281)
          to label %3105 unwind label %3238

3105:                                             ; preds = %3104
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %279, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %280, ptr noundef %281)
          to label %3106 unwind label %3242

3106:                                             ; preds = %3105
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %281) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %280) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %282) #11
  %3107 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %3108 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %3107, i32 0, i32 1
  %3109 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3108)
          to label %3110 unwind label %3247

3110:                                             ; preds = %3106
  call void @llvm.lifetime.start.p0(i64 32, ptr %284) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %285) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %285)
          to label %3111 unwind label %3251

3111:                                             ; preds = %3110
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %283, ptr noundef nonnull align 8 dereferenceable(32) %284)
          to label %3112 unwind label %3255

3112:                                             ; preds = %3111
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %282, ptr noundef nonnull align 8 dereferenceable(32) %3109, ptr noundef %283, ptr noundef nonnull align 8 dereferenceable(16) %279, ptr noundef nonnull align 8 dereferenceable(16) %278)
          to label %3113 unwind label %3259

3113:                                             ; preds = %3112
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %283) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %285) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %284) #11
  %3114 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %271)
          to label %3115 unwind label %3265

3115:                                             ; preds = %3113
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3114, ptr noundef nonnull align 8 dereferenceable(16) %282)
          to label %3116 unwind label %3265

3116:                                             ; preds = %3115
  %3117 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %272)
          to label %3118 unwind label %3265

3118:                                             ; preds = %3116
  call void @llvm.lifetime.start.p0(i64 16, ptr %286) #11
  %3119 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %3120 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %3119, i32 0, i32 1
  %3121 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3120)
          to label %3122 unwind label %3269

3122:                                             ; preds = %3118
  call void @llvm.lifetime.start.p0(i64 32, ptr %288) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %289) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %288, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %289)
          to label %3123 unwind label %3273

3123:                                             ; preds = %3122
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %287, ptr noundef nonnull align 8 dereferenceable(32) %288)
          to label %3124 unwind label %3277

3124:                                             ; preds = %3123
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA6_cNS_6rc_ptrIS4_EEA2_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %286, ptr noundef nonnull align 8 dereferenceable(32) %3121, ptr noundef %287, ptr noundef nonnull align 1 dereferenceable(6) @.str.124, ptr noundef nonnull align 8 dereferenceable(16) %278, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %3125 unwind label %3281

3125:                                             ; preds = %3124
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3117, ptr noundef nonnull align 8 dereferenceable(16) %286)
          to label %3126 unwind label %3285

3126:                                             ; preds = %3125
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %287) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %288) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %286) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %282) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %282) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %279) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %279) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %278) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %278) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %274) #11
  br label %3298

3127:                                             ; preds = %3062, %3058, %3053
  %3128 = landingpad { ptr, i32 }
          cleanup
  %3129 = extractvalue { ptr, i32 } %3128, 0
  store ptr %3129, ptr %11, align 8
  %3130 = extractvalue { ptr, i32 } %3128, 1
  store i32 %3130, ptr %12, align 4
  br label %11141

3131:                                             ; preds = %3063
  %3132 = landingpad { ptr, i32 }
          cleanup
  %3133 = extractvalue { ptr, i32 } %3132, 0
  store ptr %3133, ptr %11, align 8
  %3134 = extractvalue { ptr, i32 } %3132, 1
  store i32 %3134, ptr %12, align 4
  br label %11140

3135:                                             ; preds = %3065
  %3136 = landingpad { ptr, i32 }
          cleanup
  %3137 = extractvalue { ptr, i32 } %3136, 0
  store ptr %3137, ptr %11, align 8
  %3138 = extractvalue { ptr, i32 } %3136, 1
  store i32 %3138, ptr %12, align 4
  br label %11139

3139:                                             ; preds = %3066
  %3140 = landingpad { ptr, i32 }
          cleanup
  %3141 = extractvalue { ptr, i32 } %3140, 0
  store ptr %3141, ptr %11, align 8
  %3142 = extractvalue { ptr, i32 } %3140, 1
  store i32 %3142, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %253) #11
  br label %11139

3143:                                             ; preds = %3067
  %3144 = landingpad { ptr, i32 }
          cleanup
  %3145 = extractvalue { ptr, i32 } %3144, 0
  store ptr %3145, ptr %11, align 8
  %3146 = extractvalue { ptr, i32 } %3144, 1
  store i32 %3146, ptr %12, align 4
  br label %11138

3147:                                             ; preds = %3068
  %3148 = landingpad { ptr, i32 }
          cleanup
  %3149 = extractvalue { ptr, i32 } %3148, 0
  store ptr %3149, ptr %11, align 8
  %3150 = extractvalue { ptr, i32 } %3148, 1
  store i32 %3150, ptr %12, align 4
  br label %3155

3151:                                             ; preds = %3069
  %3152 = landingpad { ptr, i32 }
          cleanup
  %3153 = extractvalue { ptr, i32 } %3152, 0
  store ptr %3153, ptr %11, align 8
  %3154 = extractvalue { ptr, i32 } %3152, 1
  store i32 %3154, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %256) #11
  br label %3155

3155:                                             ; preds = %3151, %3147
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %255) #11
  br label %11138

3156:                                             ; preds = %3070
  %3157 = landingpad { ptr, i32 }
          cleanup
  %3158 = extractvalue { ptr, i32 } %3157, 0
  store ptr %3158, ptr %11, align 8
  %3159 = extractvalue { ptr, i32 } %3157, 1
  store i32 %3159, ptr %12, align 4
  br label %11137

3160:                                             ; preds = %3071
  %3161 = landingpad { ptr, i32 }
          cleanup
  %3162 = extractvalue { ptr, i32 } %3161, 0
  store ptr %3162, ptr %11, align 8
  %3163 = extractvalue { ptr, i32 } %3161, 1
  store i32 %3163, ptr %12, align 4
  br label %3168

3164:                                             ; preds = %3072
  %3165 = landingpad { ptr, i32 }
          cleanup
  %3166 = extractvalue { ptr, i32 } %3165, 0
  store ptr %3166, ptr %11, align 8
  %3167 = extractvalue { ptr, i32 } %3165, 1
  store i32 %3167, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %259) #11
  br label %3168

3168:                                             ; preds = %3164, %3160
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %258) #11
  br label %11137

3169:                                             ; preds = %3073
  %3170 = landingpad { ptr, i32 }
          cleanup
  %3171 = extractvalue { ptr, i32 } %3170, 0
  store ptr %3171, ptr %11, align 8
  %3172 = extractvalue { ptr, i32 } %3170, 1
  store i32 %3172, ptr %12, align 4
  br label %11136

3173:                                             ; preds = %3074
  %3174 = landingpad { ptr, i32 }
          cleanup
  %3175 = extractvalue { ptr, i32 } %3174, 0
  store ptr %3175, ptr %11, align 8
  %3176 = extractvalue { ptr, i32 } %3174, 1
  store i32 %3176, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #11
  br label %11136

3177:                                             ; preds = %3075
  %3178 = landingpad { ptr, i32 }
          cleanup
  %3179 = extractvalue { ptr, i32 } %3178, 0
  store ptr %3179, ptr %11, align 8
  %3180 = extractvalue { ptr, i32 } %3178, 1
  store i32 %3180, ptr %12, align 4
  br label %11135

3181:                                             ; preds = %3080, %3077
  %3182 = landingpad { ptr, i32 }
          cleanup
  %3183 = extractvalue { ptr, i32 } %3182, 0
  store ptr %3183, ptr %11, align 8
  %3184 = extractvalue { ptr, i32 } %3182, 1
  store i32 %3184, ptr %12, align 4
  br label %11134

3185:                                             ; preds = %3082
  %3186 = landingpad { ptr, i32 }
          cleanup
  %3187 = extractvalue { ptr, i32 } %3186, 0
  store ptr %3187, ptr %11, align 8
  %3188 = extractvalue { ptr, i32 } %3186, 1
  store i32 %3188, ptr %12, align 4
  br label %11133

3189:                                             ; preds = %3084
  %3190 = landingpad { ptr, i32 }
          cleanup
  %3191 = extractvalue { ptr, i32 } %3190, 0
  store ptr %3191, ptr %11, align 8
  %3192 = extractvalue { ptr, i32 } %3190, 1
  store i32 %3192, ptr %12, align 4
  br label %11132

3193:                                             ; preds = %3086
  %3194 = landingpad { ptr, i32 }
          cleanup
  %3195 = extractvalue { ptr, i32 } %3194, 0
  store ptr %3195, ptr %11, align 8
  %3196 = extractvalue { ptr, i32 } %3194, 1
  store i32 %3196, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %266) #11
  br label %11132

3197:                                             ; preds = %3087
  %3198 = landingpad { ptr, i32 }
          cleanup
  %3199 = extractvalue { ptr, i32 } %3198, 0
  store ptr %3199, ptr %11, align 8
  %3200 = extractvalue { ptr, i32 } %3198, 1
  store i32 %3200, ptr %12, align 4
  br label %11131

3201:                                             ; preds = %3090
  %3202 = landingpad { ptr, i32 }
          cleanup
  %3203 = extractvalue { ptr, i32 } %3202, 0
  store ptr %3203, ptr %11, align 8
  %3204 = extractvalue { ptr, i32 } %3202, 1
  store i32 %3204, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %270) #11
  br label %11131

3205:                                             ; preds = %3091
  %3206 = landingpad { ptr, i32 }
          cleanup
  %3207 = extractvalue { ptr, i32 } %3206, 0
  store ptr %3207, ptr %11, align 8
  %3208 = extractvalue { ptr, i32 } %3206, 1
  store i32 %3208, ptr %12, align 4
  br label %11130

3209:                                             ; preds = %3092
  %3210 = landingpad { ptr, i32 }
          cleanup
  %3211 = extractvalue { ptr, i32 } %3210, 0
  store ptr %3211, ptr %11, align 8
  %3212 = extractvalue { ptr, i32 } %3210, 1
  store i32 %3212, ptr %12, align 4
  br label %11129

3213:                                             ; preds = %3093
  %3214 = landingpad { ptr, i32 }
          cleanup
  %3215 = extractvalue { ptr, i32 } %3214, 0
  store ptr %3215, ptr %11, align 8
  %3216 = extractvalue { ptr, i32 } %3214, 1
  store i32 %3216, ptr %12, align 4
  br label %11128

3217:                                             ; preds = %3097
  %3218 = landingpad { ptr, i32 }
          cleanup
  %3219 = extractvalue { ptr, i32 } %3218, 0
  store ptr %3219, ptr %11, align 8
  %3220 = extractvalue { ptr, i32 } %3218, 1
  store i32 %3220, ptr %12, align 4
  br label %3297

3221:                                             ; preds = %3099
  %3222 = landingpad { ptr, i32 }
          cleanup
  %3223 = extractvalue { ptr, i32 } %3222, 0
  store ptr %3223, ptr %11, align 8
  %3224 = extractvalue { ptr, i32 } %3222, 1
  store i32 %3224, ptr %12, align 4
  br label %3229

3225:                                             ; preds = %3100
  %3226 = landingpad { ptr, i32 }
          cleanup
  %3227 = extractvalue { ptr, i32 } %3226, 0
  store ptr %3227, ptr %11, align 8
  %3228 = extractvalue { ptr, i32 } %3226, 1
  store i32 %3228, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #11
  br label %3229

3229:                                             ; preds = %3225, %3221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %275) #11
  br label %3297

3230:                                             ; preds = %3101
  %3231 = landingpad { ptr, i32 }
          cleanup
  %3232 = extractvalue { ptr, i32 } %3231, 0
  store ptr %3232, ptr %11, align 8
  %3233 = extractvalue { ptr, i32 } %3231, 1
  store i32 %3233, ptr %12, align 4
  br label %3296

3234:                                             ; preds = %3103
  %3235 = landingpad { ptr, i32 }
          cleanup
  %3236 = extractvalue { ptr, i32 } %3235, 0
  store ptr %3236, ptr %11, align 8
  %3237 = extractvalue { ptr, i32 } %3235, 1
  store i32 %3237, ptr %12, align 4
  br label %3295

3238:                                             ; preds = %3104
  %3239 = landingpad { ptr, i32 }
          cleanup
  %3240 = extractvalue { ptr, i32 } %3239, 0
  store ptr %3240, ptr %11, align 8
  %3241 = extractvalue { ptr, i32 } %3239, 1
  store i32 %3241, ptr %12, align 4
  br label %3246

3242:                                             ; preds = %3105
  %3243 = landingpad { ptr, i32 }
          cleanup
  %3244 = extractvalue { ptr, i32 } %3243, 0
  store ptr %3244, ptr %11, align 8
  %3245 = extractvalue { ptr, i32 } %3243, 1
  store i32 %3245, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %281) #11
  br label %3246

3246:                                             ; preds = %3242, %3238
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %280) #11
  br label %3295

3247:                                             ; preds = %3106
  %3248 = landingpad { ptr, i32 }
          cleanup
  %3249 = extractvalue { ptr, i32 } %3248, 0
  store ptr %3249, ptr %11, align 8
  %3250 = extractvalue { ptr, i32 } %3248, 1
  store i32 %3250, ptr %12, align 4
  br label %3294

3251:                                             ; preds = %3110
  %3252 = landingpad { ptr, i32 }
          cleanup
  %3253 = extractvalue { ptr, i32 } %3252, 0
  store ptr %3253, ptr %11, align 8
  %3254 = extractvalue { ptr, i32 } %3252, 1
  store i32 %3254, ptr %12, align 4
  br label %3264

3255:                                             ; preds = %3111
  %3256 = landingpad { ptr, i32 }
          cleanup
  %3257 = extractvalue { ptr, i32 } %3256, 0
  store ptr %3257, ptr %11, align 8
  %3258 = extractvalue { ptr, i32 } %3256, 1
  store i32 %3258, ptr %12, align 4
  br label %3263

3259:                                             ; preds = %3112
  %3260 = landingpad { ptr, i32 }
          cleanup
  %3261 = extractvalue { ptr, i32 } %3260, 0
  store ptr %3261, ptr %11, align 8
  %3262 = extractvalue { ptr, i32 } %3260, 1
  store i32 %3262, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %283) #11
  br label %3263

3263:                                             ; preds = %3259, %3255
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #11
  br label %3264

3264:                                             ; preds = %3263, %3251
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %285) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %284) #11
  br label %3294

3265:                                             ; preds = %3116, %3115, %3113
  %3266 = landingpad { ptr, i32 }
          cleanup
  %3267 = extractvalue { ptr, i32 } %3266, 0
  store ptr %3267, ptr %11, align 8
  %3268 = extractvalue { ptr, i32 } %3266, 1
  store i32 %3268, ptr %12, align 4
  br label %3293

3269:                                             ; preds = %3118
  %3270 = landingpad { ptr, i32 }
          cleanup
  %3271 = extractvalue { ptr, i32 } %3270, 0
  store ptr %3271, ptr %11, align 8
  %3272 = extractvalue { ptr, i32 } %3270, 1
  store i32 %3272, ptr %12, align 4
  br label %3292

3273:                                             ; preds = %3122
  %3274 = landingpad { ptr, i32 }
          cleanup
  %3275 = extractvalue { ptr, i32 } %3274, 0
  store ptr %3275, ptr %11, align 8
  %3276 = extractvalue { ptr, i32 } %3274, 1
  store i32 %3276, ptr %12, align 4
  br label %3291

3277:                                             ; preds = %3123
  %3278 = landingpad { ptr, i32 }
          cleanup
  %3279 = extractvalue { ptr, i32 } %3278, 0
  store ptr %3279, ptr %11, align 8
  %3280 = extractvalue { ptr, i32 } %3278, 1
  store i32 %3280, ptr %12, align 4
  br label %3290

3281:                                             ; preds = %3124
  %3282 = landingpad { ptr, i32 }
          cleanup
  %3283 = extractvalue { ptr, i32 } %3282, 0
  store ptr %3283, ptr %11, align 8
  %3284 = extractvalue { ptr, i32 } %3282, 1
  store i32 %3284, ptr %12, align 4
  br label %3289

3285:                                             ; preds = %3125
  %3286 = landingpad { ptr, i32 }
          cleanup
  %3287 = extractvalue { ptr, i32 } %3286, 0
  store ptr %3287, ptr %11, align 8
  %3288 = extractvalue { ptr, i32 } %3286, 1
  store i32 %3288, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %286) #11
  br label %3289

3289:                                             ; preds = %3285, %3281
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %287) #11
  br label %3290

3290:                                             ; preds = %3289, %3277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %288) #11
  br label %3291

3291:                                             ; preds = %3290, %3273
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #11
  br label %3292

3292:                                             ; preds = %3291, %3269
  call void @llvm.lifetime.end.p0(i64 16, ptr %286) #11
  br label %3293

3293:                                             ; preds = %3292, %3265
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %282) #11
  br label %3294

3294:                                             ; preds = %3293, %3264, %3247
  call void @llvm.lifetime.end.p0(i64 16, ptr %282) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %279) #11
  br label %3295

3295:                                             ; preds = %3294, %3246, %3234
  call void @llvm.lifetime.end.p0(i64 16, ptr %279) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %278) #11
  br label %3296

3296:                                             ; preds = %3295, %3230
  call void @llvm.lifetime.end.p0(i64 16, ptr %278) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #11
  br label %3297

3297:                                             ; preds = %3296, %3229, %3217
  call void @llvm.lifetime.end.p0(i64 32, ptr %274) #11
  br label %11127

3298:                                             ; preds = %3126, %3094
  %3299 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 2
  %3300 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3299)
          to label %3301 unwind label %3326

3301:                                             ; preds = %3298
  %3302 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3300, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %3303 unwind label %3326

3303:                                             ; preds = %3301
  br i1 %3302, label %3304, label %3372

3304:                                             ; preds = %3303
  call void @llvm.lifetime.start.p0(i64 48, ptr %290) #11
  %3305 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 2
  %3306 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3305)
          to label %3307 unwind label %3330

3307:                                             ; preds = %3304
  %3308 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3306, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %3309 unwind label %3330

3309:                                             ; preds = %3307
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(48) %290, ptr noundef nonnull align 8 dereferenceable(48) %3308)
          to label %3310 unwind label %3330

3310:                                             ; preds = %3309
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #11
  %3311 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %290) #11
  store ptr %3311, ptr %291, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #11
  %3312 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %290) #11
  store ptr %3312, ptr %292, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %293) #11
  %3313 = load ptr, ptr %291, align 8, !tbaa !5
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %294)
          to label %3314 unwind label %3334

3314:                                             ; preds = %3310
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %295)
          to label %3315 unwind label %3338

3315:                                             ; preds = %3314
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %293, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %3313, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %294, ptr noundef %295)
          to label %3316 unwind label %3342

3316:                                             ; preds = %3315
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %295) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %294) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %296) #11
  %3317 = load ptr, ptr %291, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %297, ptr noundef nonnull align 8 dereferenceable(16) %3317)
          to label %3318 unwind label %3347

3318:                                             ; preds = %3316
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %296, ptr noundef %297, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %3319 unwind label %3351

3319:                                             ; preds = %3318
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %297) #11
  %3320 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %273)
          to label %3321 unwind label %3355

3321:                                             ; preds = %3319
  call void @llvm.lifetime.start.p0(i64 16, ptr %298) #11
  %3322 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %3323 = load ptr, ptr %292, align 8, !tbaa !5
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS8_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %298, ptr noundef nonnull align 8 dereferenceable(264) %3322, ptr noundef nonnull align 1 dereferenceable(5) @.str.46, ptr noundef nonnull align 8 dereferenceable(16) %296, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %293, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %3323, ptr noundef nonnull align 1 dereferenceable(2) @.str.53)
          to label %3324 unwind label %3359

3324:                                             ; preds = %3321
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3320, ptr noundef nonnull align 8 dereferenceable(16) %298)
          to label %3325 unwind label %3363

3325:                                             ; preds = %3324
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %298) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %298) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %296) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %296) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %293) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %293) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %290) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %290) #11
  br label %3372

3326:                                             ; preds = %3301, %3298
  %3327 = landingpad { ptr, i32 }
          cleanup
  %3328 = extractvalue { ptr, i32 } %3327, 0
  store ptr %3328, ptr %11, align 8
  %3329 = extractvalue { ptr, i32 } %3327, 1
  store i32 %3329, ptr %12, align 4
  br label %11127

3330:                                             ; preds = %3309, %3307, %3304
  %3331 = landingpad { ptr, i32 }
          cleanup
  %3332 = extractvalue { ptr, i32 } %3331, 0
  store ptr %3332, ptr %11, align 8
  %3333 = extractvalue { ptr, i32 } %3331, 1
  store i32 %3333, ptr %12, align 4
  br label %3371

3334:                                             ; preds = %3310
  %3335 = landingpad { ptr, i32 }
          cleanup
  %3336 = extractvalue { ptr, i32 } %3335, 0
  store ptr %3336, ptr %11, align 8
  %3337 = extractvalue { ptr, i32 } %3335, 1
  store i32 %3337, ptr %12, align 4
  br label %3370

3338:                                             ; preds = %3314
  %3339 = landingpad { ptr, i32 }
          cleanup
  %3340 = extractvalue { ptr, i32 } %3339, 0
  store ptr %3340, ptr %11, align 8
  %3341 = extractvalue { ptr, i32 } %3339, 1
  store i32 %3341, ptr %12, align 4
  br label %3346

3342:                                             ; preds = %3315
  %3343 = landingpad { ptr, i32 }
          cleanup
  %3344 = extractvalue { ptr, i32 } %3343, 0
  store ptr %3344, ptr %11, align 8
  %3345 = extractvalue { ptr, i32 } %3343, 1
  store i32 %3345, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %295) #11
  br label %3346

3346:                                             ; preds = %3342, %3338
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %294) #11
  br label %3370

3347:                                             ; preds = %3316
  %3348 = landingpad { ptr, i32 }
          cleanup
  %3349 = extractvalue { ptr, i32 } %3348, 0
  store ptr %3349, ptr %11, align 8
  %3350 = extractvalue { ptr, i32 } %3348, 1
  store i32 %3350, ptr %12, align 4
  br label %3369

3351:                                             ; preds = %3318
  %3352 = landingpad { ptr, i32 }
          cleanup
  %3353 = extractvalue { ptr, i32 } %3352, 0
  store ptr %3353, ptr %11, align 8
  %3354 = extractvalue { ptr, i32 } %3352, 1
  store i32 %3354, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %297) #11
  br label %3369

3355:                                             ; preds = %3319
  %3356 = landingpad { ptr, i32 }
          cleanup
  %3357 = extractvalue { ptr, i32 } %3356, 0
  store ptr %3357, ptr %11, align 8
  %3358 = extractvalue { ptr, i32 } %3356, 1
  store i32 %3358, ptr %12, align 4
  br label %3368

3359:                                             ; preds = %3321
  %3360 = landingpad { ptr, i32 }
          cleanup
  %3361 = extractvalue { ptr, i32 } %3360, 0
  store ptr %3361, ptr %11, align 8
  %3362 = extractvalue { ptr, i32 } %3360, 1
  store i32 %3362, ptr %12, align 4
  br label %3367

3363:                                             ; preds = %3324
  %3364 = landingpad { ptr, i32 }
          cleanup
  %3365 = extractvalue { ptr, i32 } %3364, 0
  store ptr %3365, ptr %11, align 8
  %3366 = extractvalue { ptr, i32 } %3364, 1
  store i32 %3366, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %298) #11
  br label %3367

3367:                                             ; preds = %3363, %3359
  call void @llvm.lifetime.end.p0(i64 16, ptr %298) #11
  br label %3368

3368:                                             ; preds = %3367, %3355
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %296) #11
  br label %3369

3369:                                             ; preds = %3368, %3351, %3347
  call void @llvm.lifetime.end.p0(i64 16, ptr %296) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %293) #11
  br label %3370

3370:                                             ; preds = %3369, %3346, %3334
  call void @llvm.lifetime.end.p0(i64 16, ptr %293) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %290) #11
  br label %3371

3371:                                             ; preds = %3370, %3330
  call void @llvm.lifetime.end.p0(i64 48, ptr %290) #11
  br label %11127

3372:                                             ; preds = %3325, %3303
  call void @llvm.lifetime.start.p0(i64 16, ptr %299) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %300)
          to label %3373 unwind label %3432

3373:                                             ; preds = %3372
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %299, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %300)
          to label %3374 unwind label %3436

3374:                                             ; preds = %3373
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %300) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %301) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %301)
          to label %3375 unwind label %3440

3375:                                             ; preds = %3374
  call void @llvm.lifetime.start.p0(i64 16, ptr %302) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %302)
          to label %3376 unwind label %3444

3376:                                             ; preds = %3375
  call void @llvm.lifetime.start.p0(i64 16, ptr %303) #11
  %3377 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %304, ptr noundef nonnull align 8 dereferenceable(16) %299)
          to label %3378 unwind label %3448

3378:                                             ; preds = %3376
  call void @llvm.lifetime.start.p0(i64 1, ptr %306) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %306) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %306)
          to label %3379 unwind label %3452

3379:                                             ; preds = %3378
  invoke void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA17_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSC_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SL_DpRKT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %303, ptr noundef nonnull align 8 dereferenceable(264) %3377, ptr noundef nonnull align 8 dereferenceable(16) %302, ptr noundef %304, ptr noundef @.str.57, ptr noundef %305, ptr noundef nonnull align 1 dereferenceable(17) @.str.125, ptr noundef nonnull align 8 dereferenceable(16) %262, ptr noundef nonnull align 1 dereferenceable(4) @.str.75)
          to label %3380 unwind label %3456

3380:                                             ; preds = %3379
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %306) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %306) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %304) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %307) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %308) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %310) #11
  store i1 true, ptr %316, align 1
  store ptr %310, ptr %311, align 8
  %3381 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %313) #11
  call void @llvm.memset.p0.i64(ptr align 8 %313, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %313) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %312, ptr noundef nonnull align 8 dereferenceable(24) %313)
          to label %3382 unwind label %3461

3382:                                             ; preds = %3380
  call void @llvm.lifetime.start.p0(i64 1, ptr %315) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %315)
          to label %3383 unwind label %3465

3383:                                             ; preds = %3382
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %310, ptr noundef nonnull align 8 dereferenceable(264) %3381, ptr noundef %312, ptr noundef %314)
          to label %3384 unwind label %3469

3384:                                             ; preds = %3383
  store i1 false, ptr %316, align 1
  %3385 = getelementptr inbounds %"class.std::initializer_list", ptr %309, i32 0, i32 0
  store ptr %310, ptr %3385, align 8, !tbaa !11
  %3386 = getelementptr inbounds %"class.std::initializer_list", ptr %309, i32 0, i32 1
  store i64 1, ptr %3386, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %317) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #11
  %3387 = getelementptr inbounds { ptr, i64 }, ptr %309, i32 0, i32 0
  %3388 = load ptr, ptr %3387, align 8
  %3389 = getelementptr inbounds { ptr, i64 }, ptr %309, i32 0, i32 1
  %3390 = load i64, ptr %3389, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %308, ptr %3388, i64 %3390, ptr noundef nonnull align 1 dereferenceable(1) %317)
          to label %3391 unwind label %3473

3391:                                             ; preds = %3384
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %307, ptr noundef nonnull align 8 dereferenceable(24) %308)
          to label %3392 unwind label %3477

3392:                                             ; preds = %3391
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %308) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %317) #11
  %3393 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %310, i32 0, i32 0
  %3394 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3393, i64 1
  br label %3395

3395:                                             ; preds = %3395, %3392
  %3396 = phi ptr [ %3394, %3392 ], [ %3397, %3395 ]
  %3397 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3396, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3397) #11
  %3398 = icmp eq ptr %3397, %3393
  br i1 %3398, label %3399, label %3395

3399:                                             ; preds = %3395
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %312) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %313) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %313) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %308) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %318) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %319)
          to label %3400 unwind label %3502

3400:                                             ; preds = %3399
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %318, i32 noundef 6, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %319)
          to label %3401 unwind label %3506

3401:                                             ; preds = %3400
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %319) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %320) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %320)
          to label %3402 unwind label %3510

3402:                                             ; preds = %3401
  call void @llvm.lifetime.start.p0(i64 16, ptr %321) #11
  %3403 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %322) #11
  %3404 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %322, ptr noundef nonnull align 8 dereferenceable(264) %3404, ptr noundef nonnull align 1 dereferenceable(17) @.str.126)
          to label %3405 unwind label %3514

3405:                                             ; preds = %3402
  call void @llvm.lifetime.start.p0(i64 32, ptr %323) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %324) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %324)
          to label %3406 unwind label %3518

3406:                                             ; preds = %3405
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %321, ptr noundef nonnull align 8 dereferenceable(264) %3403, ptr noundef nonnull align 8 dereferenceable(16) %320, ptr noundef nonnull align 8 dereferenceable(16) %307, ptr noundef nonnull align 8 dereferenceable(16) %322, ptr noundef nonnull align 8 dereferenceable(32) %323)
          to label %3407 unwind label %3522

3407:                                             ; preds = %3406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %324) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %323) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %322) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %322) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %325) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %325)
          to label %3408 unwind label %3528

3408:                                             ; preds = %3407
  call void @llvm.lifetime.start.p0(i64 16, ptr %326) #11
  %3409 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %327, ptr noundef nonnull align 8 dereferenceable(16) %299)
          to label %3410 unwind label %3532

3410:                                             ; preds = %3408
  call void @llvm.lifetime.start.p0(i64 1, ptr %329) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %329) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %328, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %329)
          to label %3411 unwind label %3536

3411:                                             ; preds = %3410
  invoke void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA21_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cSA_A2_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSD_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SM_DpRKT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %326, ptr noundef nonnull align 8 dereferenceable(264) %3409, ptr noundef nonnull align 8 dereferenceable(16) %325, ptr noundef %327, ptr noundef @.str.57, ptr noundef %328, ptr noundef nonnull align 1 dereferenceable(21) @.str.128, ptr noundef nonnull align 8 dereferenceable(16) %262, ptr noundef nonnull align 1 dereferenceable(3) @.str.78, ptr noundef nonnull align 8 dereferenceable(16) %321, ptr noundef nonnull align 1 dereferenceable(2) @.str.53)
          to label %3412 unwind label %3540

3412:                                             ; preds = %3411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %329) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %329) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %327) #11
  call void @llvm.lifetime.start.p0(i64 200, ptr %330) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %330)
          to label %3413 unwind label %3545

3413:                                             ; preds = %3412
  call void @llvm.lifetime.start.p0(i64 200, ptr %331) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %331)
          to label %3414 unwind label %3549

3414:                                             ; preds = %3413
  call void @llvm.lifetime.start.p0(i64 200, ptr %332) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %332)
          to label %3415 unwind label %3553

3415:                                             ; preds = %3414
  call void @llvm.lifetime.start.p0(i64 200, ptr %333) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %333)
          to label %3416 unwind label %3557

3416:                                             ; preds = %3415
  call void @llvm.lifetime.start.p0(i64 200, ptr %334) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %334)
          to label %3417 unwind label %3561

3417:                                             ; preds = %3416
  call void @llvm.lifetime.start.p0(i64 8, ptr %335) #11
  %3418 = load ptr, ptr %267, align 8, !tbaa !5
  %3419 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3418)
          to label %3420 unwind label %3565

3420:                                             ; preds = %3417
  store ptr %3419, ptr %335, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %336) #11
  %3421 = load ptr, ptr %335, align 8, !tbaa !5
  %3422 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %3421)
          to label %3423 unwind label %3569

3423:                                             ; preds = %3420
  store ptr %3422, ptr %336, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %337) #11
  %3424 = load ptr, ptr %335, align 8, !tbaa !5
  %3425 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %3424)
          to label %3426 unwind label %3573

3426:                                             ; preds = %3423
  store ptr %3425, ptr %337, align 8, !tbaa !5
  br label %3427

3427:                                             ; preds = %3616, %3426
  %3428 = load ptr, ptr %336, align 8, !tbaa !5
  %3429 = load ptr, ptr %337, align 8, !tbaa !5
  %3430 = icmp ne ptr %3428, %3429
  br i1 %3430, label %3577, label %3431

3431:                                             ; preds = %3427
  store i32 21, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %336) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %335) #11
  br label %3722

3432:                                             ; preds = %3372
  %3433 = landingpad { ptr, i32 }
          cleanup
  %3434 = extractvalue { ptr, i32 } %3433, 0
  store ptr %3434, ptr %11, align 8
  %3435 = extractvalue { ptr, i32 } %3433, 1
  store i32 %3435, ptr %12, align 4
  br label %11126

3436:                                             ; preds = %3373
  %3437 = landingpad { ptr, i32 }
          cleanup
  %3438 = extractvalue { ptr, i32 } %3437, 0
  store ptr %3438, ptr %11, align 8
  %3439 = extractvalue { ptr, i32 } %3437, 1
  store i32 %3439, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %300) #11
  br label %11126

3440:                                             ; preds = %3374
  %3441 = landingpad { ptr, i32 }
          cleanup
  %3442 = extractvalue { ptr, i32 } %3441, 0
  store ptr %3442, ptr %11, align 8
  %3443 = extractvalue { ptr, i32 } %3441, 1
  store i32 %3443, ptr %12, align 4
  br label %11125

3444:                                             ; preds = %3375
  %3445 = landingpad { ptr, i32 }
          cleanup
  %3446 = extractvalue { ptr, i32 } %3445, 0
  store ptr %3446, ptr %11, align 8
  %3447 = extractvalue { ptr, i32 } %3445, 1
  store i32 %3447, ptr %12, align 4
  br label %11124

3448:                                             ; preds = %3376
  %3449 = landingpad { ptr, i32 }
          cleanup
  %3450 = extractvalue { ptr, i32 } %3449, 0
  store ptr %3450, ptr %11, align 8
  %3451 = extractvalue { ptr, i32 } %3449, 1
  store i32 %3451, ptr %12, align 4
  br label %11123

3452:                                             ; preds = %3378
  %3453 = landingpad { ptr, i32 }
          cleanup
  %3454 = extractvalue { ptr, i32 } %3453, 0
  store ptr %3454, ptr %11, align 8
  %3455 = extractvalue { ptr, i32 } %3453, 1
  store i32 %3455, ptr %12, align 4
  br label %3460

3456:                                             ; preds = %3379
  %3457 = landingpad { ptr, i32 }
          cleanup
  %3458 = extractvalue { ptr, i32 } %3457, 0
  store ptr %3458, ptr %11, align 8
  %3459 = extractvalue { ptr, i32 } %3457, 1
  store i32 %3459, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #11
  br label %3460

3460:                                             ; preds = %3456, %3452
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %306) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %306) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %304) #11
  br label %11123

3461:                                             ; preds = %3380
  %3462 = landingpad { ptr, i32 }
          cleanup
  %3463 = extractvalue { ptr, i32 } %3462, 0
  store ptr %3463, ptr %11, align 8
  %3464 = extractvalue { ptr, i32 } %3462, 1
  store i32 %3464, ptr %12, align 4
  br label %3491

3465:                                             ; preds = %3382
  %3466 = landingpad { ptr, i32 }
          cleanup
  %3467 = extractvalue { ptr, i32 } %3466, 0
  store ptr %3467, ptr %11, align 8
  %3468 = extractvalue { ptr, i32 } %3466, 1
  store i32 %3468, ptr %12, align 4
  br label %3490

3469:                                             ; preds = %3383
  %3470 = landingpad { ptr, i32 }
          cleanup
  %3471 = extractvalue { ptr, i32 } %3470, 0
  store ptr %3471, ptr %11, align 8
  %3472 = extractvalue { ptr, i32 } %3470, 1
  store i32 %3472, ptr %12, align 4
  br label %3489

3473:                                             ; preds = %3384
  %3474 = landingpad { ptr, i32 }
          cleanup
  %3475 = extractvalue { ptr, i32 } %3474, 0
  store ptr %3475, ptr %11, align 8
  %3476 = extractvalue { ptr, i32 } %3474, 1
  store i32 %3476, ptr %12, align 4
  br label %3481

3477:                                             ; preds = %3391
  %3478 = landingpad { ptr, i32 }
          cleanup
  %3479 = extractvalue { ptr, i32 } %3478, 0
  store ptr %3479, ptr %11, align 8
  %3480 = extractvalue { ptr, i32 } %3478, 1
  store i32 %3480, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %308) #11
  br label %3481

3481:                                             ; preds = %3477, %3473
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %317) #11
  %3482 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %310, i32 0, i32 0
  %3483 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3482, i64 1
  br label %3484

3484:                                             ; preds = %3484, %3481
  %3485 = phi ptr [ %3483, %3481 ], [ %3486, %3484 ]
  %3486 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3485, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3486) #11
  %3487 = icmp eq ptr %3486, %3482
  br i1 %3487, label %3488, label %3484

3488:                                             ; preds = %3484
  br label %3489

3489:                                             ; preds = %3488, %3469
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #11
  br label %3490

3490:                                             ; preds = %3489, %3465
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %312) #11
  br label %3491

3491:                                             ; preds = %3490, %3461
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %313) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %313) #11
  %3492 = load i1, ptr %316, align 1
  br i1 %3492, label %3493, label %3501

3493:                                             ; preds = %3491
  %3494 = load ptr, ptr %311, align 8
  %3495 = icmp eq ptr %310, %3494
  br i1 %3495, label %3500, label %3496

3496:                                             ; preds = %3496, %3493
  %3497 = phi ptr [ %3494, %3493 ], [ %3498, %3496 ]
  %3498 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3497, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3498) #11
  %3499 = icmp eq ptr %3498, %310
  br i1 %3499, label %3500, label %3496

3500:                                             ; preds = %3496, %3493
  br label %3501

3501:                                             ; preds = %3500, %3491
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %308) #11
  br label %11122

3502:                                             ; preds = %3399
  %3503 = landingpad { ptr, i32 }
          cleanup
  %3504 = extractvalue { ptr, i32 } %3503, 0
  store ptr %3504, ptr %11, align 8
  %3505 = extractvalue { ptr, i32 } %3503, 1
  store i32 %3505, ptr %12, align 4
  br label %11121

3506:                                             ; preds = %3400
  %3507 = landingpad { ptr, i32 }
          cleanup
  %3508 = extractvalue { ptr, i32 } %3507, 0
  store ptr %3508, ptr %11, align 8
  %3509 = extractvalue { ptr, i32 } %3507, 1
  store i32 %3509, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %319) #11
  br label %11121

3510:                                             ; preds = %3401
  %3511 = landingpad { ptr, i32 }
          cleanup
  %3512 = extractvalue { ptr, i32 } %3511, 0
  store ptr %3512, ptr %11, align 8
  %3513 = extractvalue { ptr, i32 } %3511, 1
  store i32 %3513, ptr %12, align 4
  br label %11120

3514:                                             ; preds = %3402
  %3515 = landingpad { ptr, i32 }
          cleanup
  %3516 = extractvalue { ptr, i32 } %3515, 0
  store ptr %3516, ptr %11, align 8
  %3517 = extractvalue { ptr, i32 } %3515, 1
  store i32 %3517, ptr %12, align 4
  br label %3527

3518:                                             ; preds = %3405
  %3519 = landingpad { ptr, i32 }
          cleanup
  %3520 = extractvalue { ptr, i32 } %3519, 0
  store ptr %3520, ptr %11, align 8
  %3521 = extractvalue { ptr, i32 } %3519, 1
  store i32 %3521, ptr %12, align 4
  br label %3526

3522:                                             ; preds = %3406
  %3523 = landingpad { ptr, i32 }
          cleanup
  %3524 = extractvalue { ptr, i32 } %3523, 0
  store ptr %3524, ptr %11, align 8
  %3525 = extractvalue { ptr, i32 } %3523, 1
  store i32 %3525, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #11
  br label %3526

3526:                                             ; preds = %3522, %3518
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %324) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %323) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %322) #11
  br label %3527

3527:                                             ; preds = %3526, %3514
  call void @llvm.lifetime.end.p0(i64 16, ptr %322) #11
  br label %11119

3528:                                             ; preds = %3407
  %3529 = landingpad { ptr, i32 }
          cleanup
  %3530 = extractvalue { ptr, i32 } %3529, 0
  store ptr %3530, ptr %11, align 8
  %3531 = extractvalue { ptr, i32 } %3529, 1
  store i32 %3531, ptr %12, align 4
  br label %11118

3532:                                             ; preds = %3408
  %3533 = landingpad { ptr, i32 }
          cleanup
  %3534 = extractvalue { ptr, i32 } %3533, 0
  store ptr %3534, ptr %11, align 8
  %3535 = extractvalue { ptr, i32 } %3533, 1
  store i32 %3535, ptr %12, align 4
  br label %11117

3536:                                             ; preds = %3410
  %3537 = landingpad { ptr, i32 }
          cleanup
  %3538 = extractvalue { ptr, i32 } %3537, 0
  store ptr %3538, ptr %11, align 8
  %3539 = extractvalue { ptr, i32 } %3537, 1
  store i32 %3539, ptr %12, align 4
  br label %3544

3540:                                             ; preds = %3411
  %3541 = landingpad { ptr, i32 }
          cleanup
  %3542 = extractvalue { ptr, i32 } %3541, 0
  store ptr %3542, ptr %11, align 8
  %3543 = extractvalue { ptr, i32 } %3541, 1
  store i32 %3543, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #11
  br label %3544

3544:                                             ; preds = %3540, %3536
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %329) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %329) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %327) #11
  br label %11117

3545:                                             ; preds = %3412
  %3546 = landingpad { ptr, i32 }
          cleanup
  %3547 = extractvalue { ptr, i32 } %3546, 0
  store ptr %3547, ptr %11, align 8
  %3548 = extractvalue { ptr, i32 } %3546, 1
  store i32 %3548, ptr %12, align 4
  br label %11116

3549:                                             ; preds = %3413
  %3550 = landingpad { ptr, i32 }
          cleanup
  %3551 = extractvalue { ptr, i32 } %3550, 0
  store ptr %3551, ptr %11, align 8
  %3552 = extractvalue { ptr, i32 } %3550, 1
  store i32 %3552, ptr %12, align 4
  br label %11115

3553:                                             ; preds = %3414
  %3554 = landingpad { ptr, i32 }
          cleanup
  %3555 = extractvalue { ptr, i32 } %3554, 0
  store ptr %3555, ptr %11, align 8
  %3556 = extractvalue { ptr, i32 } %3554, 1
  store i32 %3556, ptr %12, align 4
  br label %11114

3557:                                             ; preds = %3415
  %3558 = landingpad { ptr, i32 }
          cleanup
  %3559 = extractvalue { ptr, i32 } %3558, 0
  store ptr %3559, ptr %11, align 8
  %3560 = extractvalue { ptr, i32 } %3558, 1
  store i32 %3560, ptr %12, align 4
  br label %11113

3561:                                             ; preds = %3416
  %3562 = landingpad { ptr, i32 }
          cleanup
  %3563 = extractvalue { ptr, i32 } %3562, 0
  store ptr %3563, ptr %11, align 8
  %3564 = extractvalue { ptr, i32 } %3562, 1
  store i32 %3564, ptr %12, align 4
  br label %11112

3565:                                             ; preds = %3417
  %3566 = landingpad { ptr, i32 }
          cleanup
  %3567 = extractvalue { ptr, i32 } %3566, 0
  store ptr %3567, ptr %11, align 8
  %3568 = extractvalue { ptr, i32 } %3566, 1
  store i32 %3568, ptr %12, align 4
  br label %3721

3569:                                             ; preds = %3420
  %3570 = landingpad { ptr, i32 }
          cleanup
  %3571 = extractvalue { ptr, i32 } %3570, 0
  store ptr %3571, ptr %11, align 8
  %3572 = extractvalue { ptr, i32 } %3570, 1
  store i32 %3572, ptr %12, align 4
  br label %3720

3573:                                             ; preds = %3423
  %3574 = landingpad { ptr, i32 }
          cleanup
  %3575 = extractvalue { ptr, i32 } %3574, 0
  store ptr %3575, ptr %11, align 8
  %3576 = extractvalue { ptr, i32 } %3574, 1
  store i32 %3576, ptr %12, align 4
  br label %3719

3577:                                             ; preds = %3427
  call void @llvm.lifetime.start.p0(i64 48, ptr %338) #11
  %3578 = load ptr, ptr %336, align 8, !tbaa !5
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %338, ptr noundef nonnull align 8 dereferenceable(48) %3578)
          to label %3579 unwind label %3619

3579:                                             ; preds = %3577
  call void @llvm.lifetime.start.p0(i64 32, ptr %339) #11
  %3580 = getelementptr inbounds %"struct.std::pair.109", ptr %338, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(32) %3580)
          to label %3581 unwind label %3623

3581:                                             ; preds = %3579
  call void @llvm.lifetime.start.p0(i64 16, ptr %340) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %342) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %343) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %345) #11
  store ptr %345, ptr %346, align 8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(32) %339)
          to label %3582 unwind label %3627

3582:                                             ; preds = %3581
  %3583 = getelementptr inbounds %"class.std::initializer_list", ptr %344, i32 0, i32 0
  store ptr %345, ptr %3583, align 8, !tbaa !11
  %3584 = getelementptr inbounds %"class.std::initializer_list", ptr %344, i32 0, i32 1
  store i64 1, ptr %3584, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %347) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #11
  %3585 = getelementptr inbounds { ptr, i64 }, ptr %344, i32 0, i32 0
  %3586 = load ptr, ptr %3585, align 8
  %3587 = getelementptr inbounds { ptr, i64 }, ptr %344, i32 0, i32 1
  %3588 = load i64, ptr %3587, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %343, ptr %3586, i64 %3588, ptr noundef nonnull align 1 dereferenceable(1) %347)
          to label %3589 unwind label %3638

3589:                                             ; preds = %3582
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %342, ptr noundef nonnull align 8 dereferenceable(24) %343)
          to label %3590 unwind label %3642

3590:                                             ; preds = %3589
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %341, ptr noundef nonnull align 8 dereferenceable(16) %342)
          to label %3591 unwind label %3646

3591:                                             ; preds = %3590
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %340, i32 noundef 9, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %341)
          to label %3592 unwind label %3650

3592:                                             ; preds = %3591
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %330, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(16) %340)
          to label %3593 unwind label %3654

3593:                                             ; preds = %3592
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %340) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %341) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %342) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %343) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %347) #11
  %3594 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %345, i32 0, i32 0
  %3595 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3594, i64 1
  br label %3596

3596:                                             ; preds = %3596, %3593
  %3597 = phi ptr [ %3595, %3593 ], [ %3598, %3596 ]
  %3598 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3597, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3598) #11
  %3599 = icmp eq ptr %3598, %3594
  br i1 %3599, label %3600, label %3596

3600:                                             ; preds = %3596
  call void @llvm.lifetime.end.p0(i64 32, ptr %345) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %343) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %342) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %340) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %348) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %348)
          to label %3601 unwind label %3670

3601:                                             ; preds = %3600
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %331, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(16) %348)
          to label %3602 unwind label %3674

3602:                                             ; preds = %3601
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %348) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %348) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %349) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %349)
          to label %3603 unwind label %3679

3603:                                             ; preds = %3602
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %332, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(16) %349)
          to label %3604 unwind label %3683

3604:                                             ; preds = %3603
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %349) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %349) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %350) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %350)
          to label %3605 unwind label %3688

3605:                                             ; preds = %3604
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %333, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(16) %350)
          to label %3606 unwind label %3692

3606:                                             ; preds = %3605
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %350) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %350) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %351) #11
  %3607 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %3608 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %333, ptr noundef nonnull align 8 dereferenceable(32) %339)
          to label %3609 unwind label %3697

3609:                                             ; preds = %3606
  %3610 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %330, ptr noundef nonnull align 8 dereferenceable(32) %339)
          to label %3611 unwind label %3697

3611:                                             ; preds = %3609
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %352, ptr noundef nonnull align 8 dereferenceable(16) %3610)
          to label %3612 unwind label %3697

3612:                                             ; preds = %3611
  call void @llvm.lifetime.start.p0(i64 1, ptr %354) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %354) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %353, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %354)
          to label %3613 unwind label %3701

3613:                                             ; preds = %3612
  invoke void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA17_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSC_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SL_DpRKT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %351, ptr noundef nonnull align 8 dereferenceable(264) %3607, ptr noundef nonnull align 8 dereferenceable(16) %3608, ptr noundef %352, ptr noundef @.str.57, ptr noundef %353, ptr noundef nonnull align 1 dereferenceable(17) @.str.125, ptr noundef nonnull align 8 dereferenceable(16) %262, ptr noundef nonnull align 1 dereferenceable(4) @.str.75)
          to label %3614 unwind label %3705

3614:                                             ; preds = %3613
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEE6insertERKS6_RKSC_(ptr noundef nonnull align 8 dereferenceable(200) %334, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(16) %351)
          to label %3615 unwind label %3709

3615:                                             ; preds = %3614
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %354) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %354) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %351) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %338) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %338) #11
  br label %3616

3616:                                             ; preds = %3615
  %3617 = load ptr, ptr %336, align 8, !tbaa !5
  %3618 = getelementptr inbounds %"struct.std::pair.109", ptr %3617, i32 1
  store ptr %3618, ptr %336, align 8, !tbaa !5
  br label %3427

3619:                                             ; preds = %3577
  %3620 = landingpad { ptr, i32 }
          cleanup
  %3621 = extractvalue { ptr, i32 } %3620, 0
  store ptr %3621, ptr %11, align 8
  %3622 = extractvalue { ptr, i32 } %3620, 1
  store i32 %3622, ptr %12, align 4
  br label %3718

3623:                                             ; preds = %3579
  %3624 = landingpad { ptr, i32 }
          cleanup
  %3625 = extractvalue { ptr, i32 } %3624, 0
  store ptr %3625, ptr %11, align 8
  %3626 = extractvalue { ptr, i32 } %3624, 1
  store i32 %3626, ptr %12, align 4
  br label %3717

3627:                                             ; preds = %3581
  %3628 = landingpad { ptr, i32 }
          cleanup
  %3629 = extractvalue { ptr, i32 } %3628, 0
  store ptr %3629, ptr %11, align 8
  %3630 = extractvalue { ptr, i32 } %3628, 1
  store i32 %3630, ptr %12, align 4
  %3631 = load ptr, ptr %346, align 8
  %3632 = icmp eq ptr %345, %3631
  br i1 %3632, label %3637, label %3633

3633:                                             ; preds = %3633, %3627
  %3634 = phi ptr [ %3631, %3627 ], [ %3635, %3633 ]
  %3635 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3634, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3635) #11
  %3636 = icmp eq ptr %3635, %345
  br i1 %3636, label %3637, label %3633

3637:                                             ; preds = %3633, %3627
  br label %3669

3638:                                             ; preds = %3582
  %3639 = landingpad { ptr, i32 }
          cleanup
  %3640 = extractvalue { ptr, i32 } %3639, 0
  store ptr %3640, ptr %11, align 8
  %3641 = extractvalue { ptr, i32 } %3639, 1
  store i32 %3641, ptr %12, align 4
  br label %3661

3642:                                             ; preds = %3589
  %3643 = landingpad { ptr, i32 }
          cleanup
  %3644 = extractvalue { ptr, i32 } %3643, 0
  store ptr %3644, ptr %11, align 8
  %3645 = extractvalue { ptr, i32 } %3643, 1
  store i32 %3645, ptr %12, align 4
  br label %3660

3646:                                             ; preds = %3590
  %3647 = landingpad { ptr, i32 }
          cleanup
  %3648 = extractvalue { ptr, i32 } %3647, 0
  store ptr %3648, ptr %11, align 8
  %3649 = extractvalue { ptr, i32 } %3647, 1
  store i32 %3649, ptr %12, align 4
  br label %3659

3650:                                             ; preds = %3591
  %3651 = landingpad { ptr, i32 }
          cleanup
  %3652 = extractvalue { ptr, i32 } %3651, 0
  store ptr %3652, ptr %11, align 8
  %3653 = extractvalue { ptr, i32 } %3651, 1
  store i32 %3653, ptr %12, align 4
  br label %3658

3654:                                             ; preds = %3592
  %3655 = landingpad { ptr, i32 }
          cleanup
  %3656 = extractvalue { ptr, i32 } %3655, 0
  store ptr %3656, ptr %11, align 8
  %3657 = extractvalue { ptr, i32 } %3655, 1
  store i32 %3657, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %340) #11
  br label %3658

3658:                                             ; preds = %3654, %3650
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %341) #11
  br label %3659

3659:                                             ; preds = %3658, %3646
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %342) #11
  br label %3660

3660:                                             ; preds = %3659, %3642
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %343) #11
  br label %3661

3661:                                             ; preds = %3660, %3638
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %347) #11
  %3662 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %345, i32 0, i32 0
  %3663 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3662, i64 1
  br label %3664

3664:                                             ; preds = %3664, %3661
  %3665 = phi ptr [ %3663, %3661 ], [ %3666, %3664 ]
  %3666 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3665, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3666) #11
  %3667 = icmp eq ptr %3666, %3662
  br i1 %3667, label %3668, label %3664

3668:                                             ; preds = %3664
  br label %3669

3669:                                             ; preds = %3668, %3637
  call void @llvm.lifetime.end.p0(i64 32, ptr %345) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %343) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %342) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %340) #11
  br label %3716

3670:                                             ; preds = %3600
  %3671 = landingpad { ptr, i32 }
          cleanup
  %3672 = extractvalue { ptr, i32 } %3671, 0
  store ptr %3672, ptr %11, align 8
  %3673 = extractvalue { ptr, i32 } %3671, 1
  store i32 %3673, ptr %12, align 4
  br label %3678

3674:                                             ; preds = %3601
  %3675 = landingpad { ptr, i32 }
          cleanup
  %3676 = extractvalue { ptr, i32 } %3675, 0
  store ptr %3676, ptr %11, align 8
  %3677 = extractvalue { ptr, i32 } %3675, 1
  store i32 %3677, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %348) #11
  br label %3678

3678:                                             ; preds = %3674, %3670
  call void @llvm.lifetime.end.p0(i64 16, ptr %348) #11
  br label %3716

3679:                                             ; preds = %3602
  %3680 = landingpad { ptr, i32 }
          cleanup
  %3681 = extractvalue { ptr, i32 } %3680, 0
  store ptr %3681, ptr %11, align 8
  %3682 = extractvalue { ptr, i32 } %3680, 1
  store i32 %3682, ptr %12, align 4
  br label %3687

3683:                                             ; preds = %3603
  %3684 = landingpad { ptr, i32 }
          cleanup
  %3685 = extractvalue { ptr, i32 } %3684, 0
  store ptr %3685, ptr %11, align 8
  %3686 = extractvalue { ptr, i32 } %3684, 1
  store i32 %3686, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %349) #11
  br label %3687

3687:                                             ; preds = %3683, %3679
  call void @llvm.lifetime.end.p0(i64 16, ptr %349) #11
  br label %3716

3688:                                             ; preds = %3604
  %3689 = landingpad { ptr, i32 }
          cleanup
  %3690 = extractvalue { ptr, i32 } %3689, 0
  store ptr %3690, ptr %11, align 8
  %3691 = extractvalue { ptr, i32 } %3689, 1
  store i32 %3691, ptr %12, align 4
  br label %3696

3692:                                             ; preds = %3605
  %3693 = landingpad { ptr, i32 }
          cleanup
  %3694 = extractvalue { ptr, i32 } %3693, 0
  store ptr %3694, ptr %11, align 8
  %3695 = extractvalue { ptr, i32 } %3693, 1
  store i32 %3695, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %350) #11
  br label %3696

3696:                                             ; preds = %3692, %3688
  call void @llvm.lifetime.end.p0(i64 16, ptr %350) #11
  br label %3716

3697:                                             ; preds = %3611, %3609, %3606
  %3698 = landingpad { ptr, i32 }
          cleanup
  %3699 = extractvalue { ptr, i32 } %3698, 0
  store ptr %3699, ptr %11, align 8
  %3700 = extractvalue { ptr, i32 } %3698, 1
  store i32 %3700, ptr %12, align 4
  br label %3715

3701:                                             ; preds = %3612
  %3702 = landingpad { ptr, i32 }
          cleanup
  %3703 = extractvalue { ptr, i32 } %3702, 0
  store ptr %3703, ptr %11, align 8
  %3704 = extractvalue { ptr, i32 } %3702, 1
  store i32 %3704, ptr %12, align 4
  br label %3714

3705:                                             ; preds = %3613
  %3706 = landingpad { ptr, i32 }
          cleanup
  %3707 = extractvalue { ptr, i32 } %3706, 0
  store ptr %3707, ptr %11, align 8
  %3708 = extractvalue { ptr, i32 } %3706, 1
  store i32 %3708, ptr %12, align 4
  br label %3713

3709:                                             ; preds = %3614
  %3710 = landingpad { ptr, i32 }
          cleanup
  %3711 = extractvalue { ptr, i32 } %3710, 0
  store ptr %3711, ptr %11, align 8
  %3712 = extractvalue { ptr, i32 } %3710, 1
  store i32 %3712, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %351) #11
  br label %3713

3713:                                             ; preds = %3709, %3705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #11
  br label %3714

3714:                                             ; preds = %3713, %3701
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %354) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %354) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #11
  br label %3715

3715:                                             ; preds = %3714, %3697
  call void @llvm.lifetime.end.p0(i64 16, ptr %351) #11
  br label %3716

3716:                                             ; preds = %3715, %3696, %3687, %3678, %3669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #11
  br label %3717

3717:                                             ; preds = %3716, %3623
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %338) #11
  br label %3718

3718:                                             ; preds = %3717, %3619
  call void @llvm.lifetime.end.p0(i64 48, ptr %338) #11
  br label %3719

3719:                                             ; preds = %3718, %3573
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #11
  br label %3720

3720:                                             ; preds = %3719, %3569
  call void @llvm.lifetime.end.p0(i64 8, ptr %336) #11
  br label %3721

3721:                                             ; preds = %3720, %3565
  call void @llvm.lifetime.end.p0(i64 8, ptr %335) #11
  br label %11111

3722:                                             ; preds = %3431
  call void @llvm.lifetime.start.p0(i64 200, ptr %355) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %355)
          to label %3723 unwind label %3754

3723:                                             ; preds = %3722
  call void @llvm.lifetime.start.p0(i64 200, ptr %356) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %356)
          to label %3724 unwind label %3758

3724:                                             ; preds = %3723
  call void @llvm.lifetime.start.p0(i64 200, ptr %357) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %357)
          to label %3725 unwind label %3762

3725:                                             ; preds = %3724
  %3726 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %3727 = trunc i8 %3726 to i1
  br i1 %3727, label %3728, label %3886

3728:                                             ; preds = %3725
  call void @llvm.lifetime.start.p0(i64 8, ptr %358) #11
  %3729 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %3730 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3729)
          to label %3731 unwind label %3766

3731:                                             ; preds = %3728
  %3732 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3730, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %3733 unwind label %3766

3733:                                             ; preds = %3731
  %3734 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3732)
          to label %3735 unwind label %3766

3735:                                             ; preds = %3733
  store ptr %3734, ptr %358, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %359) #11
  %3736 = load ptr, ptr %358, align 8, !tbaa !5
  %3737 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3736)
          to label %3738 unwind label %3770

3738:                                             ; preds = %3735
  %3739 = getelementptr inbounds { ptr, i64 }, ptr %359, i32 0, i32 0
  %3740 = extractvalue { ptr, i64 } %3737, 0
  store ptr %3740, ptr %3739, align 8
  %3741 = getelementptr inbounds { ptr, i64 }, ptr %359, i32 0, i32 1
  %3742 = extractvalue { ptr, i64 } %3737, 1
  store i64 %3742, ptr %3741, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %360) #11
  %3743 = load ptr, ptr %358, align 8, !tbaa !5
  %3744 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3743)
          to label %3745 unwind label %3774

3745:                                             ; preds = %3738
  %3746 = getelementptr inbounds { ptr, i64 }, ptr %360, i32 0, i32 0
  %3747 = extractvalue { ptr, i64 } %3744, 0
  store ptr %3747, ptr %3746, align 8
  %3748 = getelementptr inbounds { ptr, i64 }, ptr %360, i32 0, i32 1
  %3749 = extractvalue { ptr, i64 } %3744, 1
  store i64 %3749, ptr %3748, align 8
  br label %3750

3750:                                             ; preds = %3814, %3745
  %3751 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %359, ptr noundef nonnull align 8 dereferenceable(16) %360)
          to label %3752 unwind label %3774

3752:                                             ; preds = %3750
  br i1 %3751, label %3778, label %3753

3753:                                             ; preds = %3752
  store i32 23, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %360) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %359) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #11
  br label %3885

3754:                                             ; preds = %3722
  %3755 = landingpad { ptr, i32 }
          cleanup
  %3756 = extractvalue { ptr, i32 } %3755, 0
  store ptr %3756, ptr %11, align 8
  %3757 = extractvalue { ptr, i32 } %3755, 1
  store i32 %3757, ptr %12, align 4
  br label %11110

3758:                                             ; preds = %3723
  %3759 = landingpad { ptr, i32 }
          cleanup
  %3760 = extractvalue { ptr, i32 } %3759, 0
  store ptr %3760, ptr %11, align 8
  %3761 = extractvalue { ptr, i32 } %3759, 1
  store i32 %3761, ptr %12, align 4
  br label %11109

3762:                                             ; preds = %3724
  %3763 = landingpad { ptr, i32 }
          cleanup
  %3764 = extractvalue { ptr, i32 } %3763, 0
  store ptr %3764, ptr %11, align 8
  %3765 = extractvalue { ptr, i32 } %3763, 1
  store i32 %3765, ptr %12, align 4
  br label %11108

3766:                                             ; preds = %3733, %3731, %3728
  %3767 = landingpad { ptr, i32 }
          cleanup
  %3768 = extractvalue { ptr, i32 } %3767, 0
  store ptr %3768, ptr %11, align 8
  %3769 = extractvalue { ptr, i32 } %3767, 1
  store i32 %3769, ptr %12, align 4
  br label %3884

3770:                                             ; preds = %3735
  %3771 = landingpad { ptr, i32 }
          cleanup
  %3772 = extractvalue { ptr, i32 } %3771, 0
  store ptr %3772, ptr %11, align 8
  %3773 = extractvalue { ptr, i32 } %3771, 1
  store i32 %3773, ptr %12, align 4
  br label %3883

3774:                                             ; preds = %3812, %3750, %3738
  %3775 = landingpad { ptr, i32 }
          cleanup
  %3776 = extractvalue { ptr, i32 } %3775, 0
  store ptr %3776, ptr %11, align 8
  %3777 = extractvalue { ptr, i32 } %3775, 1
  store i32 %3777, ptr %12, align 4
  br label %3882

3778:                                             ; preds = %3752
  call void @llvm.lifetime.start.p0(i64 8, ptr %361) #11
  %3779 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %359)
          to label %3780 unwind label %3815

3780:                                             ; preds = %3778
  store ptr %3779, ptr %361, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %362) #11
  %3781 = load ptr, ptr %361, align 8, !tbaa !5
  %3782 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3781) #11
  store ptr %3782, ptr %362, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #11
  %3783 = load ptr, ptr %361, align 8, !tbaa !5
  %3784 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3783) #11
  store ptr %3784, ptr %363, align 8, !tbaa !5
  %3785 = load ptr, ptr %362, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %364) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %366) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %367) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %369) #11
  store ptr %369, ptr %370, align 8
  %3786 = load ptr, ptr %362, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %369, ptr noundef nonnull align 8 dereferenceable(32) %3786)
          to label %3787 unwind label %3819

3787:                                             ; preds = %3780
  %3788 = getelementptr inbounds %"class.std::initializer_list", ptr %368, i32 0, i32 0
  store ptr %369, ptr %3788, align 8, !tbaa !11
  %3789 = getelementptr inbounds %"class.std::initializer_list", ptr %368, i32 0, i32 1
  store i64 1, ptr %3789, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %371) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #11
  %3790 = getelementptr inbounds { ptr, i64 }, ptr %368, i32 0, i32 0
  %3791 = load ptr, ptr %3790, align 8
  %3792 = getelementptr inbounds { ptr, i64 }, ptr %368, i32 0, i32 1
  %3793 = load i64, ptr %3792, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %367, ptr %3791, i64 %3793, ptr noundef nonnull align 1 dereferenceable(1) %371)
          to label %3794 unwind label %3830

3794:                                             ; preds = %3787
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %366, ptr noundef nonnull align 8 dereferenceable(24) %367)
          to label %3795 unwind label %3834

3795:                                             ; preds = %3794
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %365, ptr noundef nonnull align 8 dereferenceable(16) %366)
          to label %3796 unwind label %3838

3796:                                             ; preds = %3795
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %364, i32 noundef 11, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %365)
          to label %3797 unwind label %3842

3797:                                             ; preds = %3796
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %355, ptr noundef nonnull align 8 dereferenceable(32) %3785, ptr noundef nonnull align 8 dereferenceable(16) %364)
          to label %3798 unwind label %3846

3798:                                             ; preds = %3797
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %364) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %365) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %366) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %367) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #11
  %3799 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %369, i32 0, i32 0
  %3800 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3799, i64 1
  br label %3801

3801:                                             ; preds = %3801, %3798
  %3802 = phi ptr [ %3800, %3798 ], [ %3803, %3801 ]
  %3803 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3802, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3803) #11
  %3804 = icmp eq ptr %3803, %3799
  br i1 %3804, label %3805, label %3801

3805:                                             ; preds = %3801
  call void @llvm.lifetime.end.p0(i64 32, ptr %369) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %367) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %366) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %364) #11
  %3806 = load ptr, ptr %362, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %372) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %372)
          to label %3807 unwind label %3862

3807:                                             ; preds = %3805
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %356, ptr noundef nonnull align 8 dereferenceable(32) %3806, ptr noundef nonnull align 8 dereferenceable(16) %372)
          to label %3808 unwind label %3866

3808:                                             ; preds = %3807
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %372) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %372) #11
  %3809 = load ptr, ptr %362, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %373) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %373)
          to label %3810 unwind label %3871

3810:                                             ; preds = %3808
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %357, ptr noundef nonnull align 8 dereferenceable(32) %3809, ptr noundef nonnull align 8 dereferenceable(16) %373)
          to label %3811 unwind label %3875

3811:                                             ; preds = %3810
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %373) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %373) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %361) #11
  br label %3812

3812:                                             ; preds = %3811
  %3813 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %359)
          to label %3814 unwind label %3774

3814:                                             ; preds = %3812
  br label %3750

3815:                                             ; preds = %3778
  %3816 = landingpad { ptr, i32 }
          cleanup
  %3817 = extractvalue { ptr, i32 } %3816, 0
  store ptr %3817, ptr %11, align 8
  %3818 = extractvalue { ptr, i32 } %3816, 1
  store i32 %3818, ptr %12, align 4
  br label %3881

3819:                                             ; preds = %3780
  %3820 = landingpad { ptr, i32 }
          cleanup
  %3821 = extractvalue { ptr, i32 } %3820, 0
  store ptr %3821, ptr %11, align 8
  %3822 = extractvalue { ptr, i32 } %3820, 1
  store i32 %3822, ptr %12, align 4
  %3823 = load ptr, ptr %370, align 8
  %3824 = icmp eq ptr %369, %3823
  br i1 %3824, label %3829, label %3825

3825:                                             ; preds = %3825, %3819
  %3826 = phi ptr [ %3823, %3819 ], [ %3827, %3825 ]
  %3827 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3826, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3827) #11
  %3828 = icmp eq ptr %3827, %369
  br i1 %3828, label %3829, label %3825

3829:                                             ; preds = %3825, %3819
  br label %3861

3830:                                             ; preds = %3787
  %3831 = landingpad { ptr, i32 }
          cleanup
  %3832 = extractvalue { ptr, i32 } %3831, 0
  store ptr %3832, ptr %11, align 8
  %3833 = extractvalue { ptr, i32 } %3831, 1
  store i32 %3833, ptr %12, align 4
  br label %3853

3834:                                             ; preds = %3794
  %3835 = landingpad { ptr, i32 }
          cleanup
  %3836 = extractvalue { ptr, i32 } %3835, 0
  store ptr %3836, ptr %11, align 8
  %3837 = extractvalue { ptr, i32 } %3835, 1
  store i32 %3837, ptr %12, align 4
  br label %3852

3838:                                             ; preds = %3795
  %3839 = landingpad { ptr, i32 }
          cleanup
  %3840 = extractvalue { ptr, i32 } %3839, 0
  store ptr %3840, ptr %11, align 8
  %3841 = extractvalue { ptr, i32 } %3839, 1
  store i32 %3841, ptr %12, align 4
  br label %3851

3842:                                             ; preds = %3796
  %3843 = landingpad { ptr, i32 }
          cleanup
  %3844 = extractvalue { ptr, i32 } %3843, 0
  store ptr %3844, ptr %11, align 8
  %3845 = extractvalue { ptr, i32 } %3843, 1
  store i32 %3845, ptr %12, align 4
  br label %3850

3846:                                             ; preds = %3797
  %3847 = landingpad { ptr, i32 }
          cleanup
  %3848 = extractvalue { ptr, i32 } %3847, 0
  store ptr %3848, ptr %11, align 8
  %3849 = extractvalue { ptr, i32 } %3847, 1
  store i32 %3849, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %364) #11
  br label %3850

3850:                                             ; preds = %3846, %3842
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %365) #11
  br label %3851

3851:                                             ; preds = %3850, %3838
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %366) #11
  br label %3852

3852:                                             ; preds = %3851, %3834
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %367) #11
  br label %3853

3853:                                             ; preds = %3852, %3830
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #11
  %3854 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %369, i32 0, i32 0
  %3855 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3854, i64 1
  br label %3856

3856:                                             ; preds = %3856, %3853
  %3857 = phi ptr [ %3855, %3853 ], [ %3858, %3856 ]
  %3858 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3857, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3858) #11
  %3859 = icmp eq ptr %3858, %3854
  br i1 %3859, label %3860, label %3856

3860:                                             ; preds = %3856
  br label %3861

3861:                                             ; preds = %3860, %3829
  call void @llvm.lifetime.end.p0(i64 32, ptr %369) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %367) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %366) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %364) #11
  br label %3880

3862:                                             ; preds = %3805
  %3863 = landingpad { ptr, i32 }
          cleanup
  %3864 = extractvalue { ptr, i32 } %3863, 0
  store ptr %3864, ptr %11, align 8
  %3865 = extractvalue { ptr, i32 } %3863, 1
  store i32 %3865, ptr %12, align 4
  br label %3870

3866:                                             ; preds = %3807
  %3867 = landingpad { ptr, i32 }
          cleanup
  %3868 = extractvalue { ptr, i32 } %3867, 0
  store ptr %3868, ptr %11, align 8
  %3869 = extractvalue { ptr, i32 } %3867, 1
  store i32 %3869, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %372) #11
  br label %3870

3870:                                             ; preds = %3866, %3862
  call void @llvm.lifetime.end.p0(i64 16, ptr %372) #11
  br label %3880

3871:                                             ; preds = %3808
  %3872 = landingpad { ptr, i32 }
          cleanup
  %3873 = extractvalue { ptr, i32 } %3872, 0
  store ptr %3873, ptr %11, align 8
  %3874 = extractvalue { ptr, i32 } %3872, 1
  store i32 %3874, ptr %12, align 4
  br label %3879

3875:                                             ; preds = %3810
  %3876 = landingpad { ptr, i32 }
          cleanup
  %3877 = extractvalue { ptr, i32 } %3876, 0
  store ptr %3877, ptr %11, align 8
  %3878 = extractvalue { ptr, i32 } %3876, 1
  store i32 %3878, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %373) #11
  br label %3879

3879:                                             ; preds = %3875, %3871
  call void @llvm.lifetime.end.p0(i64 16, ptr %373) #11
  br label %3880

3880:                                             ; preds = %3879, %3870, %3861
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #11
  br label %3881

3881:                                             ; preds = %3880, %3815
  call void @llvm.lifetime.end.p0(i64 8, ptr %361) #11
  br label %3882

3882:                                             ; preds = %3881, %3774
  call void @llvm.lifetime.end.p0(i64 16, ptr %360) #11
  br label %3883

3883:                                             ; preds = %3882, %3770
  call void @llvm.lifetime.end.p0(i64 16, ptr %359) #11
  br label %3884

3884:                                             ; preds = %3883, %3766
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #11
  br label %11107

3885:                                             ; preds = %3753
  br label %3886

3886:                                             ; preds = %3885, %3725
  call void @llvm.lifetime.start.p0(i64 200, ptr %374) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %374)
          to label %3887 unwind label %3918

3887:                                             ; preds = %3886
  call void @llvm.lifetime.start.p0(i64 200, ptr %375) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %375)
          to label %3888 unwind label %3922

3888:                                             ; preds = %3887
  call void @llvm.lifetime.start.p0(i64 200, ptr %376) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %376)
          to label %3889 unwind label %3926

3889:                                             ; preds = %3888
  %3890 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %3891 = trunc i8 %3890 to i1
  br i1 %3891, label %3892, label %4050

3892:                                             ; preds = %3889
  call void @llvm.lifetime.start.p0(i64 8, ptr %377) #11
  %3893 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %3894 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3893)
          to label %3895 unwind label %3930

3895:                                             ; preds = %3892
  %3896 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3894, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %3897 unwind label %3930

3897:                                             ; preds = %3895
  %3898 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3896)
          to label %3899 unwind label %3930

3899:                                             ; preds = %3897
  store ptr %3898, ptr %377, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %378) #11
  %3900 = load ptr, ptr %377, align 8, !tbaa !5
  %3901 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3900)
          to label %3902 unwind label %3934

3902:                                             ; preds = %3899
  %3903 = getelementptr inbounds { ptr, i64 }, ptr %378, i32 0, i32 0
  %3904 = extractvalue { ptr, i64 } %3901, 0
  store ptr %3904, ptr %3903, align 8
  %3905 = getelementptr inbounds { ptr, i64 }, ptr %378, i32 0, i32 1
  %3906 = extractvalue { ptr, i64 } %3901, 1
  store i64 %3906, ptr %3905, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %379) #11
  %3907 = load ptr, ptr %377, align 8, !tbaa !5
  %3908 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3907)
          to label %3909 unwind label %3938

3909:                                             ; preds = %3902
  %3910 = getelementptr inbounds { ptr, i64 }, ptr %379, i32 0, i32 0
  %3911 = extractvalue { ptr, i64 } %3908, 0
  store ptr %3911, ptr %3910, align 8
  %3912 = getelementptr inbounds { ptr, i64 }, ptr %379, i32 0, i32 1
  %3913 = extractvalue { ptr, i64 } %3908, 1
  store i64 %3913, ptr %3912, align 8
  br label %3914

3914:                                             ; preds = %3978, %3909
  %3915 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %378, ptr noundef nonnull align 8 dereferenceable(16) %379)
          to label %3916 unwind label %3938

3916:                                             ; preds = %3914
  br i1 %3915, label %3942, label %3917

3917:                                             ; preds = %3916
  store i32 25, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %379) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %378) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #11
  br label %4049

3918:                                             ; preds = %3886
  %3919 = landingpad { ptr, i32 }
          cleanup
  %3920 = extractvalue { ptr, i32 } %3919, 0
  store ptr %3920, ptr %11, align 8
  %3921 = extractvalue { ptr, i32 } %3919, 1
  store i32 %3921, ptr %12, align 4
  br label %11106

3922:                                             ; preds = %3887
  %3923 = landingpad { ptr, i32 }
          cleanup
  %3924 = extractvalue { ptr, i32 } %3923, 0
  store ptr %3924, ptr %11, align 8
  %3925 = extractvalue { ptr, i32 } %3923, 1
  store i32 %3925, ptr %12, align 4
  br label %11105

3926:                                             ; preds = %3888
  %3927 = landingpad { ptr, i32 }
          cleanup
  %3928 = extractvalue { ptr, i32 } %3927, 0
  store ptr %3928, ptr %11, align 8
  %3929 = extractvalue { ptr, i32 } %3927, 1
  store i32 %3929, ptr %12, align 4
  br label %11104

3930:                                             ; preds = %3897, %3895, %3892
  %3931 = landingpad { ptr, i32 }
          cleanup
  %3932 = extractvalue { ptr, i32 } %3931, 0
  store ptr %3932, ptr %11, align 8
  %3933 = extractvalue { ptr, i32 } %3931, 1
  store i32 %3933, ptr %12, align 4
  br label %4048

3934:                                             ; preds = %3899
  %3935 = landingpad { ptr, i32 }
          cleanup
  %3936 = extractvalue { ptr, i32 } %3935, 0
  store ptr %3936, ptr %11, align 8
  %3937 = extractvalue { ptr, i32 } %3935, 1
  store i32 %3937, ptr %12, align 4
  br label %4047

3938:                                             ; preds = %3976, %3914, %3902
  %3939 = landingpad { ptr, i32 }
          cleanup
  %3940 = extractvalue { ptr, i32 } %3939, 0
  store ptr %3940, ptr %11, align 8
  %3941 = extractvalue { ptr, i32 } %3939, 1
  store i32 %3941, ptr %12, align 4
  br label %4046

3942:                                             ; preds = %3916
  call void @llvm.lifetime.start.p0(i64 8, ptr %380) #11
  %3943 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %378)
          to label %3944 unwind label %3979

3944:                                             ; preds = %3942
  store ptr %3943, ptr %380, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %381) #11
  %3945 = load ptr, ptr %380, align 8, !tbaa !5
  %3946 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3945) #11
  store ptr %3946, ptr %381, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %382) #11
  %3947 = load ptr, ptr %380, align 8, !tbaa !5
  %3948 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3947) #11
  store ptr %3948, ptr %382, align 8, !tbaa !5
  %3949 = load ptr, ptr %381, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %383) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %385) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %386) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %388) #11
  store ptr %388, ptr %389, align 8
  %3950 = load ptr, ptr %381, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull align 8 dereferenceable(32) %3950)
          to label %3951 unwind label %3983

3951:                                             ; preds = %3944
  %3952 = getelementptr inbounds %"class.std::initializer_list", ptr %387, i32 0, i32 0
  store ptr %388, ptr %3952, align 8, !tbaa !11
  %3953 = getelementptr inbounds %"class.std::initializer_list", ptr %387, i32 0, i32 1
  store i64 1, ptr %3953, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %390) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #11
  %3954 = getelementptr inbounds { ptr, i64 }, ptr %387, i32 0, i32 0
  %3955 = load ptr, ptr %3954, align 8
  %3956 = getelementptr inbounds { ptr, i64 }, ptr %387, i32 0, i32 1
  %3957 = load i64, ptr %3956, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %386, ptr %3955, i64 %3957, ptr noundef nonnull align 1 dereferenceable(1) %390)
          to label %3958 unwind label %3994

3958:                                             ; preds = %3951
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %385, ptr noundef nonnull align 8 dereferenceable(24) %386)
          to label %3959 unwind label %3998

3959:                                             ; preds = %3958
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %384, ptr noundef nonnull align 8 dereferenceable(16) %385)
          to label %3960 unwind label %4002

3960:                                             ; preds = %3959
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %383, i32 noundef 13, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %384)
          to label %3961 unwind label %4006

3961:                                             ; preds = %3960
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %374, ptr noundef nonnull align 8 dereferenceable(32) %3949, ptr noundef nonnull align 8 dereferenceable(16) %383)
          to label %3962 unwind label %4010

3962:                                             ; preds = %3961
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %383) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %384) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %385) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %386) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %390) #11
  %3963 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %388, i32 0, i32 0
  %3964 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3963, i64 1
  br label %3965

3965:                                             ; preds = %3965, %3962
  %3966 = phi ptr [ %3964, %3962 ], [ %3967, %3965 ]
  %3967 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3966, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3967) #11
  %3968 = icmp eq ptr %3967, %3963
  br i1 %3968, label %3969, label %3965

3969:                                             ; preds = %3965
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %386) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %385) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %383) #11
  %3970 = load ptr, ptr %381, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %391) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %391)
          to label %3971 unwind label %4026

3971:                                             ; preds = %3969
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %375, ptr noundef nonnull align 8 dereferenceable(32) %3970, ptr noundef nonnull align 8 dereferenceable(16) %391)
          to label %3972 unwind label %4030

3972:                                             ; preds = %3971
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %391) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %391) #11
  %3973 = load ptr, ptr %381, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %392) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %392)
          to label %3974 unwind label %4035

3974:                                             ; preds = %3972
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %376, ptr noundef nonnull align 8 dereferenceable(32) %3973, ptr noundef nonnull align 8 dereferenceable(16) %392)
          to label %3975 unwind label %4039

3975:                                             ; preds = %3974
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %392) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %392) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %382) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %381) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %380) #11
  br label %3976

3976:                                             ; preds = %3975
  %3977 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %378)
          to label %3978 unwind label %3938

3978:                                             ; preds = %3976
  br label %3914

3979:                                             ; preds = %3942
  %3980 = landingpad { ptr, i32 }
          cleanup
  %3981 = extractvalue { ptr, i32 } %3980, 0
  store ptr %3981, ptr %11, align 8
  %3982 = extractvalue { ptr, i32 } %3980, 1
  store i32 %3982, ptr %12, align 4
  br label %4045

3983:                                             ; preds = %3944
  %3984 = landingpad { ptr, i32 }
          cleanup
  %3985 = extractvalue { ptr, i32 } %3984, 0
  store ptr %3985, ptr %11, align 8
  %3986 = extractvalue { ptr, i32 } %3984, 1
  store i32 %3986, ptr %12, align 4
  %3987 = load ptr, ptr %389, align 8
  %3988 = icmp eq ptr %388, %3987
  br i1 %3988, label %3993, label %3989

3989:                                             ; preds = %3989, %3983
  %3990 = phi ptr [ %3987, %3983 ], [ %3991, %3989 ]
  %3991 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %3990, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3991) #11
  %3992 = icmp eq ptr %3991, %388
  br i1 %3992, label %3993, label %3989

3993:                                             ; preds = %3989, %3983
  br label %4025

3994:                                             ; preds = %3951
  %3995 = landingpad { ptr, i32 }
          cleanup
  %3996 = extractvalue { ptr, i32 } %3995, 0
  store ptr %3996, ptr %11, align 8
  %3997 = extractvalue { ptr, i32 } %3995, 1
  store i32 %3997, ptr %12, align 4
  br label %4017

3998:                                             ; preds = %3958
  %3999 = landingpad { ptr, i32 }
          cleanup
  %4000 = extractvalue { ptr, i32 } %3999, 0
  store ptr %4000, ptr %11, align 8
  %4001 = extractvalue { ptr, i32 } %3999, 1
  store i32 %4001, ptr %12, align 4
  br label %4016

4002:                                             ; preds = %3959
  %4003 = landingpad { ptr, i32 }
          cleanup
  %4004 = extractvalue { ptr, i32 } %4003, 0
  store ptr %4004, ptr %11, align 8
  %4005 = extractvalue { ptr, i32 } %4003, 1
  store i32 %4005, ptr %12, align 4
  br label %4015

4006:                                             ; preds = %3960
  %4007 = landingpad { ptr, i32 }
          cleanup
  %4008 = extractvalue { ptr, i32 } %4007, 0
  store ptr %4008, ptr %11, align 8
  %4009 = extractvalue { ptr, i32 } %4007, 1
  store i32 %4009, ptr %12, align 4
  br label %4014

4010:                                             ; preds = %3961
  %4011 = landingpad { ptr, i32 }
          cleanup
  %4012 = extractvalue { ptr, i32 } %4011, 0
  store ptr %4012, ptr %11, align 8
  %4013 = extractvalue { ptr, i32 } %4011, 1
  store i32 %4013, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %383) #11
  br label %4014

4014:                                             ; preds = %4010, %4006
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %384) #11
  br label %4015

4015:                                             ; preds = %4014, %4002
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %385) #11
  br label %4016

4016:                                             ; preds = %4015, %3998
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %386) #11
  br label %4017

4017:                                             ; preds = %4016, %3994
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %390) #11
  %4018 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %388, i32 0, i32 0
  %4019 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4018, i64 1
  br label %4020

4020:                                             ; preds = %4020, %4017
  %4021 = phi ptr [ %4019, %4017 ], [ %4022, %4020 ]
  %4022 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4021, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4022) #11
  %4023 = icmp eq ptr %4022, %4018
  br i1 %4023, label %4024, label %4020

4024:                                             ; preds = %4020
  br label %4025

4025:                                             ; preds = %4024, %3993
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %386) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %385) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %383) #11
  br label %4044

4026:                                             ; preds = %3969
  %4027 = landingpad { ptr, i32 }
          cleanup
  %4028 = extractvalue { ptr, i32 } %4027, 0
  store ptr %4028, ptr %11, align 8
  %4029 = extractvalue { ptr, i32 } %4027, 1
  store i32 %4029, ptr %12, align 4
  br label %4034

4030:                                             ; preds = %3971
  %4031 = landingpad { ptr, i32 }
          cleanup
  %4032 = extractvalue { ptr, i32 } %4031, 0
  store ptr %4032, ptr %11, align 8
  %4033 = extractvalue { ptr, i32 } %4031, 1
  store i32 %4033, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %391) #11
  br label %4034

4034:                                             ; preds = %4030, %4026
  call void @llvm.lifetime.end.p0(i64 16, ptr %391) #11
  br label %4044

4035:                                             ; preds = %3972
  %4036 = landingpad { ptr, i32 }
          cleanup
  %4037 = extractvalue { ptr, i32 } %4036, 0
  store ptr %4037, ptr %11, align 8
  %4038 = extractvalue { ptr, i32 } %4036, 1
  store i32 %4038, ptr %12, align 4
  br label %4043

4039:                                             ; preds = %3974
  %4040 = landingpad { ptr, i32 }
          cleanup
  %4041 = extractvalue { ptr, i32 } %4040, 0
  store ptr %4041, ptr %11, align 8
  %4042 = extractvalue { ptr, i32 } %4040, 1
  store i32 %4042, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %392) #11
  br label %4043

4043:                                             ; preds = %4039, %4035
  call void @llvm.lifetime.end.p0(i64 16, ptr %392) #11
  br label %4044

4044:                                             ; preds = %4043, %4034, %4025
  call void @llvm.lifetime.end.p0(i64 8, ptr %382) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %381) #11
  br label %4045

4045:                                             ; preds = %4044, %3979
  call void @llvm.lifetime.end.p0(i64 8, ptr %380) #11
  br label %4046

4046:                                             ; preds = %4045, %3938
  call void @llvm.lifetime.end.p0(i64 16, ptr %379) #11
  br label %4047

4047:                                             ; preds = %4046, %3934
  call void @llvm.lifetime.end.p0(i64 16, ptr %378) #11
  br label %4048

4048:                                             ; preds = %4047, %3930
  call void @llvm.lifetime.end.p0(i64 8, ptr %377) #11
  br label %11103

4049:                                             ; preds = %3917
  br label %4050

4050:                                             ; preds = %4049, %3889
  call void @llvm.lifetime.start.p0(i64 200, ptr %393) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %393)
          to label %4051 unwind label %4082

4051:                                             ; preds = %4050
  call void @llvm.lifetime.start.p0(i64 200, ptr %394) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %394)
          to label %4052 unwind label %4086

4052:                                             ; preds = %4051
  call void @llvm.lifetime.start.p0(i64 200, ptr %395) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %395)
          to label %4053 unwind label %4090

4053:                                             ; preds = %4052
  %4054 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %4055 = trunc i8 %4054 to i1
  br i1 %4055, label %4056, label %4214

4056:                                             ; preds = %4053
  call void @llvm.lifetime.start.p0(i64 8, ptr %396) #11
  %4057 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %4058 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4057)
          to label %4059 unwind label %4094

4059:                                             ; preds = %4056
  %4060 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4058, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %4061 unwind label %4094

4061:                                             ; preds = %4059
  %4062 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %4060)
          to label %4063 unwind label %4094

4063:                                             ; preds = %4061
  store ptr %4062, ptr %396, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %397) #11
  %4064 = load ptr, ptr %396, align 8, !tbaa !5
  %4065 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %4064)
          to label %4066 unwind label %4098

4066:                                             ; preds = %4063
  %4067 = getelementptr inbounds { ptr, i64 }, ptr %397, i32 0, i32 0
  %4068 = extractvalue { ptr, i64 } %4065, 0
  store ptr %4068, ptr %4067, align 8
  %4069 = getelementptr inbounds { ptr, i64 }, ptr %397, i32 0, i32 1
  %4070 = extractvalue { ptr, i64 } %4065, 1
  store i64 %4070, ptr %4069, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %398) #11
  %4071 = load ptr, ptr %396, align 8, !tbaa !5
  %4072 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %4071)
          to label %4073 unwind label %4102

4073:                                             ; preds = %4066
  %4074 = getelementptr inbounds { ptr, i64 }, ptr %398, i32 0, i32 0
  %4075 = extractvalue { ptr, i64 } %4072, 0
  store ptr %4075, ptr %4074, align 8
  %4076 = getelementptr inbounds { ptr, i64 }, ptr %398, i32 0, i32 1
  %4077 = extractvalue { ptr, i64 } %4072, 1
  store i64 %4077, ptr %4076, align 8
  br label %4078

4078:                                             ; preds = %4142, %4073
  %4079 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %397, ptr noundef nonnull align 8 dereferenceable(16) %398)
          to label %4080 unwind label %4102

4080:                                             ; preds = %4078
  br i1 %4079, label %4106, label %4081

4081:                                             ; preds = %4080
  store i32 27, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %398) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %397) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %396) #11
  br label %4213

4082:                                             ; preds = %4050
  %4083 = landingpad { ptr, i32 }
          cleanup
  %4084 = extractvalue { ptr, i32 } %4083, 0
  store ptr %4084, ptr %11, align 8
  %4085 = extractvalue { ptr, i32 } %4083, 1
  store i32 %4085, ptr %12, align 4
  br label %11102

4086:                                             ; preds = %4051
  %4087 = landingpad { ptr, i32 }
          cleanup
  %4088 = extractvalue { ptr, i32 } %4087, 0
  store ptr %4088, ptr %11, align 8
  %4089 = extractvalue { ptr, i32 } %4087, 1
  store i32 %4089, ptr %12, align 4
  br label %11101

4090:                                             ; preds = %4052
  %4091 = landingpad { ptr, i32 }
          cleanup
  %4092 = extractvalue { ptr, i32 } %4091, 0
  store ptr %4092, ptr %11, align 8
  %4093 = extractvalue { ptr, i32 } %4091, 1
  store i32 %4093, ptr %12, align 4
  br label %11100

4094:                                             ; preds = %4061, %4059, %4056
  %4095 = landingpad { ptr, i32 }
          cleanup
  %4096 = extractvalue { ptr, i32 } %4095, 0
  store ptr %4096, ptr %11, align 8
  %4097 = extractvalue { ptr, i32 } %4095, 1
  store i32 %4097, ptr %12, align 4
  br label %4212

4098:                                             ; preds = %4063
  %4099 = landingpad { ptr, i32 }
          cleanup
  %4100 = extractvalue { ptr, i32 } %4099, 0
  store ptr %4100, ptr %11, align 8
  %4101 = extractvalue { ptr, i32 } %4099, 1
  store i32 %4101, ptr %12, align 4
  br label %4211

4102:                                             ; preds = %4140, %4078, %4066
  %4103 = landingpad { ptr, i32 }
          cleanup
  %4104 = extractvalue { ptr, i32 } %4103, 0
  store ptr %4104, ptr %11, align 8
  %4105 = extractvalue { ptr, i32 } %4103, 1
  store i32 %4105, ptr %12, align 4
  br label %4210

4106:                                             ; preds = %4080
  call void @llvm.lifetime.start.p0(i64 8, ptr %399) #11
  %4107 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %397)
          to label %4108 unwind label %4143

4108:                                             ; preds = %4106
  store ptr %4107, ptr %399, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %400) #11
  %4109 = load ptr, ptr %399, align 8, !tbaa !5
  %4110 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4109) #11
  store ptr %4110, ptr %400, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %401) #11
  %4111 = load ptr, ptr %399, align 8, !tbaa !5
  %4112 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4111) #11
  store ptr %4112, ptr %401, align 8, !tbaa !5
  %4113 = load ptr, ptr %400, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %402) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %404) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %405) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %407) #11
  store ptr %407, ptr %408, align 8
  %4114 = load ptr, ptr %400, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %407, ptr noundef nonnull align 8 dereferenceable(32) %4114)
          to label %4115 unwind label %4147

4115:                                             ; preds = %4108
  %4116 = getelementptr inbounds %"class.std::initializer_list", ptr %406, i32 0, i32 0
  store ptr %407, ptr %4116, align 8, !tbaa !11
  %4117 = getelementptr inbounds %"class.std::initializer_list", ptr %406, i32 0, i32 1
  store i64 1, ptr %4117, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %409) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  %4118 = getelementptr inbounds { ptr, i64 }, ptr %406, i32 0, i32 0
  %4119 = load ptr, ptr %4118, align 8
  %4120 = getelementptr inbounds { ptr, i64 }, ptr %406, i32 0, i32 1
  %4121 = load i64, ptr %4120, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %405, ptr %4119, i64 %4121, ptr noundef nonnull align 1 dereferenceable(1) %409)
          to label %4122 unwind label %4158

4122:                                             ; preds = %4115
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %404, ptr noundef nonnull align 8 dereferenceable(24) %405)
          to label %4123 unwind label %4162

4123:                                             ; preds = %4122
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %403, ptr noundef nonnull align 8 dereferenceable(16) %404)
          to label %4124 unwind label %4166

4124:                                             ; preds = %4123
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %402, i32 noundef 13, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %403)
          to label %4125 unwind label %4170

4125:                                             ; preds = %4124
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %393, ptr noundef nonnull align 8 dereferenceable(32) %4113, ptr noundef nonnull align 8 dereferenceable(16) %402)
          to label %4126 unwind label %4174

4126:                                             ; preds = %4125
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %402) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %403) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %404) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %405) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %409) #11
  %4127 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %407, i32 0, i32 0
  %4128 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4127, i64 1
  br label %4129

4129:                                             ; preds = %4129, %4126
  %4130 = phi ptr [ %4128, %4126 ], [ %4131, %4129 ]
  %4131 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4130, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4131) #11
  %4132 = icmp eq ptr %4131, %4127
  br i1 %4132, label %4133, label %4129

4133:                                             ; preds = %4129
  call void @llvm.lifetime.end.p0(i64 32, ptr %407) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %405) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %404) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %402) #11
  %4134 = load ptr, ptr %400, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %410) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %410)
          to label %4135 unwind label %4190

4135:                                             ; preds = %4133
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %394, ptr noundef nonnull align 8 dereferenceable(32) %4134, ptr noundef nonnull align 8 dereferenceable(16) %410)
          to label %4136 unwind label %4194

4136:                                             ; preds = %4135
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %410) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %410) #11
  %4137 = load ptr, ptr %400, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %411) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %411)
          to label %4138 unwind label %4199

4138:                                             ; preds = %4136
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %395, ptr noundef nonnull align 8 dereferenceable(32) %4137, ptr noundef nonnull align 8 dereferenceable(16) %411)
          to label %4139 unwind label %4203

4139:                                             ; preds = %4138
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %411) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %411) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %399) #11
  br label %4140

4140:                                             ; preds = %4139
  %4141 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %397)
          to label %4142 unwind label %4102

4142:                                             ; preds = %4140
  br label %4078

4143:                                             ; preds = %4106
  %4144 = landingpad { ptr, i32 }
          cleanup
  %4145 = extractvalue { ptr, i32 } %4144, 0
  store ptr %4145, ptr %11, align 8
  %4146 = extractvalue { ptr, i32 } %4144, 1
  store i32 %4146, ptr %12, align 4
  br label %4209

4147:                                             ; preds = %4108
  %4148 = landingpad { ptr, i32 }
          cleanup
  %4149 = extractvalue { ptr, i32 } %4148, 0
  store ptr %4149, ptr %11, align 8
  %4150 = extractvalue { ptr, i32 } %4148, 1
  store i32 %4150, ptr %12, align 4
  %4151 = load ptr, ptr %408, align 8
  %4152 = icmp eq ptr %407, %4151
  br i1 %4152, label %4157, label %4153

4153:                                             ; preds = %4153, %4147
  %4154 = phi ptr [ %4151, %4147 ], [ %4155, %4153 ]
  %4155 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4154, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4155) #11
  %4156 = icmp eq ptr %4155, %407
  br i1 %4156, label %4157, label %4153

4157:                                             ; preds = %4153, %4147
  br label %4189

4158:                                             ; preds = %4115
  %4159 = landingpad { ptr, i32 }
          cleanup
  %4160 = extractvalue { ptr, i32 } %4159, 0
  store ptr %4160, ptr %11, align 8
  %4161 = extractvalue { ptr, i32 } %4159, 1
  store i32 %4161, ptr %12, align 4
  br label %4181

4162:                                             ; preds = %4122
  %4163 = landingpad { ptr, i32 }
          cleanup
  %4164 = extractvalue { ptr, i32 } %4163, 0
  store ptr %4164, ptr %11, align 8
  %4165 = extractvalue { ptr, i32 } %4163, 1
  store i32 %4165, ptr %12, align 4
  br label %4180

4166:                                             ; preds = %4123
  %4167 = landingpad { ptr, i32 }
          cleanup
  %4168 = extractvalue { ptr, i32 } %4167, 0
  store ptr %4168, ptr %11, align 8
  %4169 = extractvalue { ptr, i32 } %4167, 1
  store i32 %4169, ptr %12, align 4
  br label %4179

4170:                                             ; preds = %4124
  %4171 = landingpad { ptr, i32 }
          cleanup
  %4172 = extractvalue { ptr, i32 } %4171, 0
  store ptr %4172, ptr %11, align 8
  %4173 = extractvalue { ptr, i32 } %4171, 1
  store i32 %4173, ptr %12, align 4
  br label %4178

4174:                                             ; preds = %4125
  %4175 = landingpad { ptr, i32 }
          cleanup
  %4176 = extractvalue { ptr, i32 } %4175, 0
  store ptr %4176, ptr %11, align 8
  %4177 = extractvalue { ptr, i32 } %4175, 1
  store i32 %4177, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %402) #11
  br label %4178

4178:                                             ; preds = %4174, %4170
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %403) #11
  br label %4179

4179:                                             ; preds = %4178, %4166
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %404) #11
  br label %4180

4180:                                             ; preds = %4179, %4162
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %405) #11
  br label %4181

4181:                                             ; preds = %4180, %4158
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %409) #11
  %4182 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %407, i32 0, i32 0
  %4183 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4182, i64 1
  br label %4184

4184:                                             ; preds = %4184, %4181
  %4185 = phi ptr [ %4183, %4181 ], [ %4186, %4184 ]
  %4186 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4185, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4186) #11
  %4187 = icmp eq ptr %4186, %4182
  br i1 %4187, label %4188, label %4184

4188:                                             ; preds = %4184
  br label %4189

4189:                                             ; preds = %4188, %4157
  call void @llvm.lifetime.end.p0(i64 32, ptr %407) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %405) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %404) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %402) #11
  br label %4208

4190:                                             ; preds = %4133
  %4191 = landingpad { ptr, i32 }
          cleanup
  %4192 = extractvalue { ptr, i32 } %4191, 0
  store ptr %4192, ptr %11, align 8
  %4193 = extractvalue { ptr, i32 } %4191, 1
  store i32 %4193, ptr %12, align 4
  br label %4198

4194:                                             ; preds = %4135
  %4195 = landingpad { ptr, i32 }
          cleanup
  %4196 = extractvalue { ptr, i32 } %4195, 0
  store ptr %4196, ptr %11, align 8
  %4197 = extractvalue { ptr, i32 } %4195, 1
  store i32 %4197, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %410) #11
  br label %4198

4198:                                             ; preds = %4194, %4190
  call void @llvm.lifetime.end.p0(i64 16, ptr %410) #11
  br label %4208

4199:                                             ; preds = %4136
  %4200 = landingpad { ptr, i32 }
          cleanup
  %4201 = extractvalue { ptr, i32 } %4200, 0
  store ptr %4201, ptr %11, align 8
  %4202 = extractvalue { ptr, i32 } %4200, 1
  store i32 %4202, ptr %12, align 4
  br label %4207

4203:                                             ; preds = %4138
  %4204 = landingpad { ptr, i32 }
          cleanup
  %4205 = extractvalue { ptr, i32 } %4204, 0
  store ptr %4205, ptr %11, align 8
  %4206 = extractvalue { ptr, i32 } %4204, 1
  store i32 %4206, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %411) #11
  br label %4207

4207:                                             ; preds = %4203, %4199
  call void @llvm.lifetime.end.p0(i64 16, ptr %411) #11
  br label %4208

4208:                                             ; preds = %4207, %4198, %4189
  call void @llvm.lifetime.end.p0(i64 8, ptr %401) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #11
  br label %4209

4209:                                             ; preds = %4208, %4143
  call void @llvm.lifetime.end.p0(i64 8, ptr %399) #11
  br label %4210

4210:                                             ; preds = %4209, %4102
  call void @llvm.lifetime.end.p0(i64 16, ptr %398) #11
  br label %4211

4211:                                             ; preds = %4210, %4098
  call void @llvm.lifetime.end.p0(i64 16, ptr %397) #11
  br label %4212

4212:                                             ; preds = %4211, %4094
  call void @llvm.lifetime.end.p0(i64 8, ptr %396) #11
  br label %11099

4213:                                             ; preds = %4081
  br label %4214

4214:                                             ; preds = %4213, %4053
  call void @llvm.lifetime.start.p0(i64 16, ptr %412) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %413) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %415) #11
  store i1 true, ptr %421, align 1
  store ptr %415, ptr %416, align 8
  %4215 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %418) #11
  call void @llvm.memset.p0.i64(ptr align 8 %418, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %418) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %417, ptr noundef nonnull align 8 dereferenceable(24) %418)
          to label %4216 unwind label %4267

4216:                                             ; preds = %4214
  call void @llvm.lifetime.start.p0(i64 1, ptr %420) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %420) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %419, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %420)
          to label %4217 unwind label %4271

4217:                                             ; preds = %4216
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %415, ptr noundef nonnull align 8 dereferenceable(264) %4215, ptr noundef %417, ptr noundef %419)
          to label %4218 unwind label %4275

4218:                                             ; preds = %4217
  store i1 false, ptr %421, align 1
  %4219 = getelementptr inbounds %"class.std::initializer_list", ptr %414, i32 0, i32 0
  store ptr %415, ptr %4219, align 8, !tbaa !11
  %4220 = getelementptr inbounds %"class.std::initializer_list", ptr %414, i32 0, i32 1
  store i64 1, ptr %4220, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %422) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #11
  %4221 = getelementptr inbounds { ptr, i64 }, ptr %414, i32 0, i32 0
  %4222 = load ptr, ptr %4221, align 8
  %4223 = getelementptr inbounds { ptr, i64 }, ptr %414, i32 0, i32 1
  %4224 = load i64, ptr %4223, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %413, ptr %4222, i64 %4224, ptr noundef nonnull align 1 dereferenceable(1) %422)
          to label %4225 unwind label %4279

4225:                                             ; preds = %4218
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %412, ptr noundef nonnull align 8 dereferenceable(24) %413)
          to label %4226 unwind label %4283

4226:                                             ; preds = %4225
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %413) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %422) #11
  %4227 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %415, i32 0, i32 0
  %4228 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4227, i64 1
  br label %4229

4229:                                             ; preds = %4229, %4226
  %4230 = phi ptr [ %4228, %4226 ], [ %4231, %4229 ]
  %4231 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4230, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4231) #11
  %4232 = icmp eq ptr %4231, %4227
  br i1 %4232, label %4233, label %4229

4233:                                             ; preds = %4229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %420) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %420) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %417) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %418) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %418) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %413) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %423) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %424)
          to label %4234 unwind label %4308

4234:                                             ; preds = %4233
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %423, i32 noundef 19, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %424)
          to label %4235 unwind label %4312

4235:                                             ; preds = %4234
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %424) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %425) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %425)
          to label %4236 unwind label %4316

4236:                                             ; preds = %4235
  call void @llvm.lifetime.start.p0(i64 16, ptr %426) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %426)
          to label %4237 unwind label %4320

4237:                                             ; preds = %4236
  call void @llvm.lifetime.start.p0(i64 16, ptr %427) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %427)
          to label %4238 unwind label %4324

4238:                                             ; preds = %4237
  %4239 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %4240 = trunc i8 %4239 to i1
  br i1 %4240, label %4241, label %4405

4241:                                             ; preds = %4238
  call void @llvm.lifetime.start.p0(i64 8, ptr %428) #11
  %4242 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %4243 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4242)
          to label %4244 unwind label %4328

4244:                                             ; preds = %4241
  %4245 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4243, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %4246 unwind label %4328

4246:                                             ; preds = %4244
  %4247 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %4245)
          to label %4248 unwind label %4328

4248:                                             ; preds = %4246
  store ptr %4247, ptr %428, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %429) #11
  %4249 = load ptr, ptr %428, align 8, !tbaa !5
  %4250 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %4249)
          to label %4251 unwind label %4332

4251:                                             ; preds = %4248
  %4252 = getelementptr inbounds { ptr, i64 }, ptr %429, i32 0, i32 0
  %4253 = extractvalue { ptr, i64 } %4250, 0
  store ptr %4253, ptr %4252, align 8
  %4254 = getelementptr inbounds { ptr, i64 }, ptr %429, i32 0, i32 1
  %4255 = extractvalue { ptr, i64 } %4250, 1
  store i64 %4255, ptr %4254, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %430) #11
  %4256 = load ptr, ptr %428, align 8, !tbaa !5
  %4257 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %4256)
          to label %4258 unwind label %4336

4258:                                             ; preds = %4251
  %4259 = getelementptr inbounds { ptr, i64 }, ptr %430, i32 0, i32 0
  %4260 = extractvalue { ptr, i64 } %4257, 0
  store ptr %4260, ptr %4259, align 8
  %4261 = getelementptr inbounds { ptr, i64 }, ptr %430, i32 0, i32 1
  %4262 = extractvalue { ptr, i64 } %4257, 1
  store i64 %4262, ptr %4261, align 8
  br label %4263

4263:                                             ; preds = %4362, %4258
  %4264 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %429, ptr noundef nonnull align 8 dereferenceable(16) %430)
          to label %4265 unwind label %4336

4265:                                             ; preds = %4263
  br i1 %4264, label %4340, label %4266

4266:                                             ; preds = %4265
  store i32 29, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %430) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %429) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %428) #11
  br label %4404

4267:                                             ; preds = %4214
  %4268 = landingpad { ptr, i32 }
          cleanup
  %4269 = extractvalue { ptr, i32 } %4268, 0
  store ptr %4269, ptr %11, align 8
  %4270 = extractvalue { ptr, i32 } %4268, 1
  store i32 %4270, ptr %12, align 4
  br label %4297

4271:                                             ; preds = %4216
  %4272 = landingpad { ptr, i32 }
          cleanup
  %4273 = extractvalue { ptr, i32 } %4272, 0
  store ptr %4273, ptr %11, align 8
  %4274 = extractvalue { ptr, i32 } %4272, 1
  store i32 %4274, ptr %12, align 4
  br label %4296

4275:                                             ; preds = %4217
  %4276 = landingpad { ptr, i32 }
          cleanup
  %4277 = extractvalue { ptr, i32 } %4276, 0
  store ptr %4277, ptr %11, align 8
  %4278 = extractvalue { ptr, i32 } %4276, 1
  store i32 %4278, ptr %12, align 4
  br label %4295

4279:                                             ; preds = %4218
  %4280 = landingpad { ptr, i32 }
          cleanup
  %4281 = extractvalue { ptr, i32 } %4280, 0
  store ptr %4281, ptr %11, align 8
  %4282 = extractvalue { ptr, i32 } %4280, 1
  store i32 %4282, ptr %12, align 4
  br label %4287

4283:                                             ; preds = %4225
  %4284 = landingpad { ptr, i32 }
          cleanup
  %4285 = extractvalue { ptr, i32 } %4284, 0
  store ptr %4285, ptr %11, align 8
  %4286 = extractvalue { ptr, i32 } %4284, 1
  store i32 %4286, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %413) #11
  br label %4287

4287:                                             ; preds = %4283, %4279
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %422) #11
  %4288 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %415, i32 0, i32 0
  %4289 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4288, i64 1
  br label %4290

4290:                                             ; preds = %4290, %4287
  %4291 = phi ptr [ %4289, %4287 ], [ %4292, %4290 ]
  %4292 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4291, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4292) #11
  %4293 = icmp eq ptr %4292, %4288
  br i1 %4293, label %4294, label %4290

4294:                                             ; preds = %4290
  br label %4295

4295:                                             ; preds = %4294, %4275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #11
  br label %4296

4296:                                             ; preds = %4295, %4271
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %420) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %420) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %417) #11
  br label %4297

4297:                                             ; preds = %4296, %4267
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %418) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %418) #11
  %4298 = load i1, ptr %421, align 1
  br i1 %4298, label %4299, label %4307

4299:                                             ; preds = %4297
  %4300 = load ptr, ptr %416, align 8
  %4301 = icmp eq ptr %415, %4300
  br i1 %4301, label %4306, label %4302

4302:                                             ; preds = %4302, %4299
  %4303 = phi ptr [ %4300, %4299 ], [ %4304, %4302 ]
  %4304 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4303, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4304) #11
  %4305 = icmp eq ptr %4304, %415
  br i1 %4305, label %4306, label %4302

4306:                                             ; preds = %4302, %4299
  br label %4307

4307:                                             ; preds = %4306, %4297
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %413) #11
  br label %11098

4308:                                             ; preds = %4233
  %4309 = landingpad { ptr, i32 }
          cleanup
  %4310 = extractvalue { ptr, i32 } %4309, 0
  store ptr %4310, ptr %11, align 8
  %4311 = extractvalue { ptr, i32 } %4309, 1
  store i32 %4311, ptr %12, align 4
  br label %11097

4312:                                             ; preds = %4234
  %4313 = landingpad { ptr, i32 }
          cleanup
  %4314 = extractvalue { ptr, i32 } %4313, 0
  store ptr %4314, ptr %11, align 8
  %4315 = extractvalue { ptr, i32 } %4313, 1
  store i32 %4315, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %424) #11
  br label %11097

4316:                                             ; preds = %4235
  %4317 = landingpad { ptr, i32 }
          cleanup
  %4318 = extractvalue { ptr, i32 } %4317, 0
  store ptr %4318, ptr %11, align 8
  %4319 = extractvalue { ptr, i32 } %4317, 1
  store i32 %4319, ptr %12, align 4
  br label %11096

4320:                                             ; preds = %4236
  %4321 = landingpad { ptr, i32 }
          cleanup
  %4322 = extractvalue { ptr, i32 } %4321, 0
  store ptr %4322, ptr %11, align 8
  %4323 = extractvalue { ptr, i32 } %4321, 1
  store i32 %4323, ptr %12, align 4
  br label %11095

4324:                                             ; preds = %4237
  %4325 = landingpad { ptr, i32 }
          cleanup
  %4326 = extractvalue { ptr, i32 } %4325, 0
  store ptr %4326, ptr %11, align 8
  %4327 = extractvalue { ptr, i32 } %4325, 1
  store i32 %4327, ptr %12, align 4
  br label %11094

4328:                                             ; preds = %4246, %4244, %4241
  %4329 = landingpad { ptr, i32 }
          cleanup
  %4330 = extractvalue { ptr, i32 } %4329, 0
  store ptr %4330, ptr %11, align 8
  %4331 = extractvalue { ptr, i32 } %4329, 1
  store i32 %4331, ptr %12, align 4
  br label %4403

4332:                                             ; preds = %4248
  %4333 = landingpad { ptr, i32 }
          cleanup
  %4334 = extractvalue { ptr, i32 } %4333, 0
  store ptr %4334, ptr %11, align 8
  %4335 = extractvalue { ptr, i32 } %4333, 1
  store i32 %4335, ptr %12, align 4
  br label %4402

4336:                                             ; preds = %4360, %4263, %4251
  %4337 = landingpad { ptr, i32 }
          cleanup
  %4338 = extractvalue { ptr, i32 } %4337, 0
  store ptr %4338, ptr %11, align 8
  %4339 = extractvalue { ptr, i32 } %4337, 1
  store i32 %4339, ptr %12, align 4
  br label %4401

4340:                                             ; preds = %4265
  call void @llvm.lifetime.start.p0(i64 8, ptr %431) #11
  %4341 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %429)
          to label %4342 unwind label %4363

4342:                                             ; preds = %4340
  store ptr %4341, ptr %431, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #11
  %4343 = load ptr, ptr %431, align 8, !tbaa !5
  %4344 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4343) #11
  store ptr %4344, ptr %432, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %433) #11
  %4345 = load ptr, ptr %431, align 8, !tbaa !5
  %4346 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4345) #11
  store ptr %4346, ptr %433, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %434) #11
  %4347 = load ptr, ptr %433, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %435, ptr noundef nonnull align 8 dereferenceable(16) %4347)
          to label %4348 unwind label %4367

4348:                                             ; preds = %4342
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %434, ptr noundef %435, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %4349 unwind label %4371

4349:                                             ; preds = %4348
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %435) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %436) #11
  %4350 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %437) #11
  %4351 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA20_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %437, ptr noundef nonnull align 8 dereferenceable(264) %4351, ptr noundef nonnull align 1 dereferenceable(20) @.str.88, ptr noundef nonnull align 8 dereferenceable(16) %434, ptr noundef nonnull align 1 dereferenceable(3) @.str.87)
          to label %4352 unwind label %4375

4352:                                             ; preds = %4349
  call void @llvm.lifetime.start.p0(i64 32, ptr %438) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %439) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %440) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %440)
          to label %4353 unwind label %4379

4353:                                             ; preds = %4352
  %4354 = load ptr, ptr %432, align 8, !tbaa !5
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %438, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull align 8 dereferenceable(32) %4354)
          to label %4355 unwind label %4383

4355:                                             ; preds = %4353
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %436, ptr noundef nonnull align 8 dereferenceable(264) %4350, ptr noundef nonnull align 8 dereferenceable(16) %426, ptr noundef nonnull align 8 dereferenceable(16) %412, ptr noundef nonnull align 8 dereferenceable(16) %437, ptr noundef nonnull align 8 dereferenceable(32) %438)
          to label %4356 unwind label %4387

4356:                                             ; preds = %4355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %437) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %437) #11
  %4357 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %427)
          to label %4358 unwind label %4394

4358:                                             ; preds = %4356
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4357, ptr noundef nonnull align 8 dereferenceable(16) %436)
          to label %4359 unwind label %4394

4359:                                             ; preds = %4358
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %436) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %436) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %434) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %434) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %433) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %431) #11
  br label %4360

4360:                                             ; preds = %4359
  %4361 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %429)
          to label %4362 unwind label %4336

4362:                                             ; preds = %4360
  br label %4263

4363:                                             ; preds = %4340
  %4364 = landingpad { ptr, i32 }
          cleanup
  %4365 = extractvalue { ptr, i32 } %4364, 0
  store ptr %4365, ptr %11, align 8
  %4366 = extractvalue { ptr, i32 } %4364, 1
  store i32 %4366, ptr %12, align 4
  br label %4400

4367:                                             ; preds = %4342
  %4368 = landingpad { ptr, i32 }
          cleanup
  %4369 = extractvalue { ptr, i32 } %4368, 0
  store ptr %4369, ptr %11, align 8
  %4370 = extractvalue { ptr, i32 } %4368, 1
  store i32 %4370, ptr %12, align 4
  br label %4399

4371:                                             ; preds = %4348
  %4372 = landingpad { ptr, i32 }
          cleanup
  %4373 = extractvalue { ptr, i32 } %4372, 0
  store ptr %4373, ptr %11, align 8
  %4374 = extractvalue { ptr, i32 } %4372, 1
  store i32 %4374, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %435) #11
  br label %4399

4375:                                             ; preds = %4349
  %4376 = landingpad { ptr, i32 }
          cleanup
  %4377 = extractvalue { ptr, i32 } %4376, 0
  store ptr %4377, ptr %11, align 8
  %4378 = extractvalue { ptr, i32 } %4376, 1
  store i32 %4378, ptr %12, align 4
  br label %4393

4379:                                             ; preds = %4352
  %4380 = landingpad { ptr, i32 }
          cleanup
  %4381 = extractvalue { ptr, i32 } %4380, 0
  store ptr %4381, ptr %11, align 8
  %4382 = extractvalue { ptr, i32 } %4380, 1
  store i32 %4382, ptr %12, align 4
  br label %4392

4383:                                             ; preds = %4353
  %4384 = landingpad { ptr, i32 }
          cleanup
  %4385 = extractvalue { ptr, i32 } %4384, 0
  store ptr %4385, ptr %11, align 8
  %4386 = extractvalue { ptr, i32 } %4384, 1
  store i32 %4386, ptr %12, align 4
  br label %4391

4387:                                             ; preds = %4355
  %4388 = landingpad { ptr, i32 }
          cleanup
  %4389 = extractvalue { ptr, i32 } %4388, 0
  store ptr %4389, ptr %11, align 8
  %4390 = extractvalue { ptr, i32 } %4388, 1
  store i32 %4390, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #11
  br label %4391

4391:                                             ; preds = %4387, %4383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #11
  br label %4392

4392:                                             ; preds = %4391, %4379
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %437) #11
  br label %4393

4393:                                             ; preds = %4392, %4375
  call void @llvm.lifetime.end.p0(i64 16, ptr %437) #11
  br label %4398

4394:                                             ; preds = %4358, %4356
  %4395 = landingpad { ptr, i32 }
          cleanup
  %4396 = extractvalue { ptr, i32 } %4395, 0
  store ptr %4396, ptr %11, align 8
  %4397 = extractvalue { ptr, i32 } %4395, 1
  store i32 %4397, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %436) #11
  br label %4398

4398:                                             ; preds = %4394, %4393
  call void @llvm.lifetime.end.p0(i64 16, ptr %436) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %434) #11
  br label %4399

4399:                                             ; preds = %4398, %4371, %4367
  call void @llvm.lifetime.end.p0(i64 16, ptr %434) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %433) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #11
  br label %4400

4400:                                             ; preds = %4399, %4363
  call void @llvm.lifetime.end.p0(i64 8, ptr %431) #11
  br label %4401

4401:                                             ; preds = %4400, %4336
  call void @llvm.lifetime.end.p0(i64 16, ptr %430) #11
  br label %4402

4402:                                             ; preds = %4401, %4332
  call void @llvm.lifetime.end.p0(i64 16, ptr %429) #11
  br label %4403

4403:                                             ; preds = %4402, %4328
  call void @llvm.lifetime.end.p0(i64 8, ptr %428) #11
  br label %11093

4404:                                             ; preds = %4266
  br label %4405

4405:                                             ; preds = %4404, %4238
  call void @llvm.lifetime.start.p0(i64 16, ptr %441) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %442) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %444) #11
  store i1 true, ptr %450, align 1
  store ptr %444, ptr %445, align 8
  %4406 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %447) #11
  call void @llvm.memset.p0.i64(ptr align 8 %447, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %447) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %446, ptr noundef nonnull align 8 dereferenceable(24) %447)
          to label %4407 unwind label %4462

4407:                                             ; preds = %4405
  call void @llvm.lifetime.start.p0(i64 1, ptr %449) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %449)
          to label %4408 unwind label %4466

4408:                                             ; preds = %4407
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %444, ptr noundef nonnull align 8 dereferenceable(264) %4406, ptr noundef %446, ptr noundef %448)
          to label %4409 unwind label %4470

4409:                                             ; preds = %4408
  store i1 false, ptr %450, align 1
  %4410 = getelementptr inbounds %"class.std::initializer_list", ptr %443, i32 0, i32 0
  store ptr %444, ptr %4410, align 8, !tbaa !11
  %4411 = getelementptr inbounds %"class.std::initializer_list", ptr %443, i32 0, i32 1
  store i64 1, ptr %4411, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %451) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #11
  %4412 = getelementptr inbounds { ptr, i64 }, ptr %443, i32 0, i32 0
  %4413 = load ptr, ptr %4412, align 8
  %4414 = getelementptr inbounds { ptr, i64 }, ptr %443, i32 0, i32 1
  %4415 = load i64, ptr %4414, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %442, ptr %4413, i64 %4415, ptr noundef nonnull align 1 dereferenceable(1) %451)
          to label %4416 unwind label %4474

4416:                                             ; preds = %4409
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %441, ptr noundef nonnull align 8 dereferenceable(24) %442)
          to label %4417 unwind label %4478

4417:                                             ; preds = %4416
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %442) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %451) #11
  %4418 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %444, i32 0, i32 0
  %4419 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4418, i64 1
  br label %4420

4420:                                             ; preds = %4420, %4417
  %4421 = phi ptr [ %4419, %4417 ], [ %4422, %4420 ]
  %4422 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4421, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4422) #11
  %4423 = icmp eq ptr %4422, %4418
  br i1 %4423, label %4424, label %4420

4424:                                             ; preds = %4420
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %449) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %446) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %447) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %447) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %444) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %442) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %452) #11
  %4425 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %453, ptr noundef nonnull align 8 dereferenceable(16) %441)
          to label %4426 unwind label %4503

4426:                                             ; preds = %4424
  call void @llvm.lifetime.start.p0(i64 1, ptr %455) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef @.str.130, ptr noundef nonnull align 1 dereferenceable(1) %455)
          to label %4427 unwind label %4507

4427:                                             ; preds = %4426
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %452, ptr noundef nonnull align 8 dereferenceable(264) %4425, ptr noundef %453, ptr noundef %454)
          to label %4428 unwind label %4511

4428:                                             ; preds = %4427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %455) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %453) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %456) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %457)
          to label %4429 unwind label %4516

4429:                                             ; preds = %4428
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %456, i32 noundef 17, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %457)
          to label %4430 unwind label %4520

4430:                                             ; preds = %4429
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %457) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %458) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %458)
          to label %4431 unwind label %4524

4431:                                             ; preds = %4430
  call void @llvm.lifetime.start.p0(i64 16, ptr %459) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %459)
          to label %4432 unwind label %4528

4432:                                             ; preds = %4431
  call void @llvm.lifetime.start.p0(i64 16, ptr %460) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %460)
          to label %4433 unwind label %4532

4433:                                             ; preds = %4432
  %4434 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %4435 = trunc i8 %4434 to i1
  br i1 %4435, label %4436, label %4613

4436:                                             ; preds = %4433
  call void @llvm.lifetime.start.p0(i64 8, ptr %461) #11
  %4437 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %4438 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4437)
          to label %4439 unwind label %4536

4439:                                             ; preds = %4436
  %4440 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4438, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %4441 unwind label %4536

4441:                                             ; preds = %4439
  %4442 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %4440)
          to label %4443 unwind label %4536

4443:                                             ; preds = %4441
  store ptr %4442, ptr %461, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %462) #11
  %4444 = load ptr, ptr %461, align 8, !tbaa !5
  %4445 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %4444)
          to label %4446 unwind label %4540

4446:                                             ; preds = %4443
  %4447 = getelementptr inbounds { ptr, i64 }, ptr %462, i32 0, i32 0
  %4448 = extractvalue { ptr, i64 } %4445, 0
  store ptr %4448, ptr %4447, align 8
  %4449 = getelementptr inbounds { ptr, i64 }, ptr %462, i32 0, i32 1
  %4450 = extractvalue { ptr, i64 } %4445, 1
  store i64 %4450, ptr %4449, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %463) #11
  %4451 = load ptr, ptr %461, align 8, !tbaa !5
  %4452 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %4451)
          to label %4453 unwind label %4544

4453:                                             ; preds = %4446
  %4454 = getelementptr inbounds { ptr, i64 }, ptr %463, i32 0, i32 0
  %4455 = extractvalue { ptr, i64 } %4452, 0
  store ptr %4455, ptr %4454, align 8
  %4456 = getelementptr inbounds { ptr, i64 }, ptr %463, i32 0, i32 1
  %4457 = extractvalue { ptr, i64 } %4452, 1
  store i64 %4457, ptr %4456, align 8
  br label %4458

4458:                                             ; preds = %4570, %4453
  %4459 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %462, ptr noundef nonnull align 8 dereferenceable(16) %463)
          to label %4460 unwind label %4544

4460:                                             ; preds = %4458
  br i1 %4459, label %4548, label %4461

4461:                                             ; preds = %4460
  store i32 31, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %463) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %462) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %461) #11
  br label %4612

4462:                                             ; preds = %4405
  %4463 = landingpad { ptr, i32 }
          cleanup
  %4464 = extractvalue { ptr, i32 } %4463, 0
  store ptr %4464, ptr %11, align 8
  %4465 = extractvalue { ptr, i32 } %4463, 1
  store i32 %4465, ptr %12, align 4
  br label %4492

4466:                                             ; preds = %4407
  %4467 = landingpad { ptr, i32 }
          cleanup
  %4468 = extractvalue { ptr, i32 } %4467, 0
  store ptr %4468, ptr %11, align 8
  %4469 = extractvalue { ptr, i32 } %4467, 1
  store i32 %4469, ptr %12, align 4
  br label %4491

4470:                                             ; preds = %4408
  %4471 = landingpad { ptr, i32 }
          cleanup
  %4472 = extractvalue { ptr, i32 } %4471, 0
  store ptr %4472, ptr %11, align 8
  %4473 = extractvalue { ptr, i32 } %4471, 1
  store i32 %4473, ptr %12, align 4
  br label %4490

4474:                                             ; preds = %4409
  %4475 = landingpad { ptr, i32 }
          cleanup
  %4476 = extractvalue { ptr, i32 } %4475, 0
  store ptr %4476, ptr %11, align 8
  %4477 = extractvalue { ptr, i32 } %4475, 1
  store i32 %4477, ptr %12, align 4
  br label %4482

4478:                                             ; preds = %4416
  %4479 = landingpad { ptr, i32 }
          cleanup
  %4480 = extractvalue { ptr, i32 } %4479, 0
  store ptr %4480, ptr %11, align 8
  %4481 = extractvalue { ptr, i32 } %4479, 1
  store i32 %4481, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %442) #11
  br label %4482

4482:                                             ; preds = %4478, %4474
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %451) #11
  %4483 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %444, i32 0, i32 0
  %4484 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4483, i64 1
  br label %4485

4485:                                             ; preds = %4485, %4482
  %4486 = phi ptr [ %4484, %4482 ], [ %4487, %4485 ]
  %4487 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4486, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4487) #11
  %4488 = icmp eq ptr %4487, %4483
  br i1 %4488, label %4489, label %4485

4489:                                             ; preds = %4485
  br label %4490

4490:                                             ; preds = %4489, %4470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #11
  br label %4491

4491:                                             ; preds = %4490, %4466
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %449) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %446) #11
  br label %4492

4492:                                             ; preds = %4491, %4462
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %447) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %447) #11
  %4493 = load i1, ptr %450, align 1
  br i1 %4493, label %4494, label %4502

4494:                                             ; preds = %4492
  %4495 = load ptr, ptr %445, align 8
  %4496 = icmp eq ptr %444, %4495
  br i1 %4496, label %4501, label %4497

4497:                                             ; preds = %4497, %4494
  %4498 = phi ptr [ %4495, %4494 ], [ %4499, %4497 ]
  %4499 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4498, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4499) #11
  %4500 = icmp eq ptr %4499, %444
  br i1 %4500, label %4501, label %4497

4501:                                             ; preds = %4497, %4494
  br label %4502

4502:                                             ; preds = %4501, %4492
  call void @llvm.lifetime.end.p0(i64 32, ptr %444) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %442) #11
  br label %11092

4503:                                             ; preds = %4424
  %4504 = landingpad { ptr, i32 }
          cleanup
  %4505 = extractvalue { ptr, i32 } %4504, 0
  store ptr %4505, ptr %11, align 8
  %4506 = extractvalue { ptr, i32 } %4504, 1
  store i32 %4506, ptr %12, align 4
  br label %11091

4507:                                             ; preds = %4426
  %4508 = landingpad { ptr, i32 }
          cleanup
  %4509 = extractvalue { ptr, i32 } %4508, 0
  store ptr %4509, ptr %11, align 8
  %4510 = extractvalue { ptr, i32 } %4508, 1
  store i32 %4510, ptr %12, align 4
  br label %4515

4511:                                             ; preds = %4427
  %4512 = landingpad { ptr, i32 }
          cleanup
  %4513 = extractvalue { ptr, i32 } %4512, 0
  store ptr %4513, ptr %11, align 8
  %4514 = extractvalue { ptr, i32 } %4512, 1
  store i32 %4514, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #11
  br label %4515

4515:                                             ; preds = %4511, %4507
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %455) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %453) #11
  br label %11091

4516:                                             ; preds = %4428
  %4517 = landingpad { ptr, i32 }
          cleanup
  %4518 = extractvalue { ptr, i32 } %4517, 0
  store ptr %4518, ptr %11, align 8
  %4519 = extractvalue { ptr, i32 } %4517, 1
  store i32 %4519, ptr %12, align 4
  br label %11090

4520:                                             ; preds = %4429
  %4521 = landingpad { ptr, i32 }
          cleanup
  %4522 = extractvalue { ptr, i32 } %4521, 0
  store ptr %4522, ptr %11, align 8
  %4523 = extractvalue { ptr, i32 } %4521, 1
  store i32 %4523, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %457) #11
  br label %11090

4524:                                             ; preds = %4430
  %4525 = landingpad { ptr, i32 }
          cleanup
  %4526 = extractvalue { ptr, i32 } %4525, 0
  store ptr %4526, ptr %11, align 8
  %4527 = extractvalue { ptr, i32 } %4525, 1
  store i32 %4527, ptr %12, align 4
  br label %11089

4528:                                             ; preds = %4431
  %4529 = landingpad { ptr, i32 }
          cleanup
  %4530 = extractvalue { ptr, i32 } %4529, 0
  store ptr %4530, ptr %11, align 8
  %4531 = extractvalue { ptr, i32 } %4529, 1
  store i32 %4531, ptr %12, align 4
  br label %11088

4532:                                             ; preds = %4432
  %4533 = landingpad { ptr, i32 }
          cleanup
  %4534 = extractvalue { ptr, i32 } %4533, 0
  store ptr %4534, ptr %11, align 8
  %4535 = extractvalue { ptr, i32 } %4533, 1
  store i32 %4535, ptr %12, align 4
  br label %11087

4536:                                             ; preds = %4441, %4439, %4436
  %4537 = landingpad { ptr, i32 }
          cleanup
  %4538 = extractvalue { ptr, i32 } %4537, 0
  store ptr %4538, ptr %11, align 8
  %4539 = extractvalue { ptr, i32 } %4537, 1
  store i32 %4539, ptr %12, align 4
  br label %4611

4540:                                             ; preds = %4443
  %4541 = landingpad { ptr, i32 }
          cleanup
  %4542 = extractvalue { ptr, i32 } %4541, 0
  store ptr %4542, ptr %11, align 8
  %4543 = extractvalue { ptr, i32 } %4541, 1
  store i32 %4543, ptr %12, align 4
  br label %4610

4544:                                             ; preds = %4568, %4458, %4446
  %4545 = landingpad { ptr, i32 }
          cleanup
  %4546 = extractvalue { ptr, i32 } %4545, 0
  store ptr %4546, ptr %11, align 8
  %4547 = extractvalue { ptr, i32 } %4545, 1
  store i32 %4547, ptr %12, align 4
  br label %4609

4548:                                             ; preds = %4460
  call void @llvm.lifetime.start.p0(i64 8, ptr %464) #11
  %4549 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %462)
          to label %4550 unwind label %4571

4550:                                             ; preds = %4548
  store ptr %4549, ptr %464, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %465) #11
  %4551 = load ptr, ptr %464, align 8, !tbaa !5
  %4552 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4551) #11
  store ptr %4552, ptr %465, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %466) #11
  %4553 = load ptr, ptr %464, align 8, !tbaa !5
  %4554 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4553) #11
  store ptr %4554, ptr %466, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %467) #11
  %4555 = load ptr, ptr %466, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %468, ptr noundef nonnull align 8 dereferenceable(16) %4555)
          to label %4556 unwind label %4575

4556:                                             ; preds = %4550
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %467, ptr noundef %468, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %4557 unwind label %4579

4557:                                             ; preds = %4556
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %468) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %469) #11
  %4558 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %470) #11
  %4559 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA15_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEESF_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %470, ptr noundef nonnull align 8 dereferenceable(264) %4559, ptr noundef nonnull align 1 dereferenceable(15) @.str.86, ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %467, ptr noundef nonnull align 1 dereferenceable(3) @.str.87)
          to label %4560 unwind label %4583

4560:                                             ; preds = %4557
  call void @llvm.lifetime.start.p0(i64 32, ptr %471) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %472) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %473) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %473)
          to label %4561 unwind label %4587

4561:                                             ; preds = %4560
  %4562 = load ptr, ptr %465, align 8, !tbaa !5
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %471, ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef nonnull align 8 dereferenceable(32) %4562)
          to label %4563 unwind label %4591

4563:                                             ; preds = %4561
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %469, ptr noundef nonnull align 8 dereferenceable(264) %4558, ptr noundef nonnull align 8 dereferenceable(16) %459, ptr noundef nonnull align 8 dereferenceable(16) %441, ptr noundef nonnull align 8 dereferenceable(16) %470, ptr noundef nonnull align 8 dereferenceable(32) %471)
          to label %4564 unwind label %4595

4564:                                             ; preds = %4563
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %471) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %473) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %472) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %471) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %470) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %470) #11
  %4565 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %460)
          to label %4566 unwind label %4602

4566:                                             ; preds = %4564
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4565, ptr noundef nonnull align 8 dereferenceable(16) %469)
          to label %4567 unwind label %4602

4567:                                             ; preds = %4566
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %469) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %469) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %467) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %467) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %466) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %464) #11
  br label %4568

4568:                                             ; preds = %4567
  %4569 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %462)
          to label %4570 unwind label %4544

4570:                                             ; preds = %4568
  br label %4458

4571:                                             ; preds = %4548
  %4572 = landingpad { ptr, i32 }
          cleanup
  %4573 = extractvalue { ptr, i32 } %4572, 0
  store ptr %4573, ptr %11, align 8
  %4574 = extractvalue { ptr, i32 } %4572, 1
  store i32 %4574, ptr %12, align 4
  br label %4608

4575:                                             ; preds = %4550
  %4576 = landingpad { ptr, i32 }
          cleanup
  %4577 = extractvalue { ptr, i32 } %4576, 0
  store ptr %4577, ptr %11, align 8
  %4578 = extractvalue { ptr, i32 } %4576, 1
  store i32 %4578, ptr %12, align 4
  br label %4607

4579:                                             ; preds = %4556
  %4580 = landingpad { ptr, i32 }
          cleanup
  %4581 = extractvalue { ptr, i32 } %4580, 0
  store ptr %4581, ptr %11, align 8
  %4582 = extractvalue { ptr, i32 } %4580, 1
  store i32 %4582, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %468) #11
  br label %4607

4583:                                             ; preds = %4557
  %4584 = landingpad { ptr, i32 }
          cleanup
  %4585 = extractvalue { ptr, i32 } %4584, 0
  store ptr %4585, ptr %11, align 8
  %4586 = extractvalue { ptr, i32 } %4584, 1
  store i32 %4586, ptr %12, align 4
  br label %4601

4587:                                             ; preds = %4560
  %4588 = landingpad { ptr, i32 }
          cleanup
  %4589 = extractvalue { ptr, i32 } %4588, 0
  store ptr %4589, ptr %11, align 8
  %4590 = extractvalue { ptr, i32 } %4588, 1
  store i32 %4590, ptr %12, align 4
  br label %4600

4591:                                             ; preds = %4561
  %4592 = landingpad { ptr, i32 }
          cleanup
  %4593 = extractvalue { ptr, i32 } %4592, 0
  store ptr %4593, ptr %11, align 8
  %4594 = extractvalue { ptr, i32 } %4592, 1
  store i32 %4594, ptr %12, align 4
  br label %4599

4595:                                             ; preds = %4563
  %4596 = landingpad { ptr, i32 }
          cleanup
  %4597 = extractvalue { ptr, i32 } %4596, 0
  store ptr %4597, ptr %11, align 8
  %4598 = extractvalue { ptr, i32 } %4596, 1
  store i32 %4598, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %471) #11
  br label %4599

4599:                                             ; preds = %4595, %4591
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #11
  br label %4600

4600:                                             ; preds = %4599, %4587
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %473) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %472) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %471) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %470) #11
  br label %4601

4601:                                             ; preds = %4600, %4583
  call void @llvm.lifetime.end.p0(i64 16, ptr %470) #11
  br label %4606

4602:                                             ; preds = %4566, %4564
  %4603 = landingpad { ptr, i32 }
          cleanup
  %4604 = extractvalue { ptr, i32 } %4603, 0
  store ptr %4604, ptr %11, align 8
  %4605 = extractvalue { ptr, i32 } %4603, 1
  store i32 %4605, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %469) #11
  br label %4606

4606:                                             ; preds = %4602, %4601
  call void @llvm.lifetime.end.p0(i64 16, ptr %469) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %467) #11
  br label %4607

4607:                                             ; preds = %4606, %4579, %4575
  call void @llvm.lifetime.end.p0(i64 16, ptr %467) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %466) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #11
  br label %4608

4608:                                             ; preds = %4607, %4571
  call void @llvm.lifetime.end.p0(i64 8, ptr %464) #11
  br label %4609

4609:                                             ; preds = %4608, %4544
  call void @llvm.lifetime.end.p0(i64 16, ptr %463) #11
  br label %4610

4610:                                             ; preds = %4609, %4540
  call void @llvm.lifetime.end.p0(i64 16, ptr %462) #11
  br label %4611

4611:                                             ; preds = %4610, %4536
  call void @llvm.lifetime.end.p0(i64 8, ptr %461) #11
  br label %11086

4612:                                             ; preds = %4461
  br label %4613

4613:                                             ; preds = %4612, %4433
  call void @llvm.lifetime.start.p0(i64 16, ptr %474) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %475) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %477) #11
  store i1 true, ptr %483, align 1
  store ptr %477, ptr %478, align 8
  %4614 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %480) #11
  call void @llvm.memset.p0.i64(ptr align 8 %480, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %480) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %479, ptr noundef nonnull align 8 dereferenceable(24) %480)
          to label %4615 unwind label %4700

4615:                                             ; preds = %4613
  call void @llvm.lifetime.start.p0(i64 1, ptr %482) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %482) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %481, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %482)
          to label %4616 unwind label %4704

4616:                                             ; preds = %4615
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %477, ptr noundef nonnull align 8 dereferenceable(264) %4614, ptr noundef %479, ptr noundef %481)
          to label %4617 unwind label %4708

4617:                                             ; preds = %4616
  store i1 false, ptr %483, align 1
  %4618 = getelementptr inbounds %"class.std::initializer_list", ptr %476, i32 0, i32 0
  store ptr %477, ptr %4618, align 8, !tbaa !11
  %4619 = getelementptr inbounds %"class.std::initializer_list", ptr %476, i32 0, i32 1
  store i64 1, ptr %4619, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %484) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %484) #11
  %4620 = getelementptr inbounds { ptr, i64 }, ptr %476, i32 0, i32 0
  %4621 = load ptr, ptr %4620, align 8
  %4622 = getelementptr inbounds { ptr, i64 }, ptr %476, i32 0, i32 1
  %4623 = load i64, ptr %4622, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %475, ptr %4621, i64 %4623, ptr noundef nonnull align 1 dereferenceable(1) %484)
          to label %4624 unwind label %4712

4624:                                             ; preds = %4617
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %474, ptr noundef nonnull align 8 dereferenceable(24) %475)
          to label %4625 unwind label %4716

4625:                                             ; preds = %4624
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %475) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %484) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %484) #11
  %4626 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %477, i32 0, i32 0
  %4627 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4626, i64 1
  br label %4628

4628:                                             ; preds = %4628, %4625
  %4629 = phi ptr [ %4627, %4625 ], [ %4630, %4628 ]
  %4630 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4629, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4630) #11
  %4631 = icmp eq ptr %4630, %4626
  br i1 %4631, label %4632, label %4628

4632:                                             ; preds = %4628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %481) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %482) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %482) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %479) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %480) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %480) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %477) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %475) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %485) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %486) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr %488) #11
  store i1 true, ptr %492, align 1
  store ptr %488, ptr %489, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %490) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %488, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %490)
          to label %4633 unwind label %4741

4633:                                             ; preds = %4632
  %4634 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %488, i64 1
  store ptr %4634, ptr %489, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %491) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4634, ptr noundef @.str.116, ptr noundef nonnull align 1 dereferenceable(1) %491)
          to label %4635 unwind label %4745

4635:                                             ; preds = %4633
  store i1 false, ptr %492, align 1
  %4636 = getelementptr inbounds %"class.std::initializer_list", ptr %487, i32 0, i32 0
  store ptr %488, ptr %4636, align 8, !tbaa !11
  %4637 = getelementptr inbounds %"class.std::initializer_list", ptr %487, i32 0, i32 1
  store i64 2, ptr %4637, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %493) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %493) #11
  %4638 = getelementptr inbounds { ptr, i64 }, ptr %487, i32 0, i32 0
  %4639 = load ptr, ptr %4638, align 8
  %4640 = getelementptr inbounds { ptr, i64 }, ptr %487, i32 0, i32 1
  %4641 = load i64, ptr %4640, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %486, ptr %4639, i64 %4641, ptr noundef nonnull align 1 dereferenceable(1) %493)
          to label %4642 unwind label %4749

4642:                                             ; preds = %4635
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %485, ptr noundef nonnull align 8 dereferenceable(24) %486)
          to label %4643 unwind label %4753

4643:                                             ; preds = %4642
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %486) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %493) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %493) #11
  %4644 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %488, i32 0, i32 0
  %4645 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4644, i64 2
  br label %4646

4646:                                             ; preds = %4646, %4643
  %4647 = phi ptr [ %4645, %4643 ], [ %4648, %4646 ]
  %4648 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4647, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4648) #11
  %4649 = icmp eq ptr %4648, %4644
  br i1 %4649, label %4650, label %4646

4650:                                             ; preds = %4646
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %490) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %488) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %486) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %494) #11
  %4651 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %494, ptr noundef nonnull align 8 dereferenceable(16) %485, ptr noundef nonnull align 8 dereferenceable(264) %4651)
          to label %4652 unwind label %4777

4652:                                             ; preds = %4650
  call void @llvm.lifetime.start.p0(i64 16, ptr %495) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %495)
          to label %4653 unwind label %4781

4653:                                             ; preds = %4652
  call void @llvm.lifetime.start.p0(i64 16, ptr %496) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %496)
          to label %4654 unwind label %4785

4654:                                             ; preds = %4653
  call void @llvm.lifetime.start.p0(i64 16, ptr %497) #11
  %4655 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %498) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %499) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %499) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef @.str.131, ptr noundef nonnull align 1 dereferenceable(1) %499)
          to label %4656 unwind label %4789

4656:                                             ; preds = %4654
  call void @llvm.lifetime.start.p0(i64 32, ptr %500) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %501) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %501) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %500, ptr noundef @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %501)
          to label %4657 unwind label %4793

4657:                                             ; preds = %4656
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEERNS8_INS_3VecISD_EEEERKNS8_INSE_IS7_EEEERKT_RKS7_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %497, ptr noundef nonnull align 8 dereferenceable(264) %4655, ptr noundef nonnull align 8 dereferenceable(16) %495, ptr noundef nonnull align 8 dereferenceable(16) %474, ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull align 8 dereferenceable(32) %500)
          to label %4658 unwind label %4797

4658:                                             ; preds = %4657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %500) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %501) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %501) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %500) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %498) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %499) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %499) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %498) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %502) #11
  %4659 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %503) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %504) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %504) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %503, ptr noundef @.str.132, ptr noundef nonnull align 1 dereferenceable(1) %504)
          to label %4660 unwind label %4803

4660:                                             ; preds = %4658
  call void @llvm.lifetime.start.p0(i64 32, ptr %505) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %506) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %506) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %505, ptr noundef @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %506)
          to label %4661 unwind label %4807

4661:                                             ; preds = %4660
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEERNS8_INS_3VecISD_EEEERKNS8_INSE_IS7_EEEERKT_RKS7_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %502, ptr noundef nonnull align 8 dereferenceable(264) %4659, ptr noundef nonnull align 8 dereferenceable(16) %495, ptr noundef nonnull align 8 dereferenceable(16) %474, ptr noundef nonnull align 8 dereferenceable(32) %503, ptr noundef nonnull align 8 dereferenceable(32) %505)
          to label %4662 unwind label %4811

4662:                                             ; preds = %4661
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %505) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %506) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %506) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %505) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %503) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %504) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %504) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %503) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %507) #11
  %4663 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %508) #11
  %4664 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %509) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %510)
          to label %4665 unwind label %4817

4665:                                             ; preds = %4662
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %511)
          to label %4666 unwind label %4821

4666:                                             ; preds = %4665
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %509, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %510, ptr noundef %511)
          to label %4667 unwind label %4825

4667:                                             ; preds = %4666
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %508, ptr noundef nonnull align 8 dereferenceable(264) %4664, ptr noundef nonnull align 8 dereferenceable(16) %509, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %4668 unwind label %4829

4668:                                             ; preds = %4667
  call void @llvm.lifetime.start.p0(i64 32, ptr %512) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %513) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %512, ptr noundef @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %513)
          to label %4669 unwind label %4833

4669:                                             ; preds = %4668
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %507, ptr noundef nonnull align 8 dereferenceable(264) %4663, ptr noundef nonnull align 8 dereferenceable(16) %495, ptr noundef nonnull align 8 dereferenceable(16) %474, ptr noundef nonnull align 8 dereferenceable(16) %508, ptr noundef nonnull align 8 dereferenceable(32) %512)
          to label %4670 unwind label %4837

4670:                                             ; preds = %4669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %512) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %513) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %512) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %508) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %509) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %511) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %510) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %509) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %508) #11
  %4671 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %4672 = trunc i8 %4671 to i1
  br i1 %4672, label %4673, label %5033

4673:                                             ; preds = %4670
  call void @llvm.lifetime.start.p0(i64 16, ptr %514) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %514)
          to label %4674 unwind label %4846

4674:                                             ; preds = %4673
  call void @llvm.lifetime.start.p0(i64 8, ptr %515) #11
  %4675 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %4676 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4675)
          to label %4677 unwind label %4850

4677:                                             ; preds = %4674
  %4678 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4676, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %4679 unwind label %4850

4679:                                             ; preds = %4677
  %4680 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %4678)
          to label %4681 unwind label %4850

4681:                                             ; preds = %4679
  store ptr %4680, ptr %515, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %516) #11
  %4682 = load ptr, ptr %515, align 8, !tbaa !5
  %4683 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %4682)
          to label %4684 unwind label %4854

4684:                                             ; preds = %4681
  %4685 = getelementptr inbounds { ptr, i64 }, ptr %516, i32 0, i32 0
  %4686 = extractvalue { ptr, i64 } %4683, 0
  store ptr %4686, ptr %4685, align 8
  %4687 = getelementptr inbounds { ptr, i64 }, ptr %516, i32 0, i32 1
  %4688 = extractvalue { ptr, i64 } %4683, 1
  store i64 %4688, ptr %4687, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %517) #11
  %4689 = load ptr, ptr %515, align 8, !tbaa !5
  %4690 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %4689)
          to label %4691 unwind label %4858

4691:                                             ; preds = %4684
  %4692 = getelementptr inbounds { ptr, i64 }, ptr %517, i32 0, i32 0
  %4693 = extractvalue { ptr, i64 } %4690, 0
  store ptr %4693, ptr %4692, align 8
  %4694 = getelementptr inbounds { ptr, i64 }, ptr %517, i32 0, i32 1
  %4695 = extractvalue { ptr, i64 } %4690, 1
  store i64 %4695, ptr %4694, align 8
  br label %4696

4696:                                             ; preds = %4904, %4691
  %4697 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %516, ptr noundef nonnull align 8 dereferenceable(16) %517)
          to label %4698 unwind label %4858

4698:                                             ; preds = %4696
  br i1 %4697, label %4862, label %4699

4699:                                             ; preds = %4698
  store i32 33, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %517) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %516) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %515) #11
  br label %4996

4700:                                             ; preds = %4613
  %4701 = landingpad { ptr, i32 }
          cleanup
  %4702 = extractvalue { ptr, i32 } %4701, 0
  store ptr %4702, ptr %11, align 8
  %4703 = extractvalue { ptr, i32 } %4701, 1
  store i32 %4703, ptr %12, align 4
  br label %4730

4704:                                             ; preds = %4615
  %4705 = landingpad { ptr, i32 }
          cleanup
  %4706 = extractvalue { ptr, i32 } %4705, 0
  store ptr %4706, ptr %11, align 8
  %4707 = extractvalue { ptr, i32 } %4705, 1
  store i32 %4707, ptr %12, align 4
  br label %4729

4708:                                             ; preds = %4616
  %4709 = landingpad { ptr, i32 }
          cleanup
  %4710 = extractvalue { ptr, i32 } %4709, 0
  store ptr %4710, ptr %11, align 8
  %4711 = extractvalue { ptr, i32 } %4709, 1
  store i32 %4711, ptr %12, align 4
  br label %4728

4712:                                             ; preds = %4617
  %4713 = landingpad { ptr, i32 }
          cleanup
  %4714 = extractvalue { ptr, i32 } %4713, 0
  store ptr %4714, ptr %11, align 8
  %4715 = extractvalue { ptr, i32 } %4713, 1
  store i32 %4715, ptr %12, align 4
  br label %4720

4716:                                             ; preds = %4624
  %4717 = landingpad { ptr, i32 }
          cleanup
  %4718 = extractvalue { ptr, i32 } %4717, 0
  store ptr %4718, ptr %11, align 8
  %4719 = extractvalue { ptr, i32 } %4717, 1
  store i32 %4719, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %475) #11
  br label %4720

4720:                                             ; preds = %4716, %4712
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %484) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %484) #11
  %4721 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %477, i32 0, i32 0
  %4722 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4721, i64 1
  br label %4723

4723:                                             ; preds = %4723, %4720
  %4724 = phi ptr [ %4722, %4720 ], [ %4725, %4723 ]
  %4725 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4724, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4725) #11
  %4726 = icmp eq ptr %4725, %4721
  br i1 %4726, label %4727, label %4723

4727:                                             ; preds = %4723
  br label %4728

4728:                                             ; preds = %4727, %4708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %481) #11
  br label %4729

4729:                                             ; preds = %4728, %4704
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %482) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %482) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %479) #11
  br label %4730

4730:                                             ; preds = %4729, %4700
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %480) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %480) #11
  %4731 = load i1, ptr %483, align 1
  br i1 %4731, label %4732, label %4740

4732:                                             ; preds = %4730
  %4733 = load ptr, ptr %478, align 8
  %4734 = icmp eq ptr %477, %4733
  br i1 %4734, label %4739, label %4735

4735:                                             ; preds = %4735, %4732
  %4736 = phi ptr [ %4733, %4732 ], [ %4737, %4735 ]
  %4737 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4736, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4737) #11
  %4738 = icmp eq ptr %4737, %477
  br i1 %4738, label %4739, label %4735

4739:                                             ; preds = %4735, %4732
  br label %4740

4740:                                             ; preds = %4739, %4730
  call void @llvm.lifetime.end.p0(i64 32, ptr %477) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %475) #11
  br label %11085

4741:                                             ; preds = %4632
  %4742 = landingpad { ptr, i32 }
          cleanup
  %4743 = extractvalue { ptr, i32 } %4742, 0
  store ptr %4743, ptr %11, align 8
  %4744 = extractvalue { ptr, i32 } %4742, 1
  store i32 %4744, ptr %12, align 4
  br label %4766

4745:                                             ; preds = %4633
  %4746 = landingpad { ptr, i32 }
          cleanup
  %4747 = extractvalue { ptr, i32 } %4746, 0
  store ptr %4747, ptr %11, align 8
  %4748 = extractvalue { ptr, i32 } %4746, 1
  store i32 %4748, ptr %12, align 4
  br label %4765

4749:                                             ; preds = %4635
  %4750 = landingpad { ptr, i32 }
          cleanup
  %4751 = extractvalue { ptr, i32 } %4750, 0
  store ptr %4751, ptr %11, align 8
  %4752 = extractvalue { ptr, i32 } %4750, 1
  store i32 %4752, ptr %12, align 4
  br label %4757

4753:                                             ; preds = %4642
  %4754 = landingpad { ptr, i32 }
          cleanup
  %4755 = extractvalue { ptr, i32 } %4754, 0
  store ptr %4755, ptr %11, align 8
  %4756 = extractvalue { ptr, i32 } %4754, 1
  store i32 %4756, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %486) #11
  br label %4757

4757:                                             ; preds = %4753, %4749
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %493) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %493) #11
  %4758 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %488, i32 0, i32 0
  %4759 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4758, i64 2
  br label %4760

4760:                                             ; preds = %4760, %4757
  %4761 = phi ptr [ %4759, %4757 ], [ %4762, %4760 ]
  %4762 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4761, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4762) #11
  %4763 = icmp eq ptr %4762, %4758
  br i1 %4763, label %4764, label %4760

4764:                                             ; preds = %4760
  br label %4765

4765:                                             ; preds = %4764, %4745
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #11
  br label %4766

4766:                                             ; preds = %4765, %4741
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %490) #11
  %4767 = load i1, ptr %492, align 1
  br i1 %4767, label %4768, label %4776

4768:                                             ; preds = %4766
  %4769 = load ptr, ptr %489, align 8
  %4770 = icmp eq ptr %488, %4769
  br i1 %4770, label %4775, label %4771

4771:                                             ; preds = %4771, %4768
  %4772 = phi ptr [ %4769, %4768 ], [ %4773, %4771 ]
  %4773 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4772, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4773) #11
  %4774 = icmp eq ptr %4773, %488
  br i1 %4774, label %4775, label %4771

4775:                                             ; preds = %4771, %4768
  br label %4776

4776:                                             ; preds = %4775, %4766
  call void @llvm.lifetime.end.p0(i64 64, ptr %488) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %486) #11
  br label %11084

4777:                                             ; preds = %4650
  %4778 = landingpad { ptr, i32 }
          cleanup
  %4779 = extractvalue { ptr, i32 } %4778, 0
  store ptr %4779, ptr %11, align 8
  %4780 = extractvalue { ptr, i32 } %4778, 1
  store i32 %4780, ptr %12, align 4
  br label %11083

4781:                                             ; preds = %4652
  %4782 = landingpad { ptr, i32 }
          cleanup
  %4783 = extractvalue { ptr, i32 } %4782, 0
  store ptr %4783, ptr %11, align 8
  %4784 = extractvalue { ptr, i32 } %4782, 1
  store i32 %4784, ptr %12, align 4
  br label %11082

4785:                                             ; preds = %4653
  %4786 = landingpad { ptr, i32 }
          cleanup
  %4787 = extractvalue { ptr, i32 } %4786, 0
  store ptr %4787, ptr %11, align 8
  %4788 = extractvalue { ptr, i32 } %4786, 1
  store i32 %4788, ptr %12, align 4
  br label %11081

4789:                                             ; preds = %4654
  %4790 = landingpad { ptr, i32 }
          cleanup
  %4791 = extractvalue { ptr, i32 } %4790, 0
  store ptr %4791, ptr %11, align 8
  %4792 = extractvalue { ptr, i32 } %4790, 1
  store i32 %4792, ptr %12, align 4
  br label %4802

4793:                                             ; preds = %4656
  %4794 = landingpad { ptr, i32 }
          cleanup
  %4795 = extractvalue { ptr, i32 } %4794, 0
  store ptr %4795, ptr %11, align 8
  %4796 = extractvalue { ptr, i32 } %4794, 1
  store i32 %4796, ptr %12, align 4
  br label %4801

4797:                                             ; preds = %4657
  %4798 = landingpad { ptr, i32 }
          cleanup
  %4799 = extractvalue { ptr, i32 } %4798, 0
  store ptr %4799, ptr %11, align 8
  %4800 = extractvalue { ptr, i32 } %4798, 1
  store i32 %4800, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %500) #11
  br label %4801

4801:                                             ; preds = %4797, %4793
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %501) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %501) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %500) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %498) #11
  br label %4802

4802:                                             ; preds = %4801, %4789
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %499) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %499) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %498) #11
  br label %11080

4803:                                             ; preds = %4658
  %4804 = landingpad { ptr, i32 }
          cleanup
  %4805 = extractvalue { ptr, i32 } %4804, 0
  store ptr %4805, ptr %11, align 8
  %4806 = extractvalue { ptr, i32 } %4804, 1
  store i32 %4806, ptr %12, align 4
  br label %4816

4807:                                             ; preds = %4660
  %4808 = landingpad { ptr, i32 }
          cleanup
  %4809 = extractvalue { ptr, i32 } %4808, 0
  store ptr %4809, ptr %11, align 8
  %4810 = extractvalue { ptr, i32 } %4808, 1
  store i32 %4810, ptr %12, align 4
  br label %4815

4811:                                             ; preds = %4661
  %4812 = landingpad { ptr, i32 }
          cleanup
  %4813 = extractvalue { ptr, i32 } %4812, 0
  store ptr %4813, ptr %11, align 8
  %4814 = extractvalue { ptr, i32 } %4812, 1
  store i32 %4814, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %505) #11
  br label %4815

4815:                                             ; preds = %4811, %4807
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %506) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %506) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %505) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %503) #11
  br label %4816

4816:                                             ; preds = %4815, %4803
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %504) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %504) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %503) #11
  br label %11079

4817:                                             ; preds = %4662
  %4818 = landingpad { ptr, i32 }
          cleanup
  %4819 = extractvalue { ptr, i32 } %4818, 0
  store ptr %4819, ptr %11, align 8
  %4820 = extractvalue { ptr, i32 } %4818, 1
  store i32 %4820, ptr %12, align 4
  br label %4845

4821:                                             ; preds = %4665
  %4822 = landingpad { ptr, i32 }
          cleanup
  %4823 = extractvalue { ptr, i32 } %4822, 0
  store ptr %4823, ptr %11, align 8
  %4824 = extractvalue { ptr, i32 } %4822, 1
  store i32 %4824, ptr %12, align 4
  br label %4844

4825:                                             ; preds = %4666
  %4826 = landingpad { ptr, i32 }
          cleanup
  %4827 = extractvalue { ptr, i32 } %4826, 0
  store ptr %4827, ptr %11, align 8
  %4828 = extractvalue { ptr, i32 } %4826, 1
  store i32 %4828, ptr %12, align 4
  br label %4843

4829:                                             ; preds = %4667
  %4830 = landingpad { ptr, i32 }
          cleanup
  %4831 = extractvalue { ptr, i32 } %4830, 0
  store ptr %4831, ptr %11, align 8
  %4832 = extractvalue { ptr, i32 } %4830, 1
  store i32 %4832, ptr %12, align 4
  br label %4842

4833:                                             ; preds = %4668
  %4834 = landingpad { ptr, i32 }
          cleanup
  %4835 = extractvalue { ptr, i32 } %4834, 0
  store ptr %4835, ptr %11, align 8
  %4836 = extractvalue { ptr, i32 } %4834, 1
  store i32 %4836, ptr %12, align 4
  br label %4841

4837:                                             ; preds = %4669
  %4838 = landingpad { ptr, i32 }
          cleanup
  %4839 = extractvalue { ptr, i32 } %4838, 0
  store ptr %4839, ptr %11, align 8
  %4840 = extractvalue { ptr, i32 } %4838, 1
  store i32 %4840, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %512) #11
  br label %4841

4841:                                             ; preds = %4837, %4833
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %513) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %512) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %508) #11
  br label %4842

4842:                                             ; preds = %4841, %4829
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %509) #11
  br label %4843

4843:                                             ; preds = %4842, %4825
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %511) #11
  br label %4844

4844:                                             ; preds = %4843, %4821
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %510) #11
  br label %4845

4845:                                             ; preds = %4844, %4817
  call void @llvm.lifetime.end.p0(i64 16, ptr %509) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %508) #11
  br label %11078

4846:                                             ; preds = %4673
  %4847 = landingpad { ptr, i32 }
          cleanup
  %4848 = extractvalue { ptr, i32 } %4847, 0
  store ptr %4848, ptr %11, align 8
  %4849 = extractvalue { ptr, i32 } %4847, 1
  store i32 %4849, ptr %12, align 4
  br label %5032

4850:                                             ; preds = %4679, %4677, %4674
  %4851 = landingpad { ptr, i32 }
          cleanup
  %4852 = extractvalue { ptr, i32 } %4851, 0
  store ptr %4852, ptr %11, align 8
  %4853 = extractvalue { ptr, i32 } %4851, 1
  store i32 %4853, ptr %12, align 4
  br label %4995

4854:                                             ; preds = %4681
  %4855 = landingpad { ptr, i32 }
          cleanup
  %4856 = extractvalue { ptr, i32 } %4855, 0
  store ptr %4856, ptr %11, align 8
  %4857 = extractvalue { ptr, i32 } %4855, 1
  store i32 %4857, ptr %12, align 4
  br label %4994

4858:                                             ; preds = %4902, %4696, %4684
  %4859 = landingpad { ptr, i32 }
          cleanup
  %4860 = extractvalue { ptr, i32 } %4859, 0
  store ptr %4860, ptr %11, align 8
  %4861 = extractvalue { ptr, i32 } %4859, 1
  store i32 %4861, ptr %12, align 4
  br label %4993

4862:                                             ; preds = %4698
  call void @llvm.lifetime.start.p0(i64 8, ptr %518) #11
  %4863 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %516)
          to label %4864 unwind label %4905

4864:                                             ; preds = %4862
  store ptr %4863, ptr %518, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %519) #11
  %4865 = load ptr, ptr %518, align 8, !tbaa !5
  %4866 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4865) #11
  store ptr %4866, ptr %519, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %520) #11
  %4867 = load ptr, ptr %518, align 8, !tbaa !5
  %4868 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4867) #11
  store ptr %4868, ptr %520, align 8, !tbaa !5
  %4869 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %514)
          to label %4870 unwind label %4909

4870:                                             ; preds = %4864
  call void @llvm.lifetime.start.p0(i64 16, ptr %521) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %522) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %523) #11
  %4871 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %524) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %525)
          to label %4872 unwind label %4913

4872:                                             ; preds = %4870
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %526)
          to label %4873 unwind label %4917

4873:                                             ; preds = %4872
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %524, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %525, ptr noundef %526)
          to label %4874 unwind label %4921

4874:                                             ; preds = %4873
  %4875 = load ptr, ptr %519, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %527) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %529) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %530) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %532) #11
  store ptr %532, ptr %533, align 8
  %4876 = load ptr, ptr %519, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %532, ptr noundef nonnull align 8 dereferenceable(32) %4876)
          to label %4877 unwind label %4925

4877:                                             ; preds = %4874
  %4878 = getelementptr inbounds %"class.std::initializer_list", ptr %531, i32 0, i32 0
  store ptr %532, ptr %4878, align 8, !tbaa !11
  %4879 = getelementptr inbounds %"class.std::initializer_list", ptr %531, i32 0, i32 1
  store i64 1, ptr %4879, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %534) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %534) #11
  %4880 = getelementptr inbounds { ptr, i64 }, ptr %531, i32 0, i32 0
  %4881 = load ptr, ptr %4880, align 8
  %4882 = getelementptr inbounds { ptr, i64 }, ptr %531, i32 0, i32 1
  %4883 = load i64, ptr %4882, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %530, ptr %4881, i64 %4883, ptr noundef nonnull align 1 dereferenceable(1) %534)
          to label %4884 unwind label %4936

4884:                                             ; preds = %4877
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %529, ptr noundef nonnull align 8 dereferenceable(24) %530)
          to label %4885 unwind label %4940

4885:                                             ; preds = %4884
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %528, ptr noundef nonnull align 8 dereferenceable(16) %529)
          to label %4886 unwind label %4944

4886:                                             ; preds = %4885
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %535)
          to label %4887 unwind label %4948

4887:                                             ; preds = %4886
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %527, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %528, ptr noundef %535)
          to label %4888 unwind label %4952

4888:                                             ; preds = %4887
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA18_cS9_A2_cS9_SJ_S9_SA_S9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %523, ptr noundef nonnull align 8 dereferenceable(264) %4871, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %524, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %4875, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 1 dereferenceable(18) @.str.133, ptr noundef nonnull align 8 dereferenceable(16) %497, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %502, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %507, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %527, ptr noundef nonnull align 1 dereferenceable(5) @.str.134, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %4889 unwind label %4956

4889:                                             ; preds = %4888
  %4890 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %523)
          to label %4891 unwind label %4960

4891:                                             ; preds = %4889
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.124") align 8 %522, ptr noundef nonnull align 8 dereferenceable(136) %4890)
          to label %4892 unwind label %4960

4892:                                             ; preds = %4891
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %521, ptr noundef nonnull align 8 dereferenceable(16) %522)
          to label %4893 unwind label %4964

4893:                                             ; preds = %4892
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4869, ptr noundef nonnull align 8 dereferenceable(16) %521)
          to label %4894 unwind label %4968

4894:                                             ; preds = %4893
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %521) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %522) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %523) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %527) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %535) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %528) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %529) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %530) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %534) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %534) #11
  %4895 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %532, i32 0, i32 0
  %4896 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4895, i64 1
  br label %4897

4897:                                             ; preds = %4897, %4894
  %4898 = phi ptr [ %4896, %4894 ], [ %4899, %4897 ]
  %4899 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4898, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4899) #11
  %4900 = icmp eq ptr %4899, %4895
  br i1 %4900, label %4901, label %4897

4901:                                             ; preds = %4897
  call void @llvm.lifetime.end.p0(i64 32, ptr %532) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %530) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %529) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %527) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %524) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %526) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %525) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %524) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %523) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %522) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %521) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %520) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %519) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %518) #11
  br label %4902

4902:                                             ; preds = %4901
  %4903 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %516)
          to label %4904 unwind label %4858

4904:                                             ; preds = %4902
  br label %4696

4905:                                             ; preds = %4862
  %4906 = landingpad { ptr, i32 }
          cleanup
  %4907 = extractvalue { ptr, i32 } %4906, 0
  store ptr %4907, ptr %11, align 8
  %4908 = extractvalue { ptr, i32 } %4906, 1
  store i32 %4908, ptr %12, align 4
  br label %4992

4909:                                             ; preds = %4864
  %4910 = landingpad { ptr, i32 }
          cleanup
  %4911 = extractvalue { ptr, i32 } %4910, 0
  store ptr %4911, ptr %11, align 8
  %4912 = extractvalue { ptr, i32 } %4910, 1
  store i32 %4912, ptr %12, align 4
  br label %4991

4913:                                             ; preds = %4870
  %4914 = landingpad { ptr, i32 }
          cleanup
  %4915 = extractvalue { ptr, i32 } %4914, 0
  store ptr %4915, ptr %11, align 8
  %4916 = extractvalue { ptr, i32 } %4914, 1
  store i32 %4916, ptr %12, align 4
  br label %4990

4917:                                             ; preds = %4872
  %4918 = landingpad { ptr, i32 }
          cleanup
  %4919 = extractvalue { ptr, i32 } %4918, 0
  store ptr %4919, ptr %11, align 8
  %4920 = extractvalue { ptr, i32 } %4918, 1
  store i32 %4920, ptr %12, align 4
  br label %4989

4921:                                             ; preds = %4873
  %4922 = landingpad { ptr, i32 }
          cleanup
  %4923 = extractvalue { ptr, i32 } %4922, 0
  store ptr %4923, ptr %11, align 8
  %4924 = extractvalue { ptr, i32 } %4922, 1
  store i32 %4924, ptr %12, align 4
  br label %4988

4925:                                             ; preds = %4874
  %4926 = landingpad { ptr, i32 }
          cleanup
  %4927 = extractvalue { ptr, i32 } %4926, 0
  store ptr %4927, ptr %11, align 8
  %4928 = extractvalue { ptr, i32 } %4926, 1
  store i32 %4928, ptr %12, align 4
  %4929 = load ptr, ptr %533, align 8
  %4930 = icmp eq ptr %532, %4929
  br i1 %4930, label %4935, label %4931

4931:                                             ; preds = %4931, %4925
  %4932 = phi ptr [ %4929, %4925 ], [ %4933, %4931 ]
  %4933 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4932, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4933) #11
  %4934 = icmp eq ptr %4933, %532
  br i1 %4934, label %4935, label %4931

4935:                                             ; preds = %4931, %4925
  br label %4987

4936:                                             ; preds = %4877
  %4937 = landingpad { ptr, i32 }
          cleanup
  %4938 = extractvalue { ptr, i32 } %4937, 0
  store ptr %4938, ptr %11, align 8
  %4939 = extractvalue { ptr, i32 } %4937, 1
  store i32 %4939, ptr %12, align 4
  br label %4979

4940:                                             ; preds = %4884
  %4941 = landingpad { ptr, i32 }
          cleanup
  %4942 = extractvalue { ptr, i32 } %4941, 0
  store ptr %4942, ptr %11, align 8
  %4943 = extractvalue { ptr, i32 } %4941, 1
  store i32 %4943, ptr %12, align 4
  br label %4978

4944:                                             ; preds = %4885
  %4945 = landingpad { ptr, i32 }
          cleanup
  %4946 = extractvalue { ptr, i32 } %4945, 0
  store ptr %4946, ptr %11, align 8
  %4947 = extractvalue { ptr, i32 } %4945, 1
  store i32 %4947, ptr %12, align 4
  br label %4977

4948:                                             ; preds = %4886
  %4949 = landingpad { ptr, i32 }
          cleanup
  %4950 = extractvalue { ptr, i32 } %4949, 0
  store ptr %4950, ptr %11, align 8
  %4951 = extractvalue { ptr, i32 } %4949, 1
  store i32 %4951, ptr %12, align 4
  br label %4976

4952:                                             ; preds = %4887
  %4953 = landingpad { ptr, i32 }
          cleanup
  %4954 = extractvalue { ptr, i32 } %4953, 0
  store ptr %4954, ptr %11, align 8
  %4955 = extractvalue { ptr, i32 } %4953, 1
  store i32 %4955, ptr %12, align 4
  br label %4975

4956:                                             ; preds = %4888
  %4957 = landingpad { ptr, i32 }
          cleanup
  %4958 = extractvalue { ptr, i32 } %4957, 0
  store ptr %4958, ptr %11, align 8
  %4959 = extractvalue { ptr, i32 } %4957, 1
  store i32 %4959, ptr %12, align 4
  br label %4974

4960:                                             ; preds = %4891, %4889
  %4961 = landingpad { ptr, i32 }
          cleanup
  %4962 = extractvalue { ptr, i32 } %4961, 0
  store ptr %4962, ptr %11, align 8
  %4963 = extractvalue { ptr, i32 } %4961, 1
  store i32 %4963, ptr %12, align 4
  br label %4973

4964:                                             ; preds = %4892
  %4965 = landingpad { ptr, i32 }
          cleanup
  %4966 = extractvalue { ptr, i32 } %4965, 0
  store ptr %4966, ptr %11, align 8
  %4967 = extractvalue { ptr, i32 } %4965, 1
  store i32 %4967, ptr %12, align 4
  br label %4972

4968:                                             ; preds = %4893
  %4969 = landingpad { ptr, i32 }
          cleanup
  %4970 = extractvalue { ptr, i32 } %4969, 0
  store ptr %4970, ptr %11, align 8
  %4971 = extractvalue { ptr, i32 } %4969, 1
  store i32 %4971, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %521) #11
  br label %4972

4972:                                             ; preds = %4968, %4964
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %522) #11
  br label %4973

4973:                                             ; preds = %4972, %4960
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %523) #11
  br label %4974

4974:                                             ; preds = %4973, %4956
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %527) #11
  br label %4975

4975:                                             ; preds = %4974, %4952
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %535) #11
  br label %4976

4976:                                             ; preds = %4975, %4948
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %528) #11
  br label %4977

4977:                                             ; preds = %4976, %4944
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %529) #11
  br label %4978

4978:                                             ; preds = %4977, %4940
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %530) #11
  br label %4979

4979:                                             ; preds = %4978, %4936
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %534) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %534) #11
  %4980 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %532, i32 0, i32 0
  %4981 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4980, i64 1
  br label %4982

4982:                                             ; preds = %4982, %4979
  %4983 = phi ptr [ %4981, %4979 ], [ %4984, %4982 ]
  %4984 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %4983, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4984) #11
  %4985 = icmp eq ptr %4984, %4980
  br i1 %4985, label %4986, label %4982

4986:                                             ; preds = %4982
  br label %4987

4987:                                             ; preds = %4986, %4935
  call void @llvm.lifetime.end.p0(i64 32, ptr %532) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %530) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %529) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %527) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %524) #11
  br label %4988

4988:                                             ; preds = %4987, %4921
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %526) #11
  br label %4989

4989:                                             ; preds = %4988, %4917
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %525) #11
  br label %4990

4990:                                             ; preds = %4989, %4913
  call void @llvm.lifetime.end.p0(i64 16, ptr %524) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %523) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %522) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %521) #11
  br label %4991

4991:                                             ; preds = %4990, %4909
  call void @llvm.lifetime.end.p0(i64 8, ptr %520) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %519) #11
  br label %4992

4992:                                             ; preds = %4991, %4905
  call void @llvm.lifetime.end.p0(i64 8, ptr %518) #11
  br label %4993

4993:                                             ; preds = %4992, %4858
  call void @llvm.lifetime.end.p0(i64 16, ptr %517) #11
  br label %4994

4994:                                             ; preds = %4993, %4854
  call void @llvm.lifetime.end.p0(i64 16, ptr %516) #11
  br label %4995

4995:                                             ; preds = %4994, %4850
  call void @llvm.lifetime.end.p0(i64 8, ptr %515) #11
  br label %5031

4996:                                             ; preds = %4699
  %4997 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %514)
          to label %4998 unwind label %5009

4998:                                             ; preds = %4996
  call void @llvm.lifetime.start.p0(i64 16, ptr %536) #11
  %4999 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %536, ptr noundef nonnull align 8 dereferenceable(264) %4999, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %5000 unwind label %5013

5000:                                             ; preds = %4998
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4997, ptr noundef nonnull align 8 dereferenceable(16) %536)
          to label %5001 unwind label %5017

5001:                                             ; preds = %5000
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %536) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %536) #11
  %5002 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5003 unwind label %5009

5003:                                             ; preds = %5001
  call void @llvm.lifetime.start.p0(i64 16, ptr %537) #11
  %5004 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5005 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %514)
          to label %5006 unwind label %5022

5006:                                             ; preds = %5003
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEES2_A4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %537, ptr noundef nonnull align 8 dereferenceable(264) %5004, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 8 dereferenceable(16) %507, ptr noundef nonnull align 1 dereferenceable(5) @.str.100, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %5005, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %5007 unwind label %5022

5007:                                             ; preds = %5006
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5002, ptr noundef nonnull align 8 dereferenceable(16) %537)
          to label %5008 unwind label %5026

5008:                                             ; preds = %5007
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %537) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %537) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %514) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %514) #11
  br label %5267

5009:                                             ; preds = %5001, %4996
  %5010 = landingpad { ptr, i32 }
          cleanup
  %5011 = extractvalue { ptr, i32 } %5010, 0
  store ptr %5011, ptr %11, align 8
  %5012 = extractvalue { ptr, i32 } %5010, 1
  store i32 %5012, ptr %12, align 4
  br label %5031

5013:                                             ; preds = %4998
  %5014 = landingpad { ptr, i32 }
          cleanup
  %5015 = extractvalue { ptr, i32 } %5014, 0
  store ptr %5015, ptr %11, align 8
  %5016 = extractvalue { ptr, i32 } %5014, 1
  store i32 %5016, ptr %12, align 4
  br label %5021

5017:                                             ; preds = %5000
  %5018 = landingpad { ptr, i32 }
          cleanup
  %5019 = extractvalue { ptr, i32 } %5018, 0
  store ptr %5019, ptr %11, align 8
  %5020 = extractvalue { ptr, i32 } %5018, 1
  store i32 %5020, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %536) #11
  br label %5021

5021:                                             ; preds = %5017, %5013
  call void @llvm.lifetime.end.p0(i64 16, ptr %536) #11
  br label %5031

5022:                                             ; preds = %5006, %5003
  %5023 = landingpad { ptr, i32 }
          cleanup
  %5024 = extractvalue { ptr, i32 } %5023, 0
  store ptr %5024, ptr %11, align 8
  %5025 = extractvalue { ptr, i32 } %5023, 1
  store i32 %5025, ptr %12, align 4
  br label %5030

5026:                                             ; preds = %5007
  %5027 = landingpad { ptr, i32 }
          cleanup
  %5028 = extractvalue { ptr, i32 } %5027, 0
  store ptr %5028, ptr %11, align 8
  %5029 = extractvalue { ptr, i32 } %5027, 1
  store i32 %5029, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %537) #11
  br label %5030

5030:                                             ; preds = %5026, %5022
  call void @llvm.lifetime.end.p0(i64 16, ptr %537) #11
  br label %5031

5031:                                             ; preds = %5030, %5021, %5009, %4995
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %514) #11
  br label %5032

5032:                                             ; preds = %5031, %4846
  call void @llvm.lifetime.end.p0(i64 16, ptr %514) #11
  br label %11077

5033:                                             ; preds = %4670
  %5034 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5035 unwind label %5055

5035:                                             ; preds = %5033
  call void @llvm.lifetime.start.p0(i64 16, ptr %538) #11
  %5036 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %539) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %540) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %541) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef @.str.135, ptr noundef nonnull align 1 dereferenceable(1) %541)
          to label %5037 unwind label %5059

5037:                                             ; preds = %5035
  call void @llvm.lifetime.start.p0(i64 32, ptr %542) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %543) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %544) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %544) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %543, ptr noundef @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %544)
          to label %5038 unwind label %5063

5038:                                             ; preds = %5037
  invoke void @_ZN6langcc16name_sep_to_joinERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKS7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %542, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(32) %543)
          to label %5039 unwind label %5067

5039:                                             ; preds = %5038
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %539, ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef nonnull align 8 dereferenceable(32) %542)
          to label %5040 unwind label %5071

5040:                                             ; preds = %5039
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %538, ptr noundef nonnull align 8 dereferenceable(264) %5036, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(7) @.str.121, ptr noundef nonnull align 8 dereferenceable(32) %539, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %5041 unwind label %5075

5041:                                             ; preds = %5040
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5034, ptr noundef nonnull align 8 dereferenceable(16) %538)
          to label %5042 unwind label %5079

5042:                                             ; preds = %5041
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %538) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %543) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %544) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %544) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %543) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %542) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %541) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %540) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %539) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %538) #11
  %5043 = load ptr, ptr %267, align 8, !tbaa !5
  %5044 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5043)
          to label %5045 unwind label %5055

5045:                                             ; preds = %5042
  %5046 = invoke noundef i64 @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5044)
          to label %5047 unwind label %5055

5047:                                             ; preds = %5045
  %5048 = icmp eq i64 %5046, 0
  br i1 %5048, label %5049, label %5097

5049:                                             ; preds = %5047
  %5050 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5051 unwind label %5055

5051:                                             ; preds = %5049
  call void @llvm.lifetime.start.p0(i64 16, ptr %545) #11
  %5052 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %545, ptr noundef nonnull align 8 dereferenceable(264) %5052, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(11) @.str.136)
          to label %5053 unwind label %5088

5053:                                             ; preds = %5051
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5050, ptr noundef nonnull align 8 dereferenceable(16) %545)
          to label %5054 unwind label %5092

5054:                                             ; preds = %5053
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %545) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %545) #11
  br label %5266

5055:                                             ; preds = %5267, %5049, %5045, %5042, %5033
  %5056 = landingpad { ptr, i32 }
          cleanup
  %5057 = extractvalue { ptr, i32 } %5056, 0
  store ptr %5057, ptr %11, align 8
  %5058 = extractvalue { ptr, i32 } %5056, 1
  store i32 %5058, ptr %12, align 4
  br label %11077

5059:                                             ; preds = %5035
  %5060 = landingpad { ptr, i32 }
          cleanup
  %5061 = extractvalue { ptr, i32 } %5060, 0
  store ptr %5061, ptr %11, align 8
  %5062 = extractvalue { ptr, i32 } %5060, 1
  store i32 %5062, ptr %12, align 4
  br label %5087

5063:                                             ; preds = %5037
  %5064 = landingpad { ptr, i32 }
          cleanup
  %5065 = extractvalue { ptr, i32 } %5064, 0
  store ptr %5065, ptr %11, align 8
  %5066 = extractvalue { ptr, i32 } %5064, 1
  store i32 %5066, ptr %12, align 4
  br label %5086

5067:                                             ; preds = %5038
  %5068 = landingpad { ptr, i32 }
          cleanup
  %5069 = extractvalue { ptr, i32 } %5068, 0
  store ptr %5069, ptr %11, align 8
  %5070 = extractvalue { ptr, i32 } %5068, 1
  store i32 %5070, ptr %12, align 4
  br label %5085

5071:                                             ; preds = %5039
  %5072 = landingpad { ptr, i32 }
          cleanup
  %5073 = extractvalue { ptr, i32 } %5072, 0
  store ptr %5073, ptr %11, align 8
  %5074 = extractvalue { ptr, i32 } %5072, 1
  store i32 %5074, ptr %12, align 4
  br label %5084

5075:                                             ; preds = %5040
  %5076 = landingpad { ptr, i32 }
          cleanup
  %5077 = extractvalue { ptr, i32 } %5076, 0
  store ptr %5077, ptr %11, align 8
  %5078 = extractvalue { ptr, i32 } %5076, 1
  store i32 %5078, ptr %12, align 4
  br label %5083

5079:                                             ; preds = %5041
  %5080 = landingpad { ptr, i32 }
          cleanup
  %5081 = extractvalue { ptr, i32 } %5080, 0
  store ptr %5081, ptr %11, align 8
  %5082 = extractvalue { ptr, i32 } %5080, 1
  store i32 %5082, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %538) #11
  br label %5083

5083:                                             ; preds = %5079, %5075
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #11
  br label %5084

5084:                                             ; preds = %5083, %5071
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #11
  br label %5085

5085:                                             ; preds = %5084, %5067
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %543) #11
  br label %5086

5086:                                             ; preds = %5085, %5063
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %544) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %544) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %543) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %542) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #11
  br label %5087

5087:                                             ; preds = %5086, %5059
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %541) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %540) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %539) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %538) #11
  br label %11077

5088:                                             ; preds = %5051
  %5089 = landingpad { ptr, i32 }
          cleanup
  %5090 = extractvalue { ptr, i32 } %5089, 0
  store ptr %5090, ptr %11, align 8
  %5091 = extractvalue { ptr, i32 } %5089, 1
  store i32 %5091, ptr %12, align 4
  br label %5096

5092:                                             ; preds = %5053
  %5093 = landingpad { ptr, i32 }
          cleanup
  %5094 = extractvalue { ptr, i32 } %5093, 0
  store ptr %5094, ptr %11, align 8
  %5095 = extractvalue { ptr, i32 } %5093, 1
  store i32 %5095, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %545) #11
  br label %5096

5096:                                             ; preds = %5092, %5088
  call void @llvm.lifetime.end.p0(i64 16, ptr %545) #11
  br label %11077

5097:                                             ; preds = %5047
  call void @llvm.lifetime.start.p0(i64 16, ptr %546) #11
  %5098 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %546, ptr noundef nonnull align 8 dereferenceable(264) %5098, ptr noundef nonnull align 1 dereferenceable(5) @.str.46, ptr noundef nonnull align 8 dereferenceable(16) %502, ptr noundef nonnull align 1 dereferenceable(10) @.str.137)
          to label %5099 unwind label %5114

5099:                                             ; preds = %5097
  call void @llvm.lifetime.start.p0(i64 8, ptr %547) #11
  %5100 = load ptr, ptr %267, align 8, !tbaa !5
  %5101 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %5100)
          to label %5102 unwind label %5118

5102:                                             ; preds = %5099
  store ptr %5101, ptr %547, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %548) #11
  %5103 = load ptr, ptr %547, align 8, !tbaa !5
  %5104 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %5103)
          to label %5105 unwind label %5122

5105:                                             ; preds = %5102
  store ptr %5104, ptr %548, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %549) #11
  %5106 = load ptr, ptr %547, align 8, !tbaa !5
  %5107 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %5106)
          to label %5108 unwind label %5126

5108:                                             ; preds = %5105
  store ptr %5107, ptr %549, align 8, !tbaa !5
  br label %5109

5109:                                             ; preds = %5159, %5108
  %5110 = load ptr, ptr %548, align 8, !tbaa !5
  %5111 = load ptr, ptr %549, align 8, !tbaa !5
  %5112 = icmp ne ptr %5110, %5111
  br i1 %5112, label %5130, label %5113

5113:                                             ; preds = %5109
  store i32 35, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %549) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %548) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #11
  br label %5231

5114:                                             ; preds = %5097
  %5115 = landingpad { ptr, i32 }
          cleanup
  %5116 = extractvalue { ptr, i32 } %5115, 0
  store ptr %5116, ptr %11, align 8
  %5117 = extractvalue { ptr, i32 } %5115, 1
  store i32 %5117, ptr %12, align 4
  br label %5265

5118:                                             ; preds = %5099
  %5119 = landingpad { ptr, i32 }
          cleanup
  %5120 = extractvalue { ptr, i32 } %5119, 0
  store ptr %5120, ptr %11, align 8
  %5121 = extractvalue { ptr, i32 } %5119, 1
  store i32 %5121, ptr %12, align 4
  br label %5230

5122:                                             ; preds = %5102
  %5123 = landingpad { ptr, i32 }
          cleanup
  %5124 = extractvalue { ptr, i32 } %5123, 0
  store ptr %5124, ptr %11, align 8
  %5125 = extractvalue { ptr, i32 } %5123, 1
  store i32 %5125, ptr %12, align 4
  br label %5229

5126:                                             ; preds = %5105
  %5127 = landingpad { ptr, i32 }
          cleanup
  %5128 = extractvalue { ptr, i32 } %5127, 0
  store ptr %5128, ptr %11, align 8
  %5129 = extractvalue { ptr, i32 } %5127, 1
  store i32 %5129, ptr %12, align 4
  br label %5228

5130:                                             ; preds = %5109
  call void @llvm.lifetime.start.p0(i64 8, ptr %550) #11
  %5131 = load ptr, ptr %548, align 8, !tbaa !5
  store ptr %5131, ptr %550, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %551) #11
  %5132 = load ptr, ptr %550, align 8, !tbaa !5
  %5133 = getelementptr inbounds %"struct.std::pair.109", ptr %5132, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %551, ptr noundef nonnull align 8 dereferenceable(32) %5133)
          to label %5134 unwind label %5162

5134:                                             ; preds = %5130
  %5135 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5136 unwind label %5166

5136:                                             ; preds = %5134
  call void @llvm.lifetime.start.p0(i64 16, ptr %552) #11
  %5137 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA19_cS8_A3_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %552, ptr noundef nonnull align 8 dereferenceable(264) %5137, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 8 dereferenceable(16) %546, ptr noundef nonnull align 1 dereferenceable(19) @.str.138, ptr noundef nonnull align 8 dereferenceable(16) %497, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %5138 unwind label %5170

5138:                                             ; preds = %5136
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5135, ptr noundef nonnull align 8 dereferenceable(16) %552)
          to label %5139 unwind label %5174

5139:                                             ; preds = %5138
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %552) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %552) #11
  %5140 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5141 unwind label %5166

5141:                                             ; preds = %5139
  call void @llvm.lifetime.start.p0(i64 16, ptr %553) #11
  %5142 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %554) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %555) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %556) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %556) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %555, ptr noundef @.str.140, ptr noundef nonnull align 1 dereferenceable(1) %556)
          to label %5143 unwind label %5179

5143:                                             ; preds = %5141
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %554, ptr noundef nonnull align 8 dereferenceable(32) %555, ptr noundef nonnull align 8 dereferenceable(32) %551)
          to label %5144 unwind label %5183

5144:                                             ; preds = %5143
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %553, ptr noundef nonnull align 8 dereferenceable(264) %5142, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 8 dereferenceable(16) %497, ptr noundef nonnull align 1 dereferenceable(3) @.str.139, ptr noundef nonnull align 8 dereferenceable(32) %554, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %5145 unwind label %5187

5145:                                             ; preds = %5144
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5140, ptr noundef nonnull align 8 dereferenceable(16) %553)
          to label %5146 unwind label %5191

5146:                                             ; preds = %5145
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %553) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %554) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %555) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %556) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %556) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %555) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %554) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %553) #11
  %5147 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5148 unwind label %5166

5148:                                             ; preds = %5146
  call void @llvm.lifetime.start.p0(i64 16, ptr %557) #11
  %5149 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %558) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %559) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %560) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %560) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %559, ptr noundef @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %560)
          to label %5150 unwind label %5198

5150:                                             ; preds = %5148
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %558, ptr noundef nonnull align 8 dereferenceable(32) %559, ptr noundef nonnull align 8 dereferenceable(32) %551)
          to label %5151 unwind label %5202

5151:                                             ; preds = %5150
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA18_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS9_SA_S9_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_EEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %557, ptr noundef nonnull align 8 dereferenceable(264) %5149, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(18) @.str.133, ptr noundef nonnull align 8 dereferenceable(16) %497, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %546, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %507, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %5152 unwind label %5206

5152:                                             ; preds = %5151
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5147, ptr noundef nonnull align 8 dereferenceable(16) %557)
          to label %5153 unwind label %5210

5153:                                             ; preds = %5152
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %557) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %559) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %560) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %560) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %559) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %558) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %557) #11
  %5154 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5155 unwind label %5166

5155:                                             ; preds = %5153
  call void @llvm.lifetime.start.p0(i64 16, ptr %561) #11
  %5156 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %561, ptr noundef nonnull align 8 dereferenceable(264) %5156, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(11) @.str.141)
          to label %5157 unwind label %5217

5157:                                             ; preds = %5155
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5154, ptr noundef nonnull align 8 dereferenceable(16) %561)
          to label %5158 unwind label %5221

5158:                                             ; preds = %5157
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %561) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %561) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %551) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %551) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %550) #11
  br label %5159

5159:                                             ; preds = %5158
  %5160 = load ptr, ptr %548, align 8, !tbaa !5
  %5161 = getelementptr inbounds %"struct.std::pair.109", ptr %5160, i32 1
  store ptr %5161, ptr %548, align 8, !tbaa !5
  br label %5109

5162:                                             ; preds = %5130
  %5163 = landingpad { ptr, i32 }
          cleanup
  %5164 = extractvalue { ptr, i32 } %5163, 0
  store ptr %5164, ptr %11, align 8
  %5165 = extractvalue { ptr, i32 } %5163, 1
  store i32 %5165, ptr %12, align 4
  br label %5227

5166:                                             ; preds = %5153, %5146, %5139, %5134
  %5167 = landingpad { ptr, i32 }
          cleanup
  %5168 = extractvalue { ptr, i32 } %5167, 0
  store ptr %5168, ptr %11, align 8
  %5169 = extractvalue { ptr, i32 } %5167, 1
  store i32 %5169, ptr %12, align 4
  br label %5226

5170:                                             ; preds = %5136
  %5171 = landingpad { ptr, i32 }
          cleanup
  %5172 = extractvalue { ptr, i32 } %5171, 0
  store ptr %5172, ptr %11, align 8
  %5173 = extractvalue { ptr, i32 } %5171, 1
  store i32 %5173, ptr %12, align 4
  br label %5178

5174:                                             ; preds = %5138
  %5175 = landingpad { ptr, i32 }
          cleanup
  %5176 = extractvalue { ptr, i32 } %5175, 0
  store ptr %5176, ptr %11, align 8
  %5177 = extractvalue { ptr, i32 } %5175, 1
  store i32 %5177, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %552) #11
  br label %5178

5178:                                             ; preds = %5174, %5170
  call void @llvm.lifetime.end.p0(i64 16, ptr %552) #11
  br label %5226

5179:                                             ; preds = %5141
  %5180 = landingpad { ptr, i32 }
          cleanup
  %5181 = extractvalue { ptr, i32 } %5180, 0
  store ptr %5181, ptr %11, align 8
  %5182 = extractvalue { ptr, i32 } %5180, 1
  store i32 %5182, ptr %12, align 4
  br label %5197

5183:                                             ; preds = %5143
  %5184 = landingpad { ptr, i32 }
          cleanup
  %5185 = extractvalue { ptr, i32 } %5184, 0
  store ptr %5185, ptr %11, align 8
  %5186 = extractvalue { ptr, i32 } %5184, 1
  store i32 %5186, ptr %12, align 4
  br label %5196

5187:                                             ; preds = %5144
  %5188 = landingpad { ptr, i32 }
          cleanup
  %5189 = extractvalue { ptr, i32 } %5188, 0
  store ptr %5189, ptr %11, align 8
  %5190 = extractvalue { ptr, i32 } %5188, 1
  store i32 %5190, ptr %12, align 4
  br label %5195

5191:                                             ; preds = %5145
  %5192 = landingpad { ptr, i32 }
          cleanup
  %5193 = extractvalue { ptr, i32 } %5192, 0
  store ptr %5193, ptr %11, align 8
  %5194 = extractvalue { ptr, i32 } %5192, 1
  store i32 %5194, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %553) #11
  br label %5195

5195:                                             ; preds = %5191, %5187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %554) #11
  br label %5196

5196:                                             ; preds = %5195, %5183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %555) #11
  br label %5197

5197:                                             ; preds = %5196, %5179
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %556) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %556) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %555) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %554) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %553) #11
  br label %5226

5198:                                             ; preds = %5148
  %5199 = landingpad { ptr, i32 }
          cleanup
  %5200 = extractvalue { ptr, i32 } %5199, 0
  store ptr %5200, ptr %11, align 8
  %5201 = extractvalue { ptr, i32 } %5199, 1
  store i32 %5201, ptr %12, align 4
  br label %5216

5202:                                             ; preds = %5150
  %5203 = landingpad { ptr, i32 }
          cleanup
  %5204 = extractvalue { ptr, i32 } %5203, 0
  store ptr %5204, ptr %11, align 8
  %5205 = extractvalue { ptr, i32 } %5203, 1
  store i32 %5205, ptr %12, align 4
  br label %5215

5206:                                             ; preds = %5151
  %5207 = landingpad { ptr, i32 }
          cleanup
  %5208 = extractvalue { ptr, i32 } %5207, 0
  store ptr %5208, ptr %11, align 8
  %5209 = extractvalue { ptr, i32 } %5207, 1
  store i32 %5209, ptr %12, align 4
  br label %5214

5210:                                             ; preds = %5152
  %5211 = landingpad { ptr, i32 }
          cleanup
  %5212 = extractvalue { ptr, i32 } %5211, 0
  store ptr %5212, ptr %11, align 8
  %5213 = extractvalue { ptr, i32 } %5211, 1
  store i32 %5213, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %557) #11
  br label %5214

5214:                                             ; preds = %5210, %5206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #11
  br label %5215

5215:                                             ; preds = %5214, %5202
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %559) #11
  br label %5216

5216:                                             ; preds = %5215, %5198
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %560) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %560) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %559) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %558) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %557) #11
  br label %5226

5217:                                             ; preds = %5155
  %5218 = landingpad { ptr, i32 }
          cleanup
  %5219 = extractvalue { ptr, i32 } %5218, 0
  store ptr %5219, ptr %11, align 8
  %5220 = extractvalue { ptr, i32 } %5218, 1
  store i32 %5220, ptr %12, align 4
  br label %5225

5221:                                             ; preds = %5157
  %5222 = landingpad { ptr, i32 }
          cleanup
  %5223 = extractvalue { ptr, i32 } %5222, 0
  store ptr %5223, ptr %11, align 8
  %5224 = extractvalue { ptr, i32 } %5222, 1
  store i32 %5224, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %561) #11
  br label %5225

5225:                                             ; preds = %5221, %5217
  call void @llvm.lifetime.end.p0(i64 16, ptr %561) #11
  br label %5226

5226:                                             ; preds = %5225, %5216, %5197, %5178, %5166
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %551) #11
  br label %5227

5227:                                             ; preds = %5226, %5162
  call void @llvm.lifetime.end.p0(i64 32, ptr %551) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %550) #11
  br label %5228

5228:                                             ; preds = %5227, %5126
  call void @llvm.lifetime.end.p0(i64 8, ptr %549) #11
  br label %5229

5229:                                             ; preds = %5228, %5122
  call void @llvm.lifetime.end.p0(i64 8, ptr %548) #11
  br label %5230

5230:                                             ; preds = %5229, %5118
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #11
  br label %5264

5231:                                             ; preds = %5113
  %5232 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5233 unwind label %5242

5233:                                             ; preds = %5231
  call void @llvm.lifetime.start.p0(i64 16, ptr %562) #11
  %5234 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA19_cS8_A3_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %562, ptr noundef nonnull align 8 dereferenceable(264) %5234, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 8 dereferenceable(16) %502, ptr noundef nonnull align 1 dereferenceable(19) @.str.138, ptr noundef nonnull align 8 dereferenceable(16) %497, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %5235 unwind label %5246

5235:                                             ; preds = %5233
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5232, ptr noundef nonnull align 8 dereferenceable(16) %562)
          to label %5236 unwind label %5250

5236:                                             ; preds = %5235
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %562) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %562) #11
  %5237 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
          to label %5238 unwind label %5242

5238:                                             ; preds = %5236
  call void @llvm.lifetime.start.p0(i64 16, ptr %563) #11
  %5239 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %563, ptr noundef nonnull align 8 dereferenceable(264) %5239, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(11) @.str.136)
          to label %5240 unwind label %5255

5240:                                             ; preds = %5238
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5237, ptr noundef nonnull align 8 dereferenceable(16) %563)
          to label %5241 unwind label %5259

5241:                                             ; preds = %5240
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %563) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %563) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %546) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %546) #11
  br label %5266

5242:                                             ; preds = %5236, %5231
  %5243 = landingpad { ptr, i32 }
          cleanup
  %5244 = extractvalue { ptr, i32 } %5243, 0
  store ptr %5244, ptr %11, align 8
  %5245 = extractvalue { ptr, i32 } %5243, 1
  store i32 %5245, ptr %12, align 4
  br label %5264

5246:                                             ; preds = %5233
  %5247 = landingpad { ptr, i32 }
          cleanup
  %5248 = extractvalue { ptr, i32 } %5247, 0
  store ptr %5248, ptr %11, align 8
  %5249 = extractvalue { ptr, i32 } %5247, 1
  store i32 %5249, ptr %12, align 4
  br label %5254

5250:                                             ; preds = %5235
  %5251 = landingpad { ptr, i32 }
          cleanup
  %5252 = extractvalue { ptr, i32 } %5251, 0
  store ptr %5252, ptr %11, align 8
  %5253 = extractvalue { ptr, i32 } %5251, 1
  store i32 %5253, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %562) #11
  br label %5254

5254:                                             ; preds = %5250, %5246
  call void @llvm.lifetime.end.p0(i64 16, ptr %562) #11
  br label %5264

5255:                                             ; preds = %5238
  %5256 = landingpad { ptr, i32 }
          cleanup
  %5257 = extractvalue { ptr, i32 } %5256, 0
  store ptr %5257, ptr %11, align 8
  %5258 = extractvalue { ptr, i32 } %5256, 1
  store i32 %5258, ptr %12, align 4
  br label %5263

5259:                                             ; preds = %5240
  %5260 = landingpad { ptr, i32 }
          cleanup
  %5261 = extractvalue { ptr, i32 } %5260, 0
  store ptr %5261, ptr %11, align 8
  %5262 = extractvalue { ptr, i32 } %5260, 1
  store i32 %5262, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %563) #11
  br label %5263

5263:                                             ; preds = %5259, %5255
  call void @llvm.lifetime.end.p0(i64 16, ptr %563) #11
  br label %5264

5264:                                             ; preds = %5263, %5254, %5242, %5230
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %546) #11
  br label %5265

5265:                                             ; preds = %5264, %5114
  call void @llvm.lifetime.end.p0(i64 16, ptr %546) #11
  br label %11077

5266:                                             ; preds = %5241, %5054
  br label %5267

5267:                                             ; preds = %5266, %5008
  %5268 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5269 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5268, i32 0, i32 2
  %5270 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5269)
          to label %5271 unwind label %5055

5271:                                             ; preds = %5267
  call void @llvm.lifetime.start.p0(i64 16, ptr %564) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %565) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %566) #11
  %5272 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %567) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %567)
          to label %5273 unwind label %5299

5273:                                             ; preds = %5271
  call void @llvm.lifetime.start.p0(i64 20, ptr %568) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %569) #11
  %5274 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %570) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %571) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %571)
          to label %5275 unwind label %5303

5275:                                             ; preds = %5273
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %569, ptr noundef nonnull align 8 dereferenceable(264) %5274, ptr noundef nonnull align 8 dereferenceable(32) %570)
          to label %5276 unwind label %5307

5276:                                             ; preds = %5275
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %568, ptr noundef nonnull align 8 dereferenceable(16) %569)
          to label %5277 unwind label %5311

5277:                                             ; preds = %5276
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %566, ptr noundef nonnull align 8 dereferenceable(264) %5272, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %567, ptr noundef nonnull align 4 dereferenceable(20) %568, ptr noundef nonnull align 8 dereferenceable(16) %485, ptr noundef nonnull align 8 dereferenceable(16) %495)
          to label %5278 unwind label %5315

5278:                                             ; preds = %5277
  %5279 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %566)
          to label %5280 unwind label %5319

5280:                                             ; preds = %5278
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %565, ptr noundef nonnull align 8 dereferenceable(136) %5279)
          to label %5281 unwind label %5319

5281:                                             ; preds = %5280
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %564, ptr noundef nonnull align 8 dereferenceable(16) %565)
          to label %5282 unwind label %5323

5282:                                             ; preds = %5281
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5270, ptr noundef nonnull align 8 dereferenceable(16) %564)
          to label %5283 unwind label %5327

5283:                                             ; preds = %5282
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %564) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %565) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %566) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %568) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %569) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %571) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %570) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %569) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %568) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %567) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %567) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %566) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %565) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %564) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %572) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %573, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %5284 unwind label %5338

5284:                                             ; preds = %5283
  invoke void @_ZN6langcc22dt_extract_def_methodsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.111") align 8 %572, ptr noundef %573, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %5285 unwind label %5342

5285:                                             ; preds = %5284
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %573) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %574) #11
  %5286 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry6Method2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %572)
          to label %5287 unwind label %5346

5287:                                             ; preds = %5285
  store ptr %5286, ptr %574, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %575) #11
  %5288 = load ptr, ptr %574, align 8, !tbaa !5
  %5289 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %5288)
          to label %5290 unwind label %5350

5290:                                             ; preds = %5287
  store ptr %5289, ptr %575, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %576) #11
  %5291 = load ptr, ptr %574, align 8, !tbaa !5
  %5292 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %5291)
          to label %5293 unwind label %5354

5293:                                             ; preds = %5290
  store ptr %5292, ptr %576, align 8, !tbaa !5
  br label %5294

5294:                                             ; preds = %5647, %5293
  %5295 = load ptr, ptr %575, align 8, !tbaa !5
  %5296 = load ptr, ptr %576, align 8, !tbaa !5
  %5297 = icmp ne ptr %5295, %5296
  br i1 %5297, label %5358, label %5298

5298:                                             ; preds = %5294
  store i32 37, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %576) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %575) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %574) #11
  br label %5684

5299:                                             ; preds = %5271
  %5300 = landingpad { ptr, i32 }
          cleanup
  %5301 = extractvalue { ptr, i32 } %5300, 0
  store ptr %5301, ptr %11, align 8
  %5302 = extractvalue { ptr, i32 } %5300, 1
  store i32 %5302, ptr %12, align 4
  br label %5337

5303:                                             ; preds = %5273
  %5304 = landingpad { ptr, i32 }
          cleanup
  %5305 = extractvalue { ptr, i32 } %5304, 0
  store ptr %5305, ptr %11, align 8
  %5306 = extractvalue { ptr, i32 } %5304, 1
  store i32 %5306, ptr %12, align 4
  br label %5336

5307:                                             ; preds = %5275
  %5308 = landingpad { ptr, i32 }
          cleanup
  %5309 = extractvalue { ptr, i32 } %5308, 0
  store ptr %5309, ptr %11, align 8
  %5310 = extractvalue { ptr, i32 } %5308, 1
  store i32 %5310, ptr %12, align 4
  br label %5335

5311:                                             ; preds = %5276
  %5312 = landingpad { ptr, i32 }
          cleanup
  %5313 = extractvalue { ptr, i32 } %5312, 0
  store ptr %5313, ptr %11, align 8
  %5314 = extractvalue { ptr, i32 } %5312, 1
  store i32 %5314, ptr %12, align 4
  br label %5334

5315:                                             ; preds = %5277
  %5316 = landingpad { ptr, i32 }
          cleanup
  %5317 = extractvalue { ptr, i32 } %5316, 0
  store ptr %5317, ptr %11, align 8
  %5318 = extractvalue { ptr, i32 } %5316, 1
  store i32 %5318, ptr %12, align 4
  br label %5333

5319:                                             ; preds = %5280, %5278
  %5320 = landingpad { ptr, i32 }
          cleanup
  %5321 = extractvalue { ptr, i32 } %5320, 0
  store ptr %5321, ptr %11, align 8
  %5322 = extractvalue { ptr, i32 } %5320, 1
  store i32 %5322, ptr %12, align 4
  br label %5332

5323:                                             ; preds = %5281
  %5324 = landingpad { ptr, i32 }
          cleanup
  %5325 = extractvalue { ptr, i32 } %5324, 0
  store ptr %5325, ptr %11, align 8
  %5326 = extractvalue { ptr, i32 } %5324, 1
  store i32 %5326, ptr %12, align 4
  br label %5331

5327:                                             ; preds = %5282
  %5328 = landingpad { ptr, i32 }
          cleanup
  %5329 = extractvalue { ptr, i32 } %5328, 0
  store ptr %5329, ptr %11, align 8
  %5330 = extractvalue { ptr, i32 } %5328, 1
  store i32 %5330, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %564) #11
  br label %5331

5331:                                             ; preds = %5327, %5323
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %565) #11
  br label %5332

5332:                                             ; preds = %5331, %5319
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %566) #11
  br label %5333

5333:                                             ; preds = %5332, %5315
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %568) #11
  br label %5334

5334:                                             ; preds = %5333, %5311
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %569) #11
  br label %5335

5335:                                             ; preds = %5334, %5307
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #11
  br label %5336

5336:                                             ; preds = %5335, %5303
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %571) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %570) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %569) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %568) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %567) #11
  br label %5337

5337:                                             ; preds = %5336, %5299
  call void @llvm.lifetime.end.p0(i64 16, ptr %567) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %566) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %565) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %564) #11
  br label %11077

5338:                                             ; preds = %5283
  %5339 = landingpad { ptr, i32 }
          cleanup
  %5340 = extractvalue { ptr, i32 } %5339, 0
  store ptr %5340, ptr %11, align 8
  %5341 = extractvalue { ptr, i32 } %5339, 1
  store i32 %5341, ptr %12, align 4
  br label %11076

5342:                                             ; preds = %5284
  %5343 = landingpad { ptr, i32 }
          cleanup
  %5344 = extractvalue { ptr, i32 } %5343, 0
  store ptr %5344, ptr %11, align 8
  %5345 = extractvalue { ptr, i32 } %5343, 1
  store i32 %5345, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %573) #11
  br label %11076

5346:                                             ; preds = %5285
  %5347 = landingpad { ptr, i32 }
          cleanup
  %5348 = extractvalue { ptr, i32 } %5347, 0
  store ptr %5348, ptr %11, align 8
  %5349 = extractvalue { ptr, i32 } %5347, 1
  store i32 %5349, ptr %12, align 4
  br label %5683

5350:                                             ; preds = %5287
  %5351 = landingpad { ptr, i32 }
          cleanup
  %5352 = extractvalue { ptr, i32 } %5351, 0
  store ptr %5352, ptr %11, align 8
  %5353 = extractvalue { ptr, i32 } %5351, 1
  store i32 %5353, ptr %12, align 4
  br label %5682

5354:                                             ; preds = %5290
  %5355 = landingpad { ptr, i32 }
          cleanup
  %5356 = extractvalue { ptr, i32 } %5355, 0
  store ptr %5356, ptr %11, align 8
  %5357 = extractvalue { ptr, i32 } %5355, 1
  store i32 %5357, ptr %12, align 4
  br label %5681

5358:                                             ; preds = %5294
  call void @llvm.lifetime.start.p0(i64 48, ptr %577) #11
  %5359 = load ptr, ptr %575, align 8, !tbaa !5
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %577, ptr noundef nonnull align 8 dereferenceable(48) %5359)
          to label %5360 unwind label %5406

5360:                                             ; preds = %5358
  call void @llvm.lifetime.start.p0(i64 8, ptr %578) #11
  %5361 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48) %577) #11
  store ptr %5361, ptr %578, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %579) #11
  %5362 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48) %577) #11
  store ptr %5362, ptr %579, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %580) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %580, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %5363 unwind label %5410

5363:                                             ; preds = %5360
  call void @llvm.lifetime.start.p0(i64 16, ptr %581) #11
  %5364 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %582) #11
  %5365 = load ptr, ptr %579, align 8, !tbaa !5
  %5366 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5365)
          to label %5367 unwind label %5414

5367:                                             ; preds = %5363
  %5368 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5366, i32 0, i32 3
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %582, ptr noundef nonnull align 8 dereferenceable(32) %5368)
          to label %5369 unwind label %5414

5369:                                             ; preds = %5367
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %581, ptr noundef nonnull align 8 dereferenceable(264) %5364, ptr noundef nonnull align 8 dereferenceable(32) %582)
          to label %5370 unwind label %5418

5370:                                             ; preds = %5369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %582) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %582) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %583) #11
  %5371 = load ptr, ptr %579, align 8, !tbaa !5
  %5372 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5371)
          to label %5373 unwind label %5423

5373:                                             ; preds = %5370
  %5374 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5372, i32 0, i32 5
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %584, ptr noundef nonnull align 8 dereferenceable(16) %5374)
          to label %5375 unwind label %5423

5375:                                             ; preds = %5373
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %583, ptr noundef %584, ptr noundef nonnull align 8 dereferenceable(16) %580, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %5376 unwind label %5427

5376:                                             ; preds = %5375
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %584) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %585) #11
  %5377 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5378 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5377, i32 0, i32 1
  %5379 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5378)
          to label %5380 unwind label %5431

5380:                                             ; preds = %5376
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE16make_lex_builderEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.83") align 8 %585, ptr noundef nonnull align 8 dereferenceable(32) %5379)
          to label %5381 unwind label %5431

5381:                                             ; preds = %5380
  %5382 = load ptr, ptr %579, align 8, !tbaa !5
  %5383 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5382)
          to label %5384 unwind label %5435

5384:                                             ; preds = %5381
  %5385 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5383, i32 0, i32 1
  %5386 = load i8, ptr %5385, align 4, !tbaa !22, !range !20, !noundef !21
  %5387 = trunc i8 %5386 to i1
  br i1 %5387, label %5388, label %5441

5388:                                             ; preds = %5384
  %5389 = load ptr, ptr %579, align 8, !tbaa !5
  %5390 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5389)
          to label %5391 unwind label %5435

5391:                                             ; preds = %5388
  %5392 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5390, i32 0, i32 2
  %5393 = load i8, ptr %5392, align 1, !tbaa !40, !range !20, !noundef !21
  %5394 = trunc i8 %5393 to i1
  br i1 %5394, label %5395, label %5441

5395:                                             ; preds = %5391
  %5396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6langcc13get_log_levelEv()
          to label %5397 unwind label %5435

5397:                                             ; preds = %5395
  %5398 = load i64, ptr %5396, align 8, !tbaa !15
  %5399 = icmp sle i64 -1, %5398
  br i1 %5399, label %5400, label %5439

5400:                                             ; preds = %5397
  %5401 = load ptr, ptr %579, align 8, !tbaa !5
  %5402 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5401)
          to label %5403 unwind label %5435

5403:                                             ; preds = %5400
  %5404 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5402, i32 0, i32 3
  invoke void @_ZN6langcc9log_innerIJA51_cNS_8StrSliceEEEEvlDpRKT_(i64 noundef -1, ptr noundef nonnull align 1 dereferenceable(51) @.str.142, ptr noundef nonnull align 8 dereferenceable(32) %5404)
          to label %5405 unwind label %5435

5405:                                             ; preds = %5403
  br label %5439

5406:                                             ; preds = %5358
  %5407 = landingpad { ptr, i32 }
          cleanup
  %5408 = extractvalue { ptr, i32 } %5407, 0
  store ptr %5408, ptr %11, align 8
  %5409 = extractvalue { ptr, i32 } %5407, 1
  store i32 %5409, ptr %12, align 4
  br label %5680

5410:                                             ; preds = %5360
  %5411 = landingpad { ptr, i32 }
          cleanup
  %5412 = extractvalue { ptr, i32 } %5411, 0
  store ptr %5412, ptr %11, align 8
  %5413 = extractvalue { ptr, i32 } %5411, 1
  store i32 %5413, ptr %12, align 4
  br label %5679

5414:                                             ; preds = %5367, %5363
  %5415 = landingpad { ptr, i32 }
          cleanup
  %5416 = extractvalue { ptr, i32 } %5415, 0
  store ptr %5416, ptr %11, align 8
  %5417 = extractvalue { ptr, i32 } %5415, 1
  store i32 %5417, ptr %12, align 4
  br label %5422

5418:                                             ; preds = %5369
  %5419 = landingpad { ptr, i32 }
          cleanup
  %5420 = extractvalue { ptr, i32 } %5419, 0
  store ptr %5420, ptr %11, align 8
  %5421 = extractvalue { ptr, i32 } %5419, 1
  store i32 %5421, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %582) #11
  br label %5422

5422:                                             ; preds = %5418, %5414
  call void @llvm.lifetime.end.p0(i64 32, ptr %582) #11
  br label %5678

5423:                                             ; preds = %5373, %5370
  %5424 = landingpad { ptr, i32 }
          cleanup
  %5425 = extractvalue { ptr, i32 } %5424, 0
  store ptr %5425, ptr %11, align 8
  %5426 = extractvalue { ptr, i32 } %5424, 1
  store i32 %5426, ptr %12, align 4
  br label %5677

5427:                                             ; preds = %5375
  %5428 = landingpad { ptr, i32 }
          cleanup
  %5429 = extractvalue { ptr, i32 } %5428, 0
  store ptr %5429, ptr %11, align 8
  %5430 = extractvalue { ptr, i32 } %5428, 1
  store i32 %5430, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %584) #11
  br label %5677

5431:                                             ; preds = %5380, %5376
  %5432 = landingpad { ptr, i32 }
          cleanup
  %5433 = extractvalue { ptr, i32 } %5432, 0
  store ptr %5433, ptr %11, align 8
  %5434 = extractvalue { ptr, i32 } %5432, 1
  store i32 %5434, ptr %12, align 4
  br label %5676

5435:                                             ; preds = %5475, %5471, %5455, %5448, %5441, %5439, %5403, %5400, %5395, %5388, %5381
  %5436 = landingpad { ptr, i32 }
          cleanup
  %5437 = extractvalue { ptr, i32 } %5436, 0
  store ptr %5437, ptr %11, align 8
  %5438 = extractvalue { ptr, i32 } %5436, 1
  store i32 %5438, ptr %12, align 4
  br label %5675

5439:                                             ; preds = %5405, %5397
  invoke void @_ZN6langcc2AXEv() #12
          to label %5440 unwind label %5435

5440:                                             ; preds = %5439
  unreachable

5441:                                             ; preds = %5391, %5384
  %5442 = load ptr, ptr %579, align 8, !tbaa !5
  %5443 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5442)
          to label %5444 unwind label %5435

5444:                                             ; preds = %5441
  %5445 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5443, i32 0, i32 1
  %5446 = load i8, ptr %5445, align 4, !tbaa !22, !range !20, !noundef !21
  %5447 = trunc i8 %5446 to i1
  br i1 %5447, label %5455, label %5448

5448:                                             ; preds = %5444
  %5449 = load ptr, ptr %579, align 8, !tbaa !5
  %5450 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5449)
          to label %5451 unwind label %5435

5451:                                             ; preds = %5448
  %5452 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5450, i32 0, i32 2
  %5453 = load i8, ptr %5452, align 1, !tbaa !40, !range !20, !noundef !21
  %5454 = trunc i8 %5453 to i1
  br i1 %5454, label %5455, label %5471

5455:                                             ; preds = %5451, %5444
  %5456 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5457 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5456, i32 0, i32 1
  %5458 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5457)
          to label %5459 unwind label %5435

5459:                                             ; preds = %5455
  call void @llvm.lifetime.start.p0(i64 1, ptr %587) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %587) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %586, ptr noundef @.str.143, ptr noundef nonnull align 1 dereferenceable(1) %587)
          to label %5460 unwind label %5462

5460:                                             ; preds = %5459
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5458, ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef %586)
          to label %5461 unwind label %5466

5461:                                             ; preds = %5460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %586) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %587) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %587) #11
  br label %5471

5462:                                             ; preds = %5459
  %5463 = landingpad { ptr, i32 }
          cleanup
  %5464 = extractvalue { ptr, i32 } %5463, 0
  store ptr %5464, ptr %11, align 8
  %5465 = extractvalue { ptr, i32 } %5463, 1
  store i32 %5465, ptr %12, align 4
  br label %5470

5466:                                             ; preds = %5460
  %5467 = landingpad { ptr, i32 }
          cleanup
  %5468 = extractvalue { ptr, i32 } %5467, 0
  store ptr %5468, ptr %11, align 8
  %5469 = extractvalue { ptr, i32 } %5467, 1
  store i32 %5469, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %586) #11
  br label %5470

5470:                                             ; preds = %5466, %5462
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %587) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %587) #11
  br label %5675

5471:                                             ; preds = %5461, %5451
  %5472 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5473 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5472, i32 0, i32 1
  %5474 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5473)
          to label %5475 unwind label %5435

5475:                                             ; preds = %5471
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJNS_6rc_ptrIS4_EEA2_cEEEvRNSA_INS_9LexOutputEEERKSB_DpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5474, ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef nonnull align 8 dereferenceable(16) %583, ptr noundef nonnull align 8 dereferenceable(16) %581, ptr noundef nonnull align 1 dereferenceable(2) @.str.52)
          to label %5476 unwind label %5435

5476:                                             ; preds = %5475
  call void @llvm.lifetime.start.p0(i64 1, ptr %588) #11
  store i8 1, ptr %588, align 1, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %589) #11
  %5477 = load ptr, ptr %579, align 8, !tbaa !5
  %5478 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5477)
          to label %5479 unwind label %5494

5479:                                             ; preds = %5476
  %5480 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5478, i32 0, i32 4
  %5481 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node5Param2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %5480)
          to label %5482 unwind label %5494

5482:                                             ; preds = %5479
  store ptr %5481, ptr %589, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %590) #11
  %5483 = load ptr, ptr %589, align 8, !tbaa !5
  %5484 = invoke noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node5Param2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %5483)
          to label %5485 unwind label %5498

5485:                                             ; preds = %5482
  store ptr %5484, ptr %590, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %591) #11
  %5486 = load ptr, ptr %589, align 8, !tbaa !5
  %5487 = invoke noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node5Param2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %5486)
          to label %5488 unwind label %5502

5488:                                             ; preds = %5485
  store ptr %5487, ptr %591, align 8, !tbaa !5
  br label %5489

5489:                                             ; preds = %5557, %5488
  %5490 = load ptr, ptr %590, align 8, !tbaa !5
  %5491 = load ptr, ptr %591, align 8, !tbaa !5
  %5492 = icmp ne ptr %5490, %5491
  br i1 %5492, label %5506, label %5493

5493:                                             ; preds = %5489
  store i32 39, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %591) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %590) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %589) #11
  br label %5593

5494:                                             ; preds = %5479, %5476
  %5495 = landingpad { ptr, i32 }
          cleanup
  %5496 = extractvalue { ptr, i32 } %5495, 0
  store ptr %5496, ptr %11, align 8
  %5497 = extractvalue { ptr, i32 } %5495, 1
  store i32 %5497, ptr %12, align 4
  br label %5592

5498:                                             ; preds = %5482
  %5499 = landingpad { ptr, i32 }
          cleanup
  %5500 = extractvalue { ptr, i32 } %5499, 0
  store ptr %5500, ptr %11, align 8
  %5501 = extractvalue { ptr, i32 } %5499, 1
  store i32 %5501, ptr %12, align 4
  br label %5591

5502:                                             ; preds = %5485
  %5503 = landingpad { ptr, i32 }
          cleanup
  %5504 = extractvalue { ptr, i32 } %5503, 0
  store ptr %5504, ptr %11, align 8
  %5505 = extractvalue { ptr, i32 } %5503, 1
  store i32 %5505, ptr %12, align 4
  br label %5590

5506:                                             ; preds = %5489
  call void @llvm.lifetime.start.p0(i64 16, ptr %592) #11
  %5507 = load ptr, ptr %590, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %592, ptr noundef nonnull align 8 dereferenceable(16) %5507)
          to label %5508 unwind label %5518

5508:                                             ; preds = %5506
  %5509 = load i8, ptr %588, align 1, !tbaa !18, !range !20, !noundef !21
  %5510 = trunc i8 %5509 to i1
  br i1 %5510, label %5535, label %5511

5511:                                             ; preds = %5508
  %5512 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5513 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5512, i32 0, i32 1
  %5514 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5513)
          to label %5515 unwind label %5522

5515:                                             ; preds = %5511
  call void @llvm.lifetime.start.p0(i64 1, ptr %594) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %594) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %593, ptr noundef @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %594)
          to label %5516 unwind label %5526

5516:                                             ; preds = %5515
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5514, ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef %593)
          to label %5517 unwind label %5530

5517:                                             ; preds = %5516
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %593) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %594) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %594) #11
  br label %5535

5518:                                             ; preds = %5506
  %5519 = landingpad { ptr, i32 }
          cleanup
  %5520 = extractvalue { ptr, i32 } %5519, 0
  store ptr %5520, ptr %11, align 8
  %5521 = extractvalue { ptr, i32 } %5519, 1
  store i32 %5521, ptr %12, align 4
  br label %5589

5522:                                             ; preds = %5511
  %5523 = landingpad { ptr, i32 }
          cleanup
  %5524 = extractvalue { ptr, i32 } %5523, 0
  store ptr %5524, ptr %11, align 8
  %5525 = extractvalue { ptr, i32 } %5523, 1
  store i32 %5525, ptr %12, align 4
  br label %5588

5526:                                             ; preds = %5515
  %5527 = landingpad { ptr, i32 }
          cleanup
  %5528 = extractvalue { ptr, i32 } %5527, 0
  store ptr %5528, ptr %11, align 8
  %5529 = extractvalue { ptr, i32 } %5527, 1
  store i32 %5529, ptr %12, align 4
  br label %5534

5530:                                             ; preds = %5516
  %5531 = landingpad { ptr, i32 }
          cleanup
  %5532 = extractvalue { ptr, i32 } %5531, 0
  store ptr %5532, ptr %11, align 8
  %5533 = extractvalue { ptr, i32 } %5531, 1
  store i32 %5533, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %593) #11
  br label %5534

5534:                                             ; preds = %5530, %5526
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %594) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %594) #11
  br label %5588

5535:                                             ; preds = %5517, %5508
  store i8 0, ptr %588, align 1, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 16, ptr %595) #11
  %5536 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %592)
          to label %5537 unwind label %5560

5537:                                             ; preds = %5535
  %5538 = getelementptr inbounds %"struct.lang::data::Node::Param::_T", ptr %5536, i32 0, i32 2
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %596, ptr noundef nonnull align 8 dereferenceable(16) %5538)
          to label %5539 unwind label %5560

5539:                                             ; preds = %5537
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %595, ptr noundef %596, ptr noundef nonnull align 8 dereferenceable(16) %580, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %5540 unwind label %5564

5540:                                             ; preds = %5539
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %596) #11
  %5541 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5542 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5541, i32 0, i32 1
  %5543 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5542)
          to label %5544 unwind label %5568

5544:                                             ; preds = %5540
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5543, ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef nonnull align 8 dereferenceable(16) %595)
          to label %5545 unwind label %5568

5545:                                             ; preds = %5544
  %5546 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5547 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5546, i32 0, i32 1
  %5548 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5547)
          to label %5549 unwind label %5568

5549:                                             ; preds = %5545
  call void @llvm.lifetime.start.p0(i64 16, ptr %597) #11
  %5550 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %598) #11
  %5551 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %592)
          to label %5552 unwind label %5572

5552:                                             ; preds = %5549
  %5553 = getelementptr inbounds %"struct.lang::data::Node::Param::_T", ptr %5551, i32 0, i32 1
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %598, ptr noundef nonnull align 8 dereferenceable(32) %5553)
          to label %5554 unwind label %5572

5554:                                             ; preds = %5552
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %597, ptr noundef nonnull align 8 dereferenceable(264) %5550, ptr noundef nonnull align 8 dereferenceable(32) %598)
          to label %5555 unwind label %5576

5555:                                             ; preds = %5554
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5548, ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef nonnull align 8 dereferenceable(16) %597)
          to label %5556 unwind label %5580

5556:                                             ; preds = %5555
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %597) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %598) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %598) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %597) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %595) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %595) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %592) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %592) #11
  br label %5557

5557:                                             ; preds = %5556
  %5558 = load ptr, ptr %590, align 8, !tbaa !5
  %5559 = getelementptr inbounds %"struct.langcc::rc_ptr.42", ptr %5558, i32 1
  store ptr %5559, ptr %590, align 8, !tbaa !5
  br label %5489

5560:                                             ; preds = %5537, %5535
  %5561 = landingpad { ptr, i32 }
          cleanup
  %5562 = extractvalue { ptr, i32 } %5561, 0
  store ptr %5562, ptr %11, align 8
  %5563 = extractvalue { ptr, i32 } %5561, 1
  store i32 %5563, ptr %12, align 4
  br label %5587

5564:                                             ; preds = %5539
  %5565 = landingpad { ptr, i32 }
          cleanup
  %5566 = extractvalue { ptr, i32 } %5565, 0
  store ptr %5566, ptr %11, align 8
  %5567 = extractvalue { ptr, i32 } %5565, 1
  store i32 %5567, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %596) #11
  br label %5587

5568:                                             ; preds = %5545, %5544, %5540
  %5569 = landingpad { ptr, i32 }
          cleanup
  %5570 = extractvalue { ptr, i32 } %5569, 0
  store ptr %5570, ptr %11, align 8
  %5571 = extractvalue { ptr, i32 } %5569, 1
  store i32 %5571, ptr %12, align 4
  br label %5586

5572:                                             ; preds = %5552, %5549
  %5573 = landingpad { ptr, i32 }
          cleanup
  %5574 = extractvalue { ptr, i32 } %5573, 0
  store ptr %5574, ptr %11, align 8
  %5575 = extractvalue { ptr, i32 } %5573, 1
  store i32 %5575, ptr %12, align 4
  br label %5585

5576:                                             ; preds = %5554
  %5577 = landingpad { ptr, i32 }
          cleanup
  %5578 = extractvalue { ptr, i32 } %5577, 0
  store ptr %5578, ptr %11, align 8
  %5579 = extractvalue { ptr, i32 } %5577, 1
  store i32 %5579, ptr %12, align 4
  br label %5584

5580:                                             ; preds = %5555
  %5581 = landingpad { ptr, i32 }
          cleanup
  %5582 = extractvalue { ptr, i32 } %5581, 0
  store ptr %5582, ptr %11, align 8
  %5583 = extractvalue { ptr, i32 } %5581, 1
  store i32 %5583, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %597) #11
  br label %5584

5584:                                             ; preds = %5580, %5576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %598) #11
  br label %5585

5585:                                             ; preds = %5584, %5572
  call void @llvm.lifetime.end.p0(i64 32, ptr %598) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %597) #11
  br label %5586

5586:                                             ; preds = %5585, %5568
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %595) #11
  br label %5587

5587:                                             ; preds = %5586, %5564, %5560
  call void @llvm.lifetime.end.p0(i64 16, ptr %595) #11
  br label %5588

5588:                                             ; preds = %5587, %5534, %5522
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %592) #11
  br label %5589

5589:                                             ; preds = %5588, %5518
  call void @llvm.lifetime.end.p0(i64 16, ptr %592) #11
  br label %5590

5590:                                             ; preds = %5589, %5502
  call void @llvm.lifetime.end.p0(i64 8, ptr %591) #11
  br label %5591

5591:                                             ; preds = %5590, %5498
  call void @llvm.lifetime.end.p0(i64 8, ptr %590) #11
  br label %5592

5592:                                             ; preds = %5591, %5494
  call void @llvm.lifetime.end.p0(i64 8, ptr %589) #11
  br label %5674

5593:                                             ; preds = %5493
  %5594 = load ptr, ptr %579, align 8, !tbaa !5
  %5595 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5594)
          to label %5596 unwind label %5607

5596:                                             ; preds = %5593
  %5597 = getelementptr inbounds %"struct.lang::data::Node::Entry::Method::_T", ptr %5595, i32 0, i32 2
  %5598 = load i8, ptr %5597, align 1, !tbaa !40, !range !20, !noundef !21
  %5599 = trunc i8 %5598 to i1
  br i1 %5599, label %5600, label %5620

5600:                                             ; preds = %5596
  %5601 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5602 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5601, i32 0, i32 1
  %5603 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5602)
          to label %5604 unwind label %5607

5604:                                             ; preds = %5600
  call void @llvm.lifetime.start.p0(i64 1, ptr %600) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %599, ptr noundef @.str.144, ptr noundef nonnull align 1 dereferenceable(1) %600)
          to label %5605 unwind label %5611

5605:                                             ; preds = %5604
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5603, ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef %599)
          to label %5606 unwind label %5615

5606:                                             ; preds = %5605
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %599) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %600) #11
  br label %5636

5607:                                             ; preds = %5636, %5620, %5600, %5593
  %5608 = landingpad { ptr, i32 }
          cleanup
  %5609 = extractvalue { ptr, i32 } %5608, 0
  store ptr %5609, ptr %11, align 8
  %5610 = extractvalue { ptr, i32 } %5608, 1
  store i32 %5610, ptr %12, align 4
  br label %5674

5611:                                             ; preds = %5604
  %5612 = landingpad { ptr, i32 }
          cleanup
  %5613 = extractvalue { ptr, i32 } %5612, 0
  store ptr %5613, ptr %11, align 8
  %5614 = extractvalue { ptr, i32 } %5612, 1
  store i32 %5614, ptr %12, align 4
  br label %5619

5615:                                             ; preds = %5605
  %5616 = landingpad { ptr, i32 }
          cleanup
  %5617 = extractvalue { ptr, i32 } %5616, 0
  store ptr %5617, ptr %11, align 8
  %5618 = extractvalue { ptr, i32 } %5616, 1
  store i32 %5618, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %599) #11
  br label %5619

5619:                                             ; preds = %5615, %5611
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %600) #11
  br label %5674

5620:                                             ; preds = %5596
  %5621 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5622 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5621, i32 0, i32 1
  %5623 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5622)
          to label %5624 unwind label %5607

5624:                                             ; preds = %5620
  call void @llvm.lifetime.start.p0(i64 1, ptr %602) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %601, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %602)
          to label %5625 unwind label %5627

5625:                                             ; preds = %5624
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5623, ptr noundef nonnull align 8 dereferenceable(16) %585, ptr noundef %601)
          to label %5626 unwind label %5631

5626:                                             ; preds = %5625
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %601) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %602) #11
  br label %5636

5627:                                             ; preds = %5624
  %5628 = landingpad { ptr, i32 }
          cleanup
  %5629 = extractvalue { ptr, i32 } %5628, 0
  store ptr %5629, ptr %11, align 8
  %5630 = extractvalue { ptr, i32 } %5628, 1
  store i32 %5630, ptr %12, align 4
  br label %5635

5631:                                             ; preds = %5625
  %5632 = landingpad { ptr, i32 }
          cleanup
  %5633 = extractvalue { ptr, i32 } %5632, 0
  store ptr %5633, ptr %11, align 8
  %5634 = extractvalue { ptr, i32 } %5632, 1
  store i32 %5634, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %601) #11
  br label %5635

5635:                                             ; preds = %5631, %5627
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %602) #11
  br label %5674

5636:                                             ; preds = %5626, %5606
  %5637 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %5638 unwind label %5607

5638:                                             ; preds = %5636
  call void @llvm.lifetime.start.p0(i64 16, ptr %603) #11
  %5639 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5640 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5639, i32 0, i32 1
  %5641 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5640)
          to label %5642 unwind label %5650

5642:                                             ; preds = %5638
  call void @llvm.lifetime.start.p0(i64 32, ptr %605) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %606) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %606) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %605, ptr noundef @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %606)
          to label %5643 unwind label %5654

5643:                                             ; preds = %5642
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %604, ptr noundef nonnull align 8 dereferenceable(32) %605)
          to label %5644 unwind label %5658

5644:                                             ; preds = %5643
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE8qq_innerENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_6rc_ptrINS_9LexOutputEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %603, ptr noundef nonnull align 8 dereferenceable(32) %5641, ptr noundef %604, ptr noundef nonnull align 8 dereferenceable(16) %585)
          to label %5645 unwind label %5662

5645:                                             ; preds = %5644
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5637, ptr noundef nonnull align 8 dereferenceable(16) %603)
          to label %5646 unwind label %5666

5646:                                             ; preds = %5645
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %603) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %604) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %605) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %606) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %606) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %605) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %603) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %588) #11
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %585) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %585) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %583) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %583) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %581) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %581) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %580) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %580) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %579) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %578) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %577) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %577) #11
  br label %5647

5647:                                             ; preds = %5646
  %5648 = load ptr, ptr %575, align 8, !tbaa !5
  %5649 = getelementptr inbounds %"struct.std::pair.115", ptr %5648, i32 1
  store ptr %5649, ptr %575, align 8, !tbaa !5
  br label %5294

5650:                                             ; preds = %5638
  %5651 = landingpad { ptr, i32 }
          cleanup
  %5652 = extractvalue { ptr, i32 } %5651, 0
  store ptr %5652, ptr %11, align 8
  %5653 = extractvalue { ptr, i32 } %5651, 1
  store i32 %5653, ptr %12, align 4
  br label %5673

5654:                                             ; preds = %5642
  %5655 = landingpad { ptr, i32 }
          cleanup
  %5656 = extractvalue { ptr, i32 } %5655, 0
  store ptr %5656, ptr %11, align 8
  %5657 = extractvalue { ptr, i32 } %5655, 1
  store i32 %5657, ptr %12, align 4
  br label %5672

5658:                                             ; preds = %5643
  %5659 = landingpad { ptr, i32 }
          cleanup
  %5660 = extractvalue { ptr, i32 } %5659, 0
  store ptr %5660, ptr %11, align 8
  %5661 = extractvalue { ptr, i32 } %5659, 1
  store i32 %5661, ptr %12, align 4
  br label %5671

5662:                                             ; preds = %5644
  %5663 = landingpad { ptr, i32 }
          cleanup
  %5664 = extractvalue { ptr, i32 } %5663, 0
  store ptr %5664, ptr %11, align 8
  %5665 = extractvalue { ptr, i32 } %5663, 1
  store i32 %5665, ptr %12, align 4
  br label %5670

5666:                                             ; preds = %5645
  %5667 = landingpad { ptr, i32 }
          cleanup
  %5668 = extractvalue { ptr, i32 } %5667, 0
  store ptr %5668, ptr %11, align 8
  %5669 = extractvalue { ptr, i32 } %5667, 1
  store i32 %5669, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %603) #11
  br label %5670

5670:                                             ; preds = %5666, %5662
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %604) #11
  br label %5671

5671:                                             ; preds = %5670, %5658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %605) #11
  br label %5672

5672:                                             ; preds = %5671, %5654
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %606) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %606) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %605) #11
  br label %5673

5673:                                             ; preds = %5672, %5650
  call void @llvm.lifetime.end.p0(i64 16, ptr %603) #11
  br label %5674

5674:                                             ; preds = %5673, %5635, %5619, %5607, %5592
  call void @llvm.lifetime.end.p0(i64 1, ptr %588) #11
  br label %5675

5675:                                             ; preds = %5674, %5470, %5435
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %585) #11
  br label %5676

5676:                                             ; preds = %5675, %5431
  call void @llvm.lifetime.end.p0(i64 16, ptr %585) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %583) #11
  br label %5677

5677:                                             ; preds = %5676, %5427, %5423
  call void @llvm.lifetime.end.p0(i64 16, ptr %583) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %581) #11
  br label %5678

5678:                                             ; preds = %5677, %5422
  call void @llvm.lifetime.end.p0(i64 16, ptr %581) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %580) #11
  br label %5679

5679:                                             ; preds = %5678, %5410
  call void @llvm.lifetime.end.p0(i64 16, ptr %580) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %579) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %578) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %577) #11
  br label %5680

5680:                                             ; preds = %5679, %5406
  call void @llvm.lifetime.end.p0(i64 48, ptr %577) #11
  br label %5681

5681:                                             ; preds = %5680, %5354
  call void @llvm.lifetime.end.p0(i64 8, ptr %576) #11
  br label %5682

5682:                                             ; preds = %5681, %5350
  call void @llvm.lifetime.end.p0(i64 8, ptr %575) #11
  br label %5683

5683:                                             ; preds = %5682, %5346
  call void @llvm.lifetime.end.p0(i64 8, ptr %574) #11
  br label %11075

5684:                                             ; preds = %5298
  call void @llvm.lifetime.start.p0(i64 16, ptr %607) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %608) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %610) #11
  store i1 true, ptr %616, align 1
  store ptr %610, ptr %611, align 8
  %5685 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %613) #11
  call void @llvm.memset.p0.i64(ptr align 8 %613, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %613) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %612, ptr noundef nonnull align 8 dereferenceable(24) %613)
          to label %5686 unwind label %5793

5686:                                             ; preds = %5684
  call void @llvm.lifetime.start.p0(i64 1, ptr %615) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %614, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %615)
          to label %5687 unwind label %5797

5687:                                             ; preds = %5686
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %610, ptr noundef nonnull align 8 dereferenceable(264) %5685, ptr noundef %612, ptr noundef %614)
          to label %5688 unwind label %5801

5688:                                             ; preds = %5687
  store i1 false, ptr %616, align 1
  %5689 = getelementptr inbounds %"class.std::initializer_list", ptr %609, i32 0, i32 0
  store ptr %610, ptr %5689, align 8, !tbaa !11
  %5690 = getelementptr inbounds %"class.std::initializer_list", ptr %609, i32 0, i32 1
  store i64 1, ptr %5690, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %617) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #11
  %5691 = getelementptr inbounds { ptr, i64 }, ptr %609, i32 0, i32 0
  %5692 = load ptr, ptr %5691, align 8
  %5693 = getelementptr inbounds { ptr, i64 }, ptr %609, i32 0, i32 1
  %5694 = load i64, ptr %5693, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %608, ptr %5692, i64 %5694, ptr noundef nonnull align 1 dereferenceable(1) %617)
          to label %5695 unwind label %5805

5695:                                             ; preds = %5688
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %607, ptr noundef nonnull align 8 dereferenceable(24) %608)
          to label %5696 unwind label %5809

5696:                                             ; preds = %5695
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %608) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %617) #11
  %5697 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %610, i32 0, i32 0
  %5698 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5697, i64 1
  br label %5699

5699:                                             ; preds = %5699, %5696
  %5700 = phi ptr [ %5698, %5696 ], [ %5701, %5699 ]
  %5701 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5700, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5701) #11
  %5702 = icmp eq ptr %5701, %5697
  br i1 %5702, label %5703, label %5699

5703:                                             ; preds = %5699
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %614) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %615) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %612) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %613) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %613) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %610) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %608) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %618) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %619)
          to label %5704 unwind label %5834

5704:                                             ; preds = %5703
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %618, i32 noundef 23, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %619)
          to label %5705 unwind label %5838

5705:                                             ; preds = %5704
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %619) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %620) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %621)
          to label %5706 unwind label %5842

5706:                                             ; preds = %5705
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %622)
          to label %5707 unwind label %5846

5707:                                             ; preds = %5706
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %620, i32 noundef 22, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %621, ptr noundef %622)
          to label %5708 unwind label %5850

5708:                                             ; preds = %5707
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %622) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %621) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %623) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %624)
          to label %5709 unwind label %5855

5709:                                             ; preds = %5708
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %625)
          to label %5710 unwind label %5859

5710:                                             ; preds = %5709
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %623, i32 noundef 23, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %624, ptr noundef %625)
          to label %5711 unwind label %5863

5711:                                             ; preds = %5710
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %625) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %624) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %626) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %626)
          to label %5712 unwind label %5868

5712:                                             ; preds = %5711
  call void @llvm.lifetime.start.p0(i64 16, ptr %627) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %627)
          to label %5713 unwind label %5872

5713:                                             ; preds = %5712
  call void @llvm.lifetime.start.p0(i64 16, ptr %628) #11
  %5714 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %629) #11
  %5715 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5716 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5715, i32 0, i32 1
  %5717 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5716)
          to label %5718 unwind label %5876

5718:                                             ; preds = %5713
  call void @llvm.lifetime.start.p0(i64 32, ptr %630) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %631) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %631) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %630, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %631)
          to label %5719 unwind label %5880

5719:                                             ; preds = %5718
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE2qqIJA16_cEEENS_6rc_ptrIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %629, ptr noundef nonnull align 8 dereferenceable(32) %5717, ptr noundef nonnull align 8 dereferenceable(32) %630, ptr noundef nonnull align 1 dereferenceable(16) @.str.112)
          to label %5720 unwind label %5884

5720:                                             ; preds = %5719
  call void @llvm.lifetime.start.p0(i64 32, ptr %632) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %633) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %633) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %632, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %633)
          to label %5721 unwind label %5888

5721:                                             ; preds = %5720
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %628, ptr noundef nonnull align 8 dereferenceable(264) %5714, ptr noundef nonnull align 8 dereferenceable(16) %627, ptr noundef nonnull align 8 dereferenceable(16) %607, ptr noundef nonnull align 8 dereferenceable(16) %629, ptr noundef nonnull align 8 dereferenceable(32) %632)
          to label %5722 unwind label %5892

5722:                                             ; preds = %5721
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %632) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %633) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %633) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %632) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %629) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %630) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %631) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %631) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %630) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %629) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %634) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %635) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %637) #11
  store i1 true, ptr %643, align 1
  store ptr %637, ptr %638, align 8
  %5723 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 24, ptr %640) #11
  call void @llvm.memset.p0.i64(ptr align 8 %640, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %640) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %639, ptr noundef nonnull align 8 dereferenceable(24) %640)
          to label %5724 unwind label %5900

5724:                                             ; preds = %5722
  call void @llvm.lifetime.start.p0(i64 1, ptr %642) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %642) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %642)
          to label %5725 unwind label %5904

5725:                                             ; preds = %5724
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %637, ptr noundef nonnull align 8 dereferenceable(264) %5723, ptr noundef %639, ptr noundef %641)
          to label %5726 unwind label %5908

5726:                                             ; preds = %5725
  store i1 false, ptr %643, align 1
  %5727 = getelementptr inbounds %"class.std::initializer_list", ptr %636, i32 0, i32 0
  store ptr %637, ptr %5727, align 8, !tbaa !11
  %5728 = getelementptr inbounds %"class.std::initializer_list", ptr %636, i32 0, i32 1
  store i64 1, ptr %5728, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %644) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %644) #11
  %5729 = getelementptr inbounds { ptr, i64 }, ptr %636, i32 0, i32 0
  %5730 = load ptr, ptr %5729, align 8
  %5731 = getelementptr inbounds { ptr, i64 }, ptr %636, i32 0, i32 1
  %5732 = load i64, ptr %5731, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %635, ptr %5730, i64 %5732, ptr noundef nonnull align 1 dereferenceable(1) %644)
          to label %5733 unwind label %5912

5733:                                             ; preds = %5726
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %634, ptr noundef nonnull align 8 dereferenceable(24) %635)
          to label %5734 unwind label %5916

5734:                                             ; preds = %5733
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %635) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %644) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %644) #11
  %5735 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %637, i32 0, i32 0
  %5736 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5735, i64 1
  br label %5737

5737:                                             ; preds = %5737, %5734
  %5738 = phi ptr [ %5736, %5734 ], [ %5739, %5737 ]
  %5739 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5738, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5739) #11
  %5740 = icmp eq ptr %5739, %5735
  br i1 %5740, label %5741, label %5737

5741:                                             ; preds = %5737
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %642) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %642) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %639) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %640) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %640) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %637) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %635) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %645) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %646)
          to label %5742 unwind label %5941

5742:                                             ; preds = %5741
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %645, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %646)
          to label %5743 unwind label %5945

5743:                                             ; preds = %5742
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %646) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %647) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %648)
          to label %5744 unwind label %5949

5744:                                             ; preds = %5743
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %649)
          to label %5745 unwind label %5953

5745:                                             ; preds = %5744
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %647, i32 noundef 20, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %648, ptr noundef %649)
          to label %5746 unwind label %5957

5746:                                             ; preds = %5745
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %649) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %648) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %650) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %651)
          to label %5747 unwind label %5962

5747:                                             ; preds = %5746
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %652)
          to label %5748 unwind label %5966

5748:                                             ; preds = %5747
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %650, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %651, ptr noundef %652)
          to label %5749 unwind label %5970

5749:                                             ; preds = %5748
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %652) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %651) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %653) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %654)
          to label %5750 unwind label %5975

5750:                                             ; preds = %5749
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %655, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %5751 unwind label %5979

5751:                                             ; preds = %5750
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %653, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %654, ptr noundef %655)
          to label %5752 unwind label %5983

5752:                                             ; preds = %5751
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %655) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %654) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %656) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %656)
          to label %5753 unwind label %5988

5753:                                             ; preds = %5752
  call void @llvm.lifetime.start.p0(i64 16, ptr %657) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %657)
          to label %5754 unwind label %5992

5754:                                             ; preds = %5753
  call void @llvm.lifetime.start.p0(i64 16, ptr %658) #11
  %5755 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %659) #11
  %5756 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %5757 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %5756, i32 0, i32 1
  %5758 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5757)
          to label %5759 unwind label %5996

5759:                                             ; preds = %5754
  call void @llvm.lifetime.start.p0(i64 32, ptr %660) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %661) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %660, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %661)
          to label %5760 unwind label %6000

5760:                                             ; preds = %5759
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE2qqIJA16_cEEENS_6rc_ptrIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %659, ptr noundef nonnull align 8 dereferenceable(32) %5758, ptr noundef nonnull align 8 dereferenceable(32) %660, ptr noundef nonnull align 1 dereferenceable(16) @.str.112)
          to label %5761 unwind label %6004

5761:                                             ; preds = %5760
  call void @llvm.lifetime.start.p0(i64 32, ptr %662) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %663) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %663) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %662, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %663)
          to label %5762 unwind label %6008

5762:                                             ; preds = %5761
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %658, ptr noundef nonnull align 8 dereferenceable(264) %5755, ptr noundef nonnull align 8 dereferenceable(16) %657, ptr noundef nonnull align 8 dereferenceable(16) %634, ptr noundef nonnull align 8 dereferenceable(16) %659, ptr noundef nonnull align 8 dereferenceable(32) %662)
          to label %5763 unwind label %6012

5763:                                             ; preds = %5762
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %662) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %663) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %663) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %662) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %659) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %661) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %660) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %659) #11
  %5764 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %5765 = trunc i8 %5764 to i1
  br i1 %5765, label %5766, label %7096

5766:                                             ; preds = %5763
  call void @llvm.lifetime.start.p0(i64 16, ptr %664) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %664)
          to label %5767 unwind label %6020

5767:                                             ; preds = %5766
  call void @llvm.lifetime.start.p0(i64 8, ptr %665) #11
  %5768 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %5769 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %5768)
          to label %5770 unwind label %6024

5770:                                             ; preds = %5767
  %5771 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %5769, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %5772 unwind label %6024

5772:                                             ; preds = %5770
  %5773 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %5771)
          to label %5774 unwind label %6024

5774:                                             ; preds = %5772
  store ptr %5773, ptr %665, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %666) #11
  %5775 = load ptr, ptr %665, align 8, !tbaa !5
  %5776 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %5775)
          to label %5777 unwind label %6028

5777:                                             ; preds = %5774
  %5778 = getelementptr inbounds { ptr, i64 }, ptr %666, i32 0, i32 0
  %5779 = extractvalue { ptr, i64 } %5776, 0
  store ptr %5779, ptr %5778, align 8
  %5780 = getelementptr inbounds { ptr, i64 }, ptr %666, i32 0, i32 1
  %5781 = extractvalue { ptr, i64 } %5776, 1
  store i64 %5781, ptr %5780, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %667) #11
  %5782 = load ptr, ptr %665, align 8, !tbaa !5
  %5783 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %5782)
          to label %5784 unwind label %6032

5784:                                             ; preds = %5777
  %5785 = getelementptr inbounds { ptr, i64 }, ptr %667, i32 0, i32 0
  %5786 = extractvalue { ptr, i64 } %5783, 0
  store ptr %5786, ptr %5785, align 8
  %5787 = getelementptr inbounds { ptr, i64 }, ptr %667, i32 0, i32 1
  %5788 = extractvalue { ptr, i64 } %5783, 1
  store i64 %5788, ptr %5787, align 8
  br label %5789

5789:                                             ; preds = %6051, %5784
  %5790 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %666, ptr noundef nonnull align 8 dereferenceable(16) %667)
          to label %5791 unwind label %6032

5791:                                             ; preds = %5789
  br i1 %5790, label %6036, label %5792

5792:                                             ; preds = %5791
  store i32 41, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %667) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %666) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %665) #11
  br label %6074

5793:                                             ; preds = %5684
  %5794 = landingpad { ptr, i32 }
          cleanup
  %5795 = extractvalue { ptr, i32 } %5794, 0
  store ptr %5795, ptr %11, align 8
  %5796 = extractvalue { ptr, i32 } %5794, 1
  store i32 %5796, ptr %12, align 4
  br label %5823

5797:                                             ; preds = %5686
  %5798 = landingpad { ptr, i32 }
          cleanup
  %5799 = extractvalue { ptr, i32 } %5798, 0
  store ptr %5799, ptr %11, align 8
  %5800 = extractvalue { ptr, i32 } %5798, 1
  store i32 %5800, ptr %12, align 4
  br label %5822

5801:                                             ; preds = %5687
  %5802 = landingpad { ptr, i32 }
          cleanup
  %5803 = extractvalue { ptr, i32 } %5802, 0
  store ptr %5803, ptr %11, align 8
  %5804 = extractvalue { ptr, i32 } %5802, 1
  store i32 %5804, ptr %12, align 4
  br label %5821

5805:                                             ; preds = %5688
  %5806 = landingpad { ptr, i32 }
          cleanup
  %5807 = extractvalue { ptr, i32 } %5806, 0
  store ptr %5807, ptr %11, align 8
  %5808 = extractvalue { ptr, i32 } %5806, 1
  store i32 %5808, ptr %12, align 4
  br label %5813

5809:                                             ; preds = %5695
  %5810 = landingpad { ptr, i32 }
          cleanup
  %5811 = extractvalue { ptr, i32 } %5810, 0
  store ptr %5811, ptr %11, align 8
  %5812 = extractvalue { ptr, i32 } %5810, 1
  store i32 %5812, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %608) #11
  br label %5813

5813:                                             ; preds = %5809, %5805
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %617) #11
  %5814 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %610, i32 0, i32 0
  %5815 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5814, i64 1
  br label %5816

5816:                                             ; preds = %5816, %5813
  %5817 = phi ptr [ %5815, %5813 ], [ %5818, %5816 ]
  %5818 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5817, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5818) #11
  %5819 = icmp eq ptr %5818, %5814
  br i1 %5819, label %5820, label %5816

5820:                                             ; preds = %5816
  br label %5821

5821:                                             ; preds = %5820, %5801
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %614) #11
  br label %5822

5822:                                             ; preds = %5821, %5797
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %615) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %612) #11
  br label %5823

5823:                                             ; preds = %5822, %5793
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %613) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %613) #11
  %5824 = load i1, ptr %616, align 1
  br i1 %5824, label %5825, label %5833

5825:                                             ; preds = %5823
  %5826 = load ptr, ptr %611, align 8
  %5827 = icmp eq ptr %610, %5826
  br i1 %5827, label %5832, label %5828

5828:                                             ; preds = %5828, %5825
  %5829 = phi ptr [ %5826, %5825 ], [ %5830, %5828 ]
  %5830 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5829, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5830) #11
  %5831 = icmp eq ptr %5830, %610
  br i1 %5831, label %5832, label %5828

5832:                                             ; preds = %5828, %5825
  br label %5833

5833:                                             ; preds = %5832, %5823
  call void @llvm.lifetime.end.p0(i64 32, ptr %610) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %608) #11
  br label %11074

5834:                                             ; preds = %5703
  %5835 = landingpad { ptr, i32 }
          cleanup
  %5836 = extractvalue { ptr, i32 } %5835, 0
  store ptr %5836, ptr %11, align 8
  %5837 = extractvalue { ptr, i32 } %5835, 1
  store i32 %5837, ptr %12, align 4
  br label %11073

5838:                                             ; preds = %5704
  %5839 = landingpad { ptr, i32 }
          cleanup
  %5840 = extractvalue { ptr, i32 } %5839, 0
  store ptr %5840, ptr %11, align 8
  %5841 = extractvalue { ptr, i32 } %5839, 1
  store i32 %5841, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %619) #11
  br label %11073

5842:                                             ; preds = %5705
  %5843 = landingpad { ptr, i32 }
          cleanup
  %5844 = extractvalue { ptr, i32 } %5843, 0
  store ptr %5844, ptr %11, align 8
  %5845 = extractvalue { ptr, i32 } %5843, 1
  store i32 %5845, ptr %12, align 4
  br label %11072

5846:                                             ; preds = %5706
  %5847 = landingpad { ptr, i32 }
          cleanup
  %5848 = extractvalue { ptr, i32 } %5847, 0
  store ptr %5848, ptr %11, align 8
  %5849 = extractvalue { ptr, i32 } %5847, 1
  store i32 %5849, ptr %12, align 4
  br label %5854

5850:                                             ; preds = %5707
  %5851 = landingpad { ptr, i32 }
          cleanup
  %5852 = extractvalue { ptr, i32 } %5851, 0
  store ptr %5852, ptr %11, align 8
  %5853 = extractvalue { ptr, i32 } %5851, 1
  store i32 %5853, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %622) #11
  br label %5854

5854:                                             ; preds = %5850, %5846
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %621) #11
  br label %11072

5855:                                             ; preds = %5708
  %5856 = landingpad { ptr, i32 }
          cleanup
  %5857 = extractvalue { ptr, i32 } %5856, 0
  store ptr %5857, ptr %11, align 8
  %5858 = extractvalue { ptr, i32 } %5856, 1
  store i32 %5858, ptr %12, align 4
  br label %11071

5859:                                             ; preds = %5709
  %5860 = landingpad { ptr, i32 }
          cleanup
  %5861 = extractvalue { ptr, i32 } %5860, 0
  store ptr %5861, ptr %11, align 8
  %5862 = extractvalue { ptr, i32 } %5860, 1
  store i32 %5862, ptr %12, align 4
  br label %5867

5863:                                             ; preds = %5710
  %5864 = landingpad { ptr, i32 }
          cleanup
  %5865 = extractvalue { ptr, i32 } %5864, 0
  store ptr %5865, ptr %11, align 8
  %5866 = extractvalue { ptr, i32 } %5864, 1
  store i32 %5866, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %625) #11
  br label %5867

5867:                                             ; preds = %5863, %5859
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %624) #11
  br label %11071

5868:                                             ; preds = %5711
  %5869 = landingpad { ptr, i32 }
          cleanup
  %5870 = extractvalue { ptr, i32 } %5869, 0
  store ptr %5870, ptr %11, align 8
  %5871 = extractvalue { ptr, i32 } %5869, 1
  store i32 %5871, ptr %12, align 4
  br label %11070

5872:                                             ; preds = %5712
  %5873 = landingpad { ptr, i32 }
          cleanup
  %5874 = extractvalue { ptr, i32 } %5873, 0
  store ptr %5874, ptr %11, align 8
  %5875 = extractvalue { ptr, i32 } %5873, 1
  store i32 %5875, ptr %12, align 4
  br label %11069

5876:                                             ; preds = %5713
  %5877 = landingpad { ptr, i32 }
          cleanup
  %5878 = extractvalue { ptr, i32 } %5877, 0
  store ptr %5878, ptr %11, align 8
  %5879 = extractvalue { ptr, i32 } %5877, 1
  store i32 %5879, ptr %12, align 4
  br label %5899

5880:                                             ; preds = %5718
  %5881 = landingpad { ptr, i32 }
          cleanup
  %5882 = extractvalue { ptr, i32 } %5881, 0
  store ptr %5882, ptr %11, align 8
  %5883 = extractvalue { ptr, i32 } %5881, 1
  store i32 %5883, ptr %12, align 4
  br label %5898

5884:                                             ; preds = %5719
  %5885 = landingpad { ptr, i32 }
          cleanup
  %5886 = extractvalue { ptr, i32 } %5885, 0
  store ptr %5886, ptr %11, align 8
  %5887 = extractvalue { ptr, i32 } %5885, 1
  store i32 %5887, ptr %12, align 4
  br label %5897

5888:                                             ; preds = %5720
  %5889 = landingpad { ptr, i32 }
          cleanup
  %5890 = extractvalue { ptr, i32 } %5889, 0
  store ptr %5890, ptr %11, align 8
  %5891 = extractvalue { ptr, i32 } %5889, 1
  store i32 %5891, ptr %12, align 4
  br label %5896

5892:                                             ; preds = %5721
  %5893 = landingpad { ptr, i32 }
          cleanup
  %5894 = extractvalue { ptr, i32 } %5893, 0
  store ptr %5894, ptr %11, align 8
  %5895 = extractvalue { ptr, i32 } %5893, 1
  store i32 %5895, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %632) #11
  br label %5896

5896:                                             ; preds = %5892, %5888
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %633) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %633) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %632) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %629) #11
  br label %5897

5897:                                             ; preds = %5896, %5884
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %630) #11
  br label %5898

5898:                                             ; preds = %5897, %5880
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %631) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %631) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %630) #11
  br label %5899

5899:                                             ; preds = %5898, %5876
  call void @llvm.lifetime.end.p0(i64 16, ptr %629) #11
  br label %11068

5900:                                             ; preds = %5722
  %5901 = landingpad { ptr, i32 }
          cleanup
  %5902 = extractvalue { ptr, i32 } %5901, 0
  store ptr %5902, ptr %11, align 8
  %5903 = extractvalue { ptr, i32 } %5901, 1
  store i32 %5903, ptr %12, align 4
  br label %5930

5904:                                             ; preds = %5724
  %5905 = landingpad { ptr, i32 }
          cleanup
  %5906 = extractvalue { ptr, i32 } %5905, 0
  store ptr %5906, ptr %11, align 8
  %5907 = extractvalue { ptr, i32 } %5905, 1
  store i32 %5907, ptr %12, align 4
  br label %5929

5908:                                             ; preds = %5725
  %5909 = landingpad { ptr, i32 }
          cleanup
  %5910 = extractvalue { ptr, i32 } %5909, 0
  store ptr %5910, ptr %11, align 8
  %5911 = extractvalue { ptr, i32 } %5909, 1
  store i32 %5911, ptr %12, align 4
  br label %5928

5912:                                             ; preds = %5726
  %5913 = landingpad { ptr, i32 }
          cleanup
  %5914 = extractvalue { ptr, i32 } %5913, 0
  store ptr %5914, ptr %11, align 8
  %5915 = extractvalue { ptr, i32 } %5913, 1
  store i32 %5915, ptr %12, align 4
  br label %5920

5916:                                             ; preds = %5733
  %5917 = landingpad { ptr, i32 }
          cleanup
  %5918 = extractvalue { ptr, i32 } %5917, 0
  store ptr %5918, ptr %11, align 8
  %5919 = extractvalue { ptr, i32 } %5917, 1
  store i32 %5919, ptr %12, align 4
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %635) #11
  br label %5920

5920:                                             ; preds = %5916, %5912
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %644) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %644) #11
  %5921 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %637, i32 0, i32 0
  %5922 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5921, i64 1
  br label %5923

5923:                                             ; preds = %5923, %5920
  %5924 = phi ptr [ %5922, %5920 ], [ %5925, %5923 ]
  %5925 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5924, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5925) #11
  %5926 = icmp eq ptr %5925, %5921
  br i1 %5926, label %5927, label %5923

5927:                                             ; preds = %5923
  br label %5928

5928:                                             ; preds = %5927, %5908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #11
  br label %5929

5929:                                             ; preds = %5928, %5904
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %642) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %642) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %639) #11
  br label %5930

5930:                                             ; preds = %5929, %5900
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %640) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %640) #11
  %5931 = load i1, ptr %643, align 1
  br i1 %5931, label %5932, label %5940

5932:                                             ; preds = %5930
  %5933 = load ptr, ptr %638, align 8
  %5934 = icmp eq ptr %637, %5933
  br i1 %5934, label %5939, label %5935

5935:                                             ; preds = %5935, %5932
  %5936 = phi ptr [ %5933, %5932 ], [ %5937, %5935 ]
  %5937 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5936, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5937) #11
  %5938 = icmp eq ptr %5937, %637
  br i1 %5938, label %5939, label %5935

5939:                                             ; preds = %5935, %5932
  br label %5940

5940:                                             ; preds = %5939, %5930
  call void @llvm.lifetime.end.p0(i64 32, ptr %637) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %635) #11
  br label %11067

5941:                                             ; preds = %5741
  %5942 = landingpad { ptr, i32 }
          cleanup
  %5943 = extractvalue { ptr, i32 } %5942, 0
  store ptr %5943, ptr %11, align 8
  %5944 = extractvalue { ptr, i32 } %5942, 1
  store i32 %5944, ptr %12, align 4
  br label %11066

5945:                                             ; preds = %5742
  %5946 = landingpad { ptr, i32 }
          cleanup
  %5947 = extractvalue { ptr, i32 } %5946, 0
  store ptr %5947, ptr %11, align 8
  %5948 = extractvalue { ptr, i32 } %5946, 1
  store i32 %5948, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %646) #11
  br label %11066

5949:                                             ; preds = %5743
  %5950 = landingpad { ptr, i32 }
          cleanup
  %5951 = extractvalue { ptr, i32 } %5950, 0
  store ptr %5951, ptr %11, align 8
  %5952 = extractvalue { ptr, i32 } %5950, 1
  store i32 %5952, ptr %12, align 4
  br label %11065

5953:                                             ; preds = %5744
  %5954 = landingpad { ptr, i32 }
          cleanup
  %5955 = extractvalue { ptr, i32 } %5954, 0
  store ptr %5955, ptr %11, align 8
  %5956 = extractvalue { ptr, i32 } %5954, 1
  store i32 %5956, ptr %12, align 4
  br label %5961

5957:                                             ; preds = %5745
  %5958 = landingpad { ptr, i32 }
          cleanup
  %5959 = extractvalue { ptr, i32 } %5958, 0
  store ptr %5959, ptr %11, align 8
  %5960 = extractvalue { ptr, i32 } %5958, 1
  store i32 %5960, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %649) #11
  br label %5961

5961:                                             ; preds = %5957, %5953
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %648) #11
  br label %11065

5962:                                             ; preds = %5746
  %5963 = landingpad { ptr, i32 }
          cleanup
  %5964 = extractvalue { ptr, i32 } %5963, 0
  store ptr %5964, ptr %11, align 8
  %5965 = extractvalue { ptr, i32 } %5963, 1
  store i32 %5965, ptr %12, align 4
  br label %11064

5966:                                             ; preds = %5747
  %5967 = landingpad { ptr, i32 }
          cleanup
  %5968 = extractvalue { ptr, i32 } %5967, 0
  store ptr %5968, ptr %11, align 8
  %5969 = extractvalue { ptr, i32 } %5967, 1
  store i32 %5969, ptr %12, align 4
  br label %5974

5970:                                             ; preds = %5748
  %5971 = landingpad { ptr, i32 }
          cleanup
  %5972 = extractvalue { ptr, i32 } %5971, 0
  store ptr %5972, ptr %11, align 8
  %5973 = extractvalue { ptr, i32 } %5971, 1
  store i32 %5973, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %652) #11
  br label %5974

5974:                                             ; preds = %5970, %5966
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %651) #11
  br label %11064

5975:                                             ; preds = %5749
  %5976 = landingpad { ptr, i32 }
          cleanup
  %5977 = extractvalue { ptr, i32 } %5976, 0
  store ptr %5977, ptr %11, align 8
  %5978 = extractvalue { ptr, i32 } %5976, 1
  store i32 %5978, ptr %12, align 4
  br label %11063

5979:                                             ; preds = %5750
  %5980 = landingpad { ptr, i32 }
          cleanup
  %5981 = extractvalue { ptr, i32 } %5980, 0
  store ptr %5981, ptr %11, align 8
  %5982 = extractvalue { ptr, i32 } %5980, 1
  store i32 %5982, ptr %12, align 4
  br label %5987

5983:                                             ; preds = %5751
  %5984 = landingpad { ptr, i32 }
          cleanup
  %5985 = extractvalue { ptr, i32 } %5984, 0
  store ptr %5985, ptr %11, align 8
  %5986 = extractvalue { ptr, i32 } %5984, 1
  store i32 %5986, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %655) #11
  br label %5987

5987:                                             ; preds = %5983, %5979
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %654) #11
  br label %11063

5988:                                             ; preds = %5752
  %5989 = landingpad { ptr, i32 }
          cleanup
  %5990 = extractvalue { ptr, i32 } %5989, 0
  store ptr %5990, ptr %11, align 8
  %5991 = extractvalue { ptr, i32 } %5989, 1
  store i32 %5991, ptr %12, align 4
  br label %11062

5992:                                             ; preds = %5753
  %5993 = landingpad { ptr, i32 }
          cleanup
  %5994 = extractvalue { ptr, i32 } %5993, 0
  store ptr %5994, ptr %11, align 8
  %5995 = extractvalue { ptr, i32 } %5993, 1
  store i32 %5995, ptr %12, align 4
  br label %11061

5996:                                             ; preds = %5754
  %5997 = landingpad { ptr, i32 }
          cleanup
  %5998 = extractvalue { ptr, i32 } %5997, 0
  store ptr %5998, ptr %11, align 8
  %5999 = extractvalue { ptr, i32 } %5997, 1
  store i32 %5999, ptr %12, align 4
  br label %6019

6000:                                             ; preds = %5759
  %6001 = landingpad { ptr, i32 }
          cleanup
  %6002 = extractvalue { ptr, i32 } %6001, 0
  store ptr %6002, ptr %11, align 8
  %6003 = extractvalue { ptr, i32 } %6001, 1
  store i32 %6003, ptr %12, align 4
  br label %6018

6004:                                             ; preds = %5760
  %6005 = landingpad { ptr, i32 }
          cleanup
  %6006 = extractvalue { ptr, i32 } %6005, 0
  store ptr %6006, ptr %11, align 8
  %6007 = extractvalue { ptr, i32 } %6005, 1
  store i32 %6007, ptr %12, align 4
  br label %6017

6008:                                             ; preds = %5761
  %6009 = landingpad { ptr, i32 }
          cleanup
  %6010 = extractvalue { ptr, i32 } %6009, 0
  store ptr %6010, ptr %11, align 8
  %6011 = extractvalue { ptr, i32 } %6009, 1
  store i32 %6011, ptr %12, align 4
  br label %6016

6012:                                             ; preds = %5762
  %6013 = landingpad { ptr, i32 }
          cleanup
  %6014 = extractvalue { ptr, i32 } %6013, 0
  store ptr %6014, ptr %11, align 8
  %6015 = extractvalue { ptr, i32 } %6013, 1
  store i32 %6015, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %662) #11
  br label %6016

6016:                                             ; preds = %6012, %6008
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %663) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %663) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %662) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %659) #11
  br label %6017

6017:                                             ; preds = %6016, %6004
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #11
  br label %6018

6018:                                             ; preds = %6017, %6000
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %661) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %660) #11
  br label %6019

6019:                                             ; preds = %6018, %5996
  call void @llvm.lifetime.end.p0(i64 16, ptr %659) #11
  br label %11060

6020:                                             ; preds = %5766
  %6021 = landingpad { ptr, i32 }
          cleanup
  %6022 = extractvalue { ptr, i32 } %6021, 0
  store ptr %6022, ptr %11, align 8
  %6023 = extractvalue { ptr, i32 } %6021, 1
  store i32 %6023, ptr %12, align 4
  br label %7095

6024:                                             ; preds = %5772, %5770, %5767
  %6025 = landingpad { ptr, i32 }
          cleanup
  %6026 = extractvalue { ptr, i32 } %6025, 0
  store ptr %6026, ptr %11, align 8
  %6027 = extractvalue { ptr, i32 } %6025, 1
  store i32 %6027, ptr %12, align 4
  br label %6073

6028:                                             ; preds = %5774
  %6029 = landingpad { ptr, i32 }
          cleanup
  %6030 = extractvalue { ptr, i32 } %6029, 0
  store ptr %6030, ptr %11, align 8
  %6031 = extractvalue { ptr, i32 } %6029, 1
  store i32 %6031, ptr %12, align 4
  br label %6072

6032:                                             ; preds = %6049, %5789, %5777
  %6033 = landingpad { ptr, i32 }
          cleanup
  %6034 = extractvalue { ptr, i32 } %6033, 0
  store ptr %6034, ptr %11, align 8
  %6035 = extractvalue { ptr, i32 } %6033, 1
  store i32 %6035, ptr %12, align 4
  br label %6071

6036:                                             ; preds = %5791
  call void @llvm.lifetime.start.p0(i64 8, ptr %668) #11
  %6037 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %666)
          to label %6038 unwind label %6052

6038:                                             ; preds = %6036
  store ptr %6037, ptr %668, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %669) #11
  %6039 = load ptr, ptr %668, align 8, !tbaa !5
  %6040 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6039) #11
  store ptr %6040, ptr %669, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %670) #11
  %6041 = load ptr, ptr %668, align 8, !tbaa !5
  %6042 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6041) #11
  store ptr %6042, ptr %670, align 8, !tbaa !5
  %6043 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %664)
          to label %6044 unwind label %6056

6044:                                             ; preds = %6038
  call void @llvm.lifetime.start.p0(i64 16, ptr %671) #11
  %6045 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %6046 = load ptr, ptr %669, align 8, !tbaa !5
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %671, ptr noundef nonnull align 8 dereferenceable(264) %6045, ptr noundef nonnull align 8 dereferenceable(32) %6046)
          to label %6047 unwind label %6060

6047:                                             ; preds = %6044
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6043, ptr noundef nonnull align 8 dereferenceable(16) %671)
          to label %6048 unwind label %6064

6048:                                             ; preds = %6047
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %671) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %671) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %670) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %669) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %668) #11
  br label %6049

6049:                                             ; preds = %6048
  %6050 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %666)
          to label %6051 unwind label %6032

6051:                                             ; preds = %6049
  br label %5789

6052:                                             ; preds = %6036
  %6053 = landingpad { ptr, i32 }
          cleanup
  %6054 = extractvalue { ptr, i32 } %6053, 0
  store ptr %6054, ptr %11, align 8
  %6055 = extractvalue { ptr, i32 } %6053, 1
  store i32 %6055, ptr %12, align 4
  br label %6070

6056:                                             ; preds = %6038
  %6057 = landingpad { ptr, i32 }
          cleanup
  %6058 = extractvalue { ptr, i32 } %6057, 0
  store ptr %6058, ptr %11, align 8
  %6059 = extractvalue { ptr, i32 } %6057, 1
  store i32 %6059, ptr %12, align 4
  br label %6069

6060:                                             ; preds = %6044
  %6061 = landingpad { ptr, i32 }
          cleanup
  %6062 = extractvalue { ptr, i32 } %6061, 0
  store ptr %6062, ptr %11, align 8
  %6063 = extractvalue { ptr, i32 } %6061, 1
  store i32 %6063, ptr %12, align 4
  br label %6068

6064:                                             ; preds = %6047
  %6065 = landingpad { ptr, i32 }
          cleanup
  %6066 = extractvalue { ptr, i32 } %6065, 0
  store ptr %6066, ptr %11, align 8
  %6067 = extractvalue { ptr, i32 } %6065, 1
  store i32 %6067, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %671) #11
  br label %6068

6068:                                             ; preds = %6064, %6060
  call void @llvm.lifetime.end.p0(i64 16, ptr %671) #11
  br label %6069

6069:                                             ; preds = %6068, %6056
  call void @llvm.lifetime.end.p0(i64 8, ptr %670) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %669) #11
  br label %6070

6070:                                             ; preds = %6069, %6052
  call void @llvm.lifetime.end.p0(i64 8, ptr %668) #11
  br label %6071

6071:                                             ; preds = %6070, %6032
  call void @llvm.lifetime.end.p0(i64 16, ptr %667) #11
  br label %6072

6072:                                             ; preds = %6071, %6028
  call void @llvm.lifetime.end.p0(i64 16, ptr %666) #11
  br label %6073

6073:                                             ; preds = %6072, %6024
  call void @llvm.lifetime.end.p0(i64 8, ptr %665) #11
  br label %7094

6074:                                             ; preds = %5792
  %6075 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %6076 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %6075, i32 0, i32 2
  %6077 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6076)
          to label %6078 unwind label %6126

6078:                                             ; preds = %6074
  call void @llvm.lifetime.start.p0(i64 16, ptr %672) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %673) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %674) #11
  %6079 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %676)
          to label %6080 unwind label %6130

6080:                                             ; preds = %6078
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %675, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %676)
          to label %6081 unwind label %6134

6081:                                             ; preds = %6080
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_decl_enumENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %674, ptr noundef nonnull align 8 dereferenceable(264) %6079, ptr noundef %675, ptr noundef nonnull align 8 dereferenceable(16) %664)
          to label %6082 unwind label %6138

6082:                                             ; preds = %6081
  %6083 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %674)
          to label %6084 unwind label %6142

6084:                                             ; preds = %6082
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %673, ptr noundef nonnull align 8 dereferenceable(136) %6083)
          to label %6085 unwind label %6142

6085:                                             ; preds = %6084
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %672, ptr noundef nonnull align 8 dereferenceable(16) %673)
          to label %6086 unwind label %6146

6086:                                             ; preds = %6085
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6077, ptr noundef nonnull align 8 dereferenceable(16) %672)
          to label %6087 unwind label %6150

6087:                                             ; preds = %6086
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %672) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %673) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %674) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %675) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %676) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %674) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %673) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %672) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %677) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %678)
          to label %6088 unwind label %6159

6088:                                             ; preds = %6087
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %679)
          to label %6089 unwind label %6163

6089:                                             ; preds = %6088
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %677, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %678, ptr noundef %679)
          to label %6090 unwind label %6167

6090:                                             ; preds = %6089
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %679) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %678) #11
  %6091 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %6092 unwind label %6172

6092:                                             ; preds = %6090
  call void @llvm.lifetime.start.p0(i64 16, ptr %680) #11
  %6093 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %6094 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %6093, i32 0, i32 1
  %6095 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6094)
          to label %6096 unwind label %6176

6096:                                             ; preds = %6092
  call void @llvm.lifetime.start.p0(i64 32, ptr %682) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %683) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %683) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %682, ptr noundef @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %683)
          to label %6097 unwind label %6180

6097:                                             ; preds = %6096
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %6098 unwind label %6184

6098:                                             ; preds = %6097
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cA2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %680, ptr noundef nonnull align 8 dereferenceable(32) %6095, ptr noundef %681, ptr noundef nonnull align 8 dereferenceable(16) %677, ptr noundef nonnull align 1 dereferenceable(3) @.str.146, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %6099 unwind label %6188

6099:                                             ; preds = %6098
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6091, ptr noundef nonnull align 8 dereferenceable(16) %680)
          to label %6100 unwind label %6192

6100:                                             ; preds = %6099
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %680) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %681) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %682) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %683) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %683) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %682) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %680) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %684) #11
  %6101 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %6102 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6101)
          to label %6103 unwind label %6200

6103:                                             ; preds = %6100
  %6104 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %6102, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %6105 unwind label %6200

6105:                                             ; preds = %6103
  %6106 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %6104)
          to label %6107 unwind label %6200

6107:                                             ; preds = %6105
  store ptr %6106, ptr %684, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %685) #11
  %6108 = load ptr, ptr %684, align 8, !tbaa !5
  %6109 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %6108)
          to label %6110 unwind label %6204

6110:                                             ; preds = %6107
  %6111 = getelementptr inbounds { ptr, i64 }, ptr %685, i32 0, i32 0
  %6112 = extractvalue { ptr, i64 } %6109, 0
  store ptr %6112, ptr %6111, align 8
  %6113 = getelementptr inbounds { ptr, i64 }, ptr %685, i32 0, i32 1
  %6114 = extractvalue { ptr, i64 } %6109, 1
  store i64 %6114, ptr %6113, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %686) #11
  %6115 = load ptr, ptr %684, align 8, !tbaa !5
  %6116 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %6115)
          to label %6117 unwind label %6208

6117:                                             ; preds = %6110
  %6118 = getelementptr inbounds { ptr, i64 }, ptr %686, i32 0, i32 0
  %6119 = extractvalue { ptr, i64 } %6116, 0
  store ptr %6119, ptr %6118, align 8
  %6120 = getelementptr inbounds { ptr, i64 }, ptr %686, i32 0, i32 1
  %6121 = extractvalue { ptr, i64 } %6116, 1
  store i64 %6121, ptr %6120, align 8
  br label %6122

6122:                                             ; preds = %6237, %6117
  %6123 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %685, ptr noundef nonnull align 8 dereferenceable(16) %686)
          to label %6124 unwind label %6208

6124:                                             ; preds = %6122
  br i1 %6123, label %6212, label %6125

6125:                                             ; preds = %6124
  store i32 43, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %686) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %685) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %684) #11
  br label %6280

6126:                                             ; preds = %6074
  %6127 = landingpad { ptr, i32 }
          cleanup
  %6128 = extractvalue { ptr, i32 } %6127, 0
  store ptr %6128, ptr %11, align 8
  %6129 = extractvalue { ptr, i32 } %6127, 1
  store i32 %6129, ptr %12, align 4
  br label %7094

6130:                                             ; preds = %6078
  %6131 = landingpad { ptr, i32 }
          cleanup
  %6132 = extractvalue { ptr, i32 } %6131, 0
  store ptr %6132, ptr %11, align 8
  %6133 = extractvalue { ptr, i32 } %6131, 1
  store i32 %6133, ptr %12, align 4
  br label %6158

6134:                                             ; preds = %6080
  %6135 = landingpad { ptr, i32 }
          cleanup
  %6136 = extractvalue { ptr, i32 } %6135, 0
  store ptr %6136, ptr %11, align 8
  %6137 = extractvalue { ptr, i32 } %6135, 1
  store i32 %6137, ptr %12, align 4
  br label %6157

6138:                                             ; preds = %6081
  %6139 = landingpad { ptr, i32 }
          cleanup
  %6140 = extractvalue { ptr, i32 } %6139, 0
  store ptr %6140, ptr %11, align 8
  %6141 = extractvalue { ptr, i32 } %6139, 1
  store i32 %6141, ptr %12, align 4
  br label %6156

6142:                                             ; preds = %6084, %6082
  %6143 = landingpad { ptr, i32 }
          cleanup
  %6144 = extractvalue { ptr, i32 } %6143, 0
  store ptr %6144, ptr %11, align 8
  %6145 = extractvalue { ptr, i32 } %6143, 1
  store i32 %6145, ptr %12, align 4
  br label %6155

6146:                                             ; preds = %6085
  %6147 = landingpad { ptr, i32 }
          cleanup
  %6148 = extractvalue { ptr, i32 } %6147, 0
  store ptr %6148, ptr %11, align 8
  %6149 = extractvalue { ptr, i32 } %6147, 1
  store i32 %6149, ptr %12, align 4
  br label %6154

6150:                                             ; preds = %6086
  %6151 = landingpad { ptr, i32 }
          cleanup
  %6152 = extractvalue { ptr, i32 } %6151, 0
  store ptr %6152, ptr %11, align 8
  %6153 = extractvalue { ptr, i32 } %6151, 1
  store i32 %6153, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %672) #11
  br label %6154

6154:                                             ; preds = %6150, %6146
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %673) #11
  br label %6155

6155:                                             ; preds = %6154, %6142
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %674) #11
  br label %6156

6156:                                             ; preds = %6155, %6138
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %675) #11
  br label %6157

6157:                                             ; preds = %6156, %6134
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %676) #11
  br label %6158

6158:                                             ; preds = %6157, %6130
  call void @llvm.lifetime.end.p0(i64 16, ptr %674) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %673) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %672) #11
  br label %7094

6159:                                             ; preds = %6087
  %6160 = landingpad { ptr, i32 }
          cleanup
  %6161 = extractvalue { ptr, i32 } %6160, 0
  store ptr %6161, ptr %11, align 8
  %6162 = extractvalue { ptr, i32 } %6160, 1
  store i32 %6162, ptr %12, align 4
  br label %7093

6163:                                             ; preds = %6088
  %6164 = landingpad { ptr, i32 }
          cleanup
  %6165 = extractvalue { ptr, i32 } %6164, 0
  store ptr %6165, ptr %11, align 8
  %6166 = extractvalue { ptr, i32 } %6164, 1
  store i32 %6166, ptr %12, align 4
  br label %6171

6167:                                             ; preds = %6089
  %6168 = landingpad { ptr, i32 }
          cleanup
  %6169 = extractvalue { ptr, i32 } %6168, 0
  store ptr %6169, ptr %11, align 8
  %6170 = extractvalue { ptr, i32 } %6168, 1
  store i32 %6170, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %679) #11
  br label %6171

6171:                                             ; preds = %6167, %6163
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %678) #11
  br label %7093

6172:                                             ; preds = %7053, %6090
  %6173 = landingpad { ptr, i32 }
          cleanup
  %6174 = extractvalue { ptr, i32 } %6173, 0
  store ptr %6174, ptr %11, align 8
  %6175 = extractvalue { ptr, i32 } %6173, 1
  store i32 %6175, ptr %12, align 4
  br label %7092

6176:                                             ; preds = %6092
  %6177 = landingpad { ptr, i32 }
          cleanup
  %6178 = extractvalue { ptr, i32 } %6177, 0
  store ptr %6178, ptr %11, align 8
  %6179 = extractvalue { ptr, i32 } %6177, 1
  store i32 %6179, ptr %12, align 4
  br label %6199

6180:                                             ; preds = %6096
  %6181 = landingpad { ptr, i32 }
          cleanup
  %6182 = extractvalue { ptr, i32 } %6181, 0
  store ptr %6182, ptr %11, align 8
  %6183 = extractvalue { ptr, i32 } %6181, 1
  store i32 %6183, ptr %12, align 4
  br label %6198

6184:                                             ; preds = %6097
  %6185 = landingpad { ptr, i32 }
          cleanup
  %6186 = extractvalue { ptr, i32 } %6185, 0
  store ptr %6186, ptr %11, align 8
  %6187 = extractvalue { ptr, i32 } %6185, 1
  store i32 %6187, ptr %12, align 4
  br label %6197

6188:                                             ; preds = %6098
  %6189 = landingpad { ptr, i32 }
          cleanup
  %6190 = extractvalue { ptr, i32 } %6189, 0
  store ptr %6190, ptr %11, align 8
  %6191 = extractvalue { ptr, i32 } %6189, 1
  store i32 %6191, ptr %12, align 4
  br label %6196

6192:                                             ; preds = %6099
  %6193 = landingpad { ptr, i32 }
          cleanup
  %6194 = extractvalue { ptr, i32 } %6193, 0
  store ptr %6194, ptr %11, align 8
  %6195 = extractvalue { ptr, i32 } %6193, 1
  store i32 %6195, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %680) #11
  br label %6196

6196:                                             ; preds = %6192, %6188
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %681) #11
  br label %6197

6197:                                             ; preds = %6196, %6184
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %682) #11
  br label %6198

6198:                                             ; preds = %6197, %6180
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %683) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %683) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %682) #11
  br label %6199

6199:                                             ; preds = %6198, %6176
  call void @llvm.lifetime.end.p0(i64 16, ptr %680) #11
  br label %7092

6200:                                             ; preds = %6105, %6103, %6100
  %6201 = landingpad { ptr, i32 }
          cleanup
  %6202 = extractvalue { ptr, i32 } %6201, 0
  store ptr %6202, ptr %11, align 8
  %6203 = extractvalue { ptr, i32 } %6201, 1
  store i32 %6203, ptr %12, align 4
  br label %6279

6204:                                             ; preds = %6107
  %6205 = landingpad { ptr, i32 }
          cleanup
  %6206 = extractvalue { ptr, i32 } %6205, 0
  store ptr %6206, ptr %11, align 8
  %6207 = extractvalue { ptr, i32 } %6205, 1
  store i32 %6207, ptr %12, align 4
  br label %6278

6208:                                             ; preds = %6235, %6122, %6110
  %6209 = landingpad { ptr, i32 }
          cleanup
  %6210 = extractvalue { ptr, i32 } %6209, 0
  store ptr %6210, ptr %11, align 8
  %6211 = extractvalue { ptr, i32 } %6209, 1
  store i32 %6211, ptr %12, align 4
  br label %6277

6212:                                             ; preds = %6124
  call void @llvm.lifetime.start.p0(i64 8, ptr %687) #11
  %6213 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %685)
          to label %6214 unwind label %6238

6214:                                             ; preds = %6212
  store ptr %6213, ptr %687, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %688) #11
  %6215 = load ptr, ptr %687, align 8, !tbaa !5
  %6216 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6215) #11
  store ptr %6216, ptr %688, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %689) #11
  %6217 = load ptr, ptr %687, align 8, !tbaa !5
  %6218 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6217) #11
  store ptr %6218, ptr %689, align 8, !tbaa !5
  %6219 = load ptr, ptr %688, align 8, !tbaa !5
  %6220 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %356, ptr noundef nonnull align 8 dereferenceable(32) %6219)
          to label %6221 unwind label %6242

6221:                                             ; preds = %6214
  %6222 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6220)
          to label %6223 unwind label %6242

6223:                                             ; preds = %6221
  call void @llvm.lifetime.start.p0(i64 16, ptr %690) #11
  %6224 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %691) #11
  %6225 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %6226 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %6225, i32 0, i32 1
  %6227 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6226)
          to label %6228 unwind label %6246

6228:                                             ; preds = %6223
  call void @llvm.lifetime.start.p0(i64 32, ptr %693) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %694) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %694) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %693, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %694)
          to label %6229 unwind label %6250

6229:                                             ; preds = %6228
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %692, ptr noundef nonnull align 8 dereferenceable(32) %693)
          to label %6230 unwind label %6254

6230:                                             ; preds = %6229
  %6231 = load ptr, ptr %688, align 8, !tbaa !5
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %691, ptr noundef nonnull align 8 dereferenceable(32) %6227, ptr noundef %692, ptr noundef nonnull align 1 dereferenceable(7) @.str.147, ptr noundef nonnull align 8 dereferenceable(16) %677, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %6231)
          to label %6232 unwind label %6258

6232:                                             ; preds = %6230
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %690, ptr noundef nonnull align 8 dereferenceable(264) %6224, ptr noundef nonnull align 8 dereferenceable(16) %691)
          to label %6233 unwind label %6262

6233:                                             ; preds = %6232
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6222, ptr noundef nonnull align 8 dereferenceable(16) %690)
          to label %6234 unwind label %6266

6234:                                             ; preds = %6233
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %690) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %691) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %692) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %693) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %694) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %694) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %693) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %691) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %690) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %689) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %688) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %687) #11
  br label %6235

6235:                                             ; preds = %6234
  %6236 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %685)
          to label %6237 unwind label %6208

6237:                                             ; preds = %6235
  br label %6122

6238:                                             ; preds = %6212
  %6239 = landingpad { ptr, i32 }
          cleanup
  %6240 = extractvalue { ptr, i32 } %6239, 0
  store ptr %6240, ptr %11, align 8
  %6241 = extractvalue { ptr, i32 } %6239, 1
  store i32 %6241, ptr %12, align 4
  br label %6276

6242:                                             ; preds = %6221, %6214
  %6243 = landingpad { ptr, i32 }
          cleanup
  %6244 = extractvalue { ptr, i32 } %6243, 0
  store ptr %6244, ptr %11, align 8
  %6245 = extractvalue { ptr, i32 } %6243, 1
  store i32 %6245, ptr %12, align 4
  br label %6275

6246:                                             ; preds = %6223
  %6247 = landingpad { ptr, i32 }
          cleanup
  %6248 = extractvalue { ptr, i32 } %6247, 0
  store ptr %6248, ptr %11, align 8
  %6249 = extractvalue { ptr, i32 } %6247, 1
  store i32 %6249, ptr %12, align 4
  br label %6274

6250:                                             ; preds = %6228
  %6251 = landingpad { ptr, i32 }
          cleanup
  %6252 = extractvalue { ptr, i32 } %6251, 0
  store ptr %6252, ptr %11, align 8
  %6253 = extractvalue { ptr, i32 } %6251, 1
  store i32 %6253, ptr %12, align 4
  br label %6273

6254:                                             ; preds = %6229
  %6255 = landingpad { ptr, i32 }
          cleanup
  %6256 = extractvalue { ptr, i32 } %6255, 0
  store ptr %6256, ptr %11, align 8
  %6257 = extractvalue { ptr, i32 } %6255, 1
  store i32 %6257, ptr %12, align 4
  br label %6272

6258:                                             ; preds = %6230
  %6259 = landingpad { ptr, i32 }
          cleanup
  %6260 = extractvalue { ptr, i32 } %6259, 0
  store ptr %6260, ptr %11, align 8
  %6261 = extractvalue { ptr, i32 } %6259, 1
  store i32 %6261, ptr %12, align 4
  br label %6271

6262:                                             ; preds = %6232
  %6263 = landingpad { ptr, i32 }
          cleanup
  %6264 = extractvalue { ptr, i32 } %6263, 0
  store ptr %6264, ptr %11, align 8
  %6265 = extractvalue { ptr, i32 } %6263, 1
  store i32 %6265, ptr %12, align 4
  br label %6270

6266:                                             ; preds = %6233
  %6267 = landingpad { ptr, i32 }
          cleanup
  %6268 = extractvalue { ptr, i32 } %6267, 0
  store ptr %6268, ptr %11, align 8
  %6269 = extractvalue { ptr, i32 } %6267, 1
  store i32 %6269, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %690) #11
  br label %6270

6270:                                             ; preds = %6266, %6262
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %691) #11
  br label %6271

6271:                                             ; preds = %6270, %6258
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %692) #11
  br label %6272

6272:                                             ; preds = %6271, %6254
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %693) #11
  br label %6273

6273:                                             ; preds = %6272, %6250
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %694) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %694) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %693) #11
  br label %6274

6274:                                             ; preds = %6273, %6246
  call void @llvm.lifetime.end.p0(i64 16, ptr %691) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %690) #11
  br label %6275

6275:                                             ; preds = %6274, %6242
  call void @llvm.lifetime.end.p0(i64 8, ptr %689) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %688) #11
  br label %6276

6276:                                             ; preds = %6275, %6238
  call void @llvm.lifetime.end.p0(i64 8, ptr %687) #11
  br label %6277

6277:                                             ; preds = %6276, %6208
  call void @llvm.lifetime.end.p0(i64 16, ptr %686) #11
  br label %6278

6278:                                             ; preds = %6277, %6204
  call void @llvm.lifetime.end.p0(i64 16, ptr %685) #11
  br label %6279

6279:                                             ; preds = %6278, %6200
  call void @llvm.lifetime.end.p0(i64 8, ptr %684) #11
  br label %7092

6280:                                             ; preds = %6125
  call void @llvm.lifetime.start.p0(i64 8, ptr %695) #11
  %6281 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %6282 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6281)
          to label %6283 unwind label %6306

6283:                                             ; preds = %6280
  %6284 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %6282, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %6285 unwind label %6306

6285:                                             ; preds = %6283
  %6286 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %6284)
          to label %6287 unwind label %6306

6287:                                             ; preds = %6285
  store ptr %6286, ptr %695, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %696) #11
  %6288 = load ptr, ptr %695, align 8, !tbaa !5
  %6289 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %6288)
          to label %6290 unwind label %6310

6290:                                             ; preds = %6287
  %6291 = getelementptr inbounds { ptr, i64 }, ptr %696, i32 0, i32 0
  %6292 = extractvalue { ptr, i64 } %6289, 0
  store ptr %6292, ptr %6291, align 8
  %6293 = getelementptr inbounds { ptr, i64 }, ptr %696, i32 0, i32 1
  %6294 = extractvalue { ptr, i64 } %6289, 1
  store i64 %6294, ptr %6293, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %697) #11
  %6295 = load ptr, ptr %695, align 8, !tbaa !5
  %6296 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %6295)
          to label %6297 unwind label %6314

6297:                                             ; preds = %6290
  %6298 = getelementptr inbounds { ptr, i64 }, ptr %697, i32 0, i32 0
  %6299 = extractvalue { ptr, i64 } %6296, 0
  store ptr %6299, ptr %6298, align 8
  %6300 = getelementptr inbounds { ptr, i64 }, ptr %697, i32 0, i32 1
  %6301 = extractvalue { ptr, i64 } %6296, 1
  store i64 %6301, ptr %6300, align 8
  br label %6302

6302:                                             ; preds = %6481, %6297
  %6303 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %696, ptr noundef nonnull align 8 dereferenceable(16) %697)
          to label %6304 unwind label %6314

6304:                                             ; preds = %6302
  br i1 %6303, label %6318, label %6305

6305:                                             ; preds = %6304
  store i32 45, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %697) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %696) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %695) #11
  br label %6537

6306:                                             ; preds = %6285, %6283, %6280
  %6307 = landingpad { ptr, i32 }
          cleanup
  %6308 = extractvalue { ptr, i32 } %6307, 0
  store ptr %6308, ptr %11, align 8
  %6309 = extractvalue { ptr, i32 } %6307, 1
  store i32 %6309, ptr %12, align 4
  br label %6536

6310:                                             ; preds = %6287
  %6311 = landingpad { ptr, i32 }
          cleanup
  %6312 = extractvalue { ptr, i32 } %6311, 0
  store ptr %6312, ptr %11, align 8
  %6313 = extractvalue { ptr, i32 } %6311, 1
  store i32 %6313, ptr %12, align 4
  br label %6535

6314:                                             ; preds = %6479, %6302, %6290
  %6315 = landingpad { ptr, i32 }
          cleanup
  %6316 = extractvalue { ptr, i32 } %6315, 0
  store ptr %6316, ptr %11, align 8
  %6317 = extractvalue { ptr, i32 } %6315, 1
  store i32 %6317, ptr %12, align 4
  br label %6534

6318:                                             ; preds = %6304
  call void @llvm.lifetime.start.p0(i64 8, ptr %698) #11
  %6319 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %696)
          to label %6320 unwind label %6361

6320:                                             ; preds = %6318
  store ptr %6319, ptr %698, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %699) #11
  %6321 = load ptr, ptr %698, align 8, !tbaa !5
  %6322 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6321) #11
  store ptr %6322, ptr %699, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %700) #11
  %6323 = load ptr, ptr %698, align 8, !tbaa !5
  %6324 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6323) #11
  store ptr %6324, ptr %700, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %701) #11
  %6325 = load ptr, ptr %700, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %702, ptr noundef nonnull align 8 dereferenceable(16) %6325)
          to label %6326 unwind label %6365

6326:                                             ; preds = %6320
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %701, ptr noundef %702, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %6327 unwind label %6369

6327:                                             ; preds = %6326
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %702) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %703) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %705) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %706) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %708) #11
  store ptr %708, ptr %709, align 8
  %6328 = load ptr, ptr %699, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %708, ptr noundef nonnull align 8 dereferenceable(32) %6328)
          to label %6329 unwind label %6373

6329:                                             ; preds = %6327
  %6330 = getelementptr inbounds %"class.std::initializer_list", ptr %707, i32 0, i32 0
  store ptr %708, ptr %6330, align 8, !tbaa !11
  %6331 = getelementptr inbounds %"class.std::initializer_list", ptr %707, i32 0, i32 1
  store i64 1, ptr %6331, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %710) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %710) #11
  %6332 = getelementptr inbounds { ptr, i64 }, ptr %707, i32 0, i32 0
  %6333 = load ptr, ptr %6332, align 8
  %6334 = getelementptr inbounds { ptr, i64 }, ptr %707, i32 0, i32 1
  %6335 = load i64, ptr %6334, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %706, ptr %6333, i64 %6335, ptr noundef nonnull align 1 dereferenceable(1) %710)
          to label %6336 unwind label %6384

6336:                                             ; preds = %6329
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %705, ptr noundef nonnull align 8 dereferenceable(24) %706)
          to label %6337 unwind label %6388

6337:                                             ; preds = %6336
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %704, ptr noundef nonnull align 8 dereferenceable(16) %705)
          to label %6338 unwind label %6392

6338:                                             ; preds = %6337
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %711)
          to label %6339 unwind label %6396

6339:                                             ; preds = %6338
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %703, i32 noundef 10, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %704, ptr noundef %711)
          to label %6340 unwind label %6400

6340:                                             ; preds = %6339
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %711) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %704) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %705) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %706) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %710) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %710) #11
  %6341 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %708, i32 0, i32 0
  %6342 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6341, i64 1
  br label %6343

6343:                                             ; preds = %6343, %6340
  %6344 = phi ptr [ %6342, %6340 ], [ %6345, %6343 ]
  %6345 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6344, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6345) #11
  %6346 = icmp eq ptr %6345, %6341
  br i1 %6346, label %6347, label %6343

6347:                                             ; preds = %6343
  call void @llvm.lifetime.end.p0(i64 32, ptr %708) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %706) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %705) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %712) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %712) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %713) #11
  store i8 1, ptr %713, align 1, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr %714) #11
  %6348 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %6349 unwind label %6416

6349:                                             ; preds = %6347
  store ptr %6348, ptr %714, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %715) #11
  %6350 = load ptr, ptr %714, align 8, !tbaa !5
  %6351 = invoke noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %6350)
          to label %6352 unwind label %6420

6352:                                             ; preds = %6349
  store ptr %6351, ptr %715, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %716) #11
  %6353 = load ptr, ptr %714, align 8, !tbaa !5
  %6354 = invoke noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %6353)
          to label %6355 unwind label %6424

6355:                                             ; preds = %6352
  store ptr %6354, ptr %716, align 8, !tbaa !5
  br label %6356

6356:                                             ; preds = %6447, %6355
  %6357 = load ptr, ptr %715, align 8, !tbaa !5
  %6358 = load ptr, ptr %716, align 8, !tbaa !5
  %6359 = icmp ne ptr %6357, %6358
  br i1 %6359, label %6428, label %6360

6360:                                             ; preds = %6356
  store i32 47, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %716) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %715) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %714) #11
  br label %6454

6361:                                             ; preds = %6318
  %6362 = landingpad { ptr, i32 }
          cleanup
  %6363 = extractvalue { ptr, i32 } %6362, 0
  store ptr %6363, ptr %11, align 8
  %6364 = extractvalue { ptr, i32 } %6362, 1
  store i32 %6364, ptr %12, align 4
  br label %6533

6365:                                             ; preds = %6320
  %6366 = landingpad { ptr, i32 }
          cleanup
  %6367 = extractvalue { ptr, i32 } %6366, 0
  store ptr %6367, ptr %11, align 8
  %6368 = extractvalue { ptr, i32 } %6366, 1
  store i32 %6368, ptr %12, align 4
  br label %6532

6369:                                             ; preds = %6326
  %6370 = landingpad { ptr, i32 }
          cleanup
  %6371 = extractvalue { ptr, i32 } %6370, 0
  store ptr %6371, ptr %11, align 8
  %6372 = extractvalue { ptr, i32 } %6370, 1
  store i32 %6372, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %702) #11
  br label %6532

6373:                                             ; preds = %6327
  %6374 = landingpad { ptr, i32 }
          cleanup
  %6375 = extractvalue { ptr, i32 } %6374, 0
  store ptr %6375, ptr %11, align 8
  %6376 = extractvalue { ptr, i32 } %6374, 1
  store i32 %6376, ptr %12, align 4
  %6377 = load ptr, ptr %709, align 8
  %6378 = icmp eq ptr %708, %6377
  br i1 %6378, label %6383, label %6379

6379:                                             ; preds = %6379, %6373
  %6380 = phi ptr [ %6377, %6373 ], [ %6381, %6379 ]
  %6381 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6380, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6381) #11
  %6382 = icmp eq ptr %6381, %708
  br i1 %6382, label %6383, label %6379

6383:                                             ; preds = %6379, %6373
  br label %6415

6384:                                             ; preds = %6329
  %6385 = landingpad { ptr, i32 }
          cleanup
  %6386 = extractvalue { ptr, i32 } %6385, 0
  store ptr %6386, ptr %11, align 8
  %6387 = extractvalue { ptr, i32 } %6385, 1
  store i32 %6387, ptr %12, align 4
  br label %6407

6388:                                             ; preds = %6336
  %6389 = landingpad { ptr, i32 }
          cleanup
  %6390 = extractvalue { ptr, i32 } %6389, 0
  store ptr %6390, ptr %11, align 8
  %6391 = extractvalue { ptr, i32 } %6389, 1
  store i32 %6391, ptr %12, align 4
  br label %6406

6392:                                             ; preds = %6337
  %6393 = landingpad { ptr, i32 }
          cleanup
  %6394 = extractvalue { ptr, i32 } %6393, 0
  store ptr %6394, ptr %11, align 8
  %6395 = extractvalue { ptr, i32 } %6393, 1
  store i32 %6395, ptr %12, align 4
  br label %6405

6396:                                             ; preds = %6338
  %6397 = landingpad { ptr, i32 }
          cleanup
  %6398 = extractvalue { ptr, i32 } %6397, 0
  store ptr %6398, ptr %11, align 8
  %6399 = extractvalue { ptr, i32 } %6397, 1
  store i32 %6399, ptr %12, align 4
  br label %6404

6400:                                             ; preds = %6339
  %6401 = landingpad { ptr, i32 }
          cleanup
  %6402 = extractvalue { ptr, i32 } %6401, 0
  store ptr %6402, ptr %11, align 8
  %6403 = extractvalue { ptr, i32 } %6401, 1
  store i32 %6403, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %711) #11
  br label %6404

6404:                                             ; preds = %6400, %6396
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %704) #11
  br label %6405

6405:                                             ; preds = %6404, %6392
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %705) #11
  br label %6406

6406:                                             ; preds = %6405, %6388
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %706) #11
  br label %6407

6407:                                             ; preds = %6406, %6384
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %710) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %710) #11
  %6408 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %708, i32 0, i32 0
  %6409 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6408, i64 1
  br label %6410

6410:                                             ; preds = %6410, %6407
  %6411 = phi ptr [ %6409, %6407 ], [ %6412, %6410 ]
  %6412 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6411, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6412) #11
  %6413 = icmp eq ptr %6412, %6408
  br i1 %6413, label %6414, label %6410

6414:                                             ; preds = %6410
  br label %6415

6415:                                             ; preds = %6414, %6383
  call void @llvm.lifetime.end.p0(i64 32, ptr %708) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %706) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %705) #11
  br label %6531

6416:                                             ; preds = %6347
  %6417 = landingpad { ptr, i32 }
          cleanup
  %6418 = extractvalue { ptr, i32 } %6417, 0
  store ptr %6418, ptr %11, align 8
  %6419 = extractvalue { ptr, i32 } %6417, 1
  store i32 %6419, ptr %12, align 4
  br label %6453

6420:                                             ; preds = %6349
  %6421 = landingpad { ptr, i32 }
          cleanup
  %6422 = extractvalue { ptr, i32 } %6421, 0
  store ptr %6422, ptr %11, align 8
  %6423 = extractvalue { ptr, i32 } %6421, 1
  store i32 %6423, ptr %12, align 4
  br label %6452

6424:                                             ; preds = %6352
  %6425 = landingpad { ptr, i32 }
          cleanup
  %6426 = extractvalue { ptr, i32 } %6425, 0
  store ptr %6426, ptr %11, align 8
  %6427 = extractvalue { ptr, i32 } %6425, 1
  store i32 %6427, ptr %12, align 4
  br label %6451

6428:                                             ; preds = %6356
  call void @llvm.lifetime.start.p0(i64 32, ptr %717) #11
  %6429 = load ptr, ptr %715, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %717, ptr noundef nonnull align 8 dereferenceable(32) %6429)
          to label %6430 unwind label %6436

6430:                                             ; preds = %6428
  %6431 = load i8, ptr %713, align 1, !tbaa !18, !range !20, !noundef !21
  %6432 = trunc i8 %6431 to i1
  br i1 %6432, label %6444, label %6433

6433:                                             ; preds = %6430
  %6434 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %712, ptr noundef @.str.82)
          to label %6435 unwind label %6440

6435:                                             ; preds = %6433
  br label %6444

6436:                                             ; preds = %6428
  %6437 = landingpad { ptr, i32 }
          cleanup
  %6438 = extractvalue { ptr, i32 } %6437, 0
  store ptr %6438, ptr %11, align 8
  %6439 = extractvalue { ptr, i32 } %6437, 1
  store i32 %6439, ptr %12, align 4
  br label %6450

6440:                                             ; preds = %6444, %6433
  %6441 = landingpad { ptr, i32 }
          cleanup
  %6442 = extractvalue { ptr, i32 } %6441, 0
  store ptr %6442, ptr %11, align 8
  %6443 = extractvalue { ptr, i32 } %6441, 1
  store i32 %6443, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %717) #11
  br label %6450

6444:                                             ; preds = %6435, %6430
  %6445 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %712, ptr noundef nonnull align 8 dereferenceable(32) %717)
          to label %6446 unwind label %6440

6446:                                             ; preds = %6444
  store i8 0, ptr %713, align 1, !tbaa !18
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %717) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %717) #11
  br label %6447

6447:                                             ; preds = %6446
  %6448 = load ptr, ptr %715, align 8, !tbaa !5
  %6449 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6448, i32 1
  store ptr %6449, ptr %715, align 8, !tbaa !5
  br label %6356

6450:                                             ; preds = %6440, %6436
  call void @llvm.lifetime.end.p0(i64 32, ptr %717) #11
  br label %6451

6451:                                             ; preds = %6450, %6424
  call void @llvm.lifetime.end.p0(i64 8, ptr %716) #11
  br label %6452

6452:                                             ; preds = %6451, %6420
  call void @llvm.lifetime.end.p0(i64 8, ptr %715) #11
  br label %6453

6453:                                             ; preds = %6452, %6416
  call void @llvm.lifetime.end.p0(i64 8, ptr %714) #11
  br label %6530

6454:                                             ; preds = %6360
  call void @llvm.lifetime.start.p0(i64 32, ptr %718) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %719) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %720) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %720) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %719, ptr noundef @.str.148, ptr noundef nonnull align 1 dereferenceable(1) %720)
          to label %6455 unwind label %6482

6455:                                             ; preds = %6454
  %6456 = load ptr, ptr %699, align 8, !tbaa !5
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %718, ptr noundef nonnull align 8 dereferenceable(32) %719, ptr noundef nonnull align 8 dereferenceable(32) %712, ptr noundef nonnull align 8 dereferenceable(32) %6456)
          to label %6457 unwind label %6486

6457:                                             ; preds = %6455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %719) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %720) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %720) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %719) #11
  %6458 = load ptr, ptr %699, align 8, !tbaa !5
  %6459 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %375, ptr noundef nonnull align 8 dereferenceable(32) %6458)
          to label %6460 unwind label %6491

6460:                                             ; preds = %6457
  %6461 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6459)
          to label %6462 unwind label %6491

6462:                                             ; preds = %6460
  call void @llvm.lifetime.start.p0(i64 16, ptr %721) #11
  %6463 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %6464 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %6463, i32 0, i32 1
  %6465 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6464)
          to label %6466 unwind label %6495

6466:                                             ; preds = %6462
  call void @llvm.lifetime.start.p0(i64 32, ptr %723) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %724) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %724) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %723, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %724)
          to label %6467 unwind label %6499

6467:                                             ; preds = %6466
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %722, ptr noundef nonnull align 8 dereferenceable(32) %723)
          to label %6468 unwind label %6503

6468:                                             ; preds = %6467
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %721, ptr noundef nonnull align 8 dereferenceable(32) %6465, ptr noundef %722, ptr noundef nonnull align 1 dereferenceable(18) @.str.149, ptr noundef nonnull align 8 dereferenceable(16) %703, ptr noundef nonnull align 1 dereferenceable(4) @.str.150, ptr noundef nonnull align 8 dereferenceable(32) %718, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %6469 unwind label %6507

6469:                                             ; preds = %6468
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6461, ptr noundef nonnull align 8 dereferenceable(16) %721)
          to label %6470 unwind label %6511

6470:                                             ; preds = %6469
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %721) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %722) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %723) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %724) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %724) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %723) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %721) #11
  %6471 = load ptr, ptr %699, align 8, !tbaa !5
  %6472 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %375, ptr noundef nonnull align 8 dereferenceable(32) %6471)
          to label %6473 unwind label %6491

6473:                                             ; preds = %6470
  %6474 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6472)
          to label %6475 unwind label %6491

6475:                                             ; preds = %6473
  call void @llvm.lifetime.start.p0(i64 16, ptr %725) #11
  %6476 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_stmtIJA32_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA5_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %725, ptr noundef nonnull align 8 dereferenceable(264) %6476, ptr noundef nonnull align 1 dereferenceable(32) @.str.151, ptr noundef nonnull align 8 dereferenceable(16) %701, ptr noundef nonnull align 1 dereferenceable(5) @.str.152)
          to label %6477 unwind label %6519

6477:                                             ; preds = %6475
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6474, ptr noundef nonnull align 8 dereferenceable(16) %725)
          to label %6478 unwind label %6523

6478:                                             ; preds = %6477
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %725) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %725) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %718) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %718) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %713) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %712) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %712) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %703) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %703) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %701) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %701) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %700) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %699) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %698) #11
  br label %6479

6479:                                             ; preds = %6478
  %6480 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %696)
          to label %6481 unwind label %6314

6481:                                             ; preds = %6479
  br label %6302

6482:                                             ; preds = %6454
  %6483 = landingpad { ptr, i32 }
          cleanup
  %6484 = extractvalue { ptr, i32 } %6483, 0
  store ptr %6484, ptr %11, align 8
  %6485 = extractvalue { ptr, i32 } %6483, 1
  store i32 %6485, ptr %12, align 4
  br label %6490

6486:                                             ; preds = %6455
  %6487 = landingpad { ptr, i32 }
          cleanup
  %6488 = extractvalue { ptr, i32 } %6487, 0
  store ptr %6488, ptr %11, align 8
  %6489 = extractvalue { ptr, i32 } %6487, 1
  store i32 %6489, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %719) #11
  br label %6490

6490:                                             ; preds = %6486, %6482
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %720) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %720) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %719) #11
  br label %6529

6491:                                             ; preds = %6473, %6470, %6460, %6457
  %6492 = landingpad { ptr, i32 }
          cleanup
  %6493 = extractvalue { ptr, i32 } %6492, 0
  store ptr %6493, ptr %11, align 8
  %6494 = extractvalue { ptr, i32 } %6492, 1
  store i32 %6494, ptr %12, align 4
  br label %6528

6495:                                             ; preds = %6462
  %6496 = landingpad { ptr, i32 }
          cleanup
  %6497 = extractvalue { ptr, i32 } %6496, 0
  store ptr %6497, ptr %11, align 8
  %6498 = extractvalue { ptr, i32 } %6496, 1
  store i32 %6498, ptr %12, align 4
  br label %6518

6499:                                             ; preds = %6466
  %6500 = landingpad { ptr, i32 }
          cleanup
  %6501 = extractvalue { ptr, i32 } %6500, 0
  store ptr %6501, ptr %11, align 8
  %6502 = extractvalue { ptr, i32 } %6500, 1
  store i32 %6502, ptr %12, align 4
  br label %6517

6503:                                             ; preds = %6467
  %6504 = landingpad { ptr, i32 }
          cleanup
  %6505 = extractvalue { ptr, i32 } %6504, 0
  store ptr %6505, ptr %11, align 8
  %6506 = extractvalue { ptr, i32 } %6504, 1
  store i32 %6506, ptr %12, align 4
  br label %6516

6507:                                             ; preds = %6468
  %6508 = landingpad { ptr, i32 }
          cleanup
  %6509 = extractvalue { ptr, i32 } %6508, 0
  store ptr %6509, ptr %11, align 8
  %6510 = extractvalue { ptr, i32 } %6508, 1
  store i32 %6510, ptr %12, align 4
  br label %6515

6511:                                             ; preds = %6469
  %6512 = landingpad { ptr, i32 }
          cleanup
  %6513 = extractvalue { ptr, i32 } %6512, 0
  store ptr %6513, ptr %11, align 8
  %6514 = extractvalue { ptr, i32 } %6512, 1
  store i32 %6514, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %721) #11
  br label %6515

6515:                                             ; preds = %6511, %6507
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %722) #11
  br label %6516

6516:                                             ; preds = %6515, %6503
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %723) #11
  br label %6517

6517:                                             ; preds = %6516, %6499
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %724) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %724) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %723) #11
  br label %6518

6518:                                             ; preds = %6517, %6495
  call void @llvm.lifetime.end.p0(i64 16, ptr %721) #11
  br label %6528

6519:                                             ; preds = %6475
  %6520 = landingpad { ptr, i32 }
          cleanup
  %6521 = extractvalue { ptr, i32 } %6520, 0
  store ptr %6521, ptr %11, align 8
  %6522 = extractvalue { ptr, i32 } %6520, 1
  store i32 %6522, ptr %12, align 4
  br label %6527

6523:                                             ; preds = %6477
  %6524 = landingpad { ptr, i32 }
          cleanup
  %6525 = extractvalue { ptr, i32 } %6524, 0
  store ptr %6525, ptr %11, align 8
  %6526 = extractvalue { ptr, i32 } %6524, 1
  store i32 %6526, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %725) #11
  br label %6527

6527:                                             ; preds = %6523, %6519
  call void @llvm.lifetime.end.p0(i64 16, ptr %725) #11
  br label %6528

6528:                                             ; preds = %6527, %6518, %6491
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %718) #11
  br label %6529

6529:                                             ; preds = %6528, %6490
  call void @llvm.lifetime.end.p0(i64 32, ptr %718) #11
  br label %6530

6530:                                             ; preds = %6529, %6453
  call void @llvm.lifetime.end.p0(i64 1, ptr %713) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %712) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %712) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %703) #11
  br label %6531

6531:                                             ; preds = %6530, %6415
  call void @llvm.lifetime.end.p0(i64 16, ptr %703) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %701) #11
  br label %6532

6532:                                             ; preds = %6531, %6369, %6365
  call void @llvm.lifetime.end.p0(i64 16, ptr %701) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %700) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %699) #11
  br label %6533

6533:                                             ; preds = %6532, %6361
  call void @llvm.lifetime.end.p0(i64 8, ptr %698) #11
  br label %6534

6534:                                             ; preds = %6533, %6314
  call void @llvm.lifetime.end.p0(i64 16, ptr %697) #11
  br label %6535

6535:                                             ; preds = %6534, %6310
  call void @llvm.lifetime.end.p0(i64 16, ptr %696) #11
  br label %6536

6536:                                             ; preds = %6535, %6306
  call void @llvm.lifetime.end.p0(i64 8, ptr %695) #11
  br label %7092

6537:                                             ; preds = %6305
  call void @llvm.lifetime.start.p0(i64 8, ptr %726) #11
  %6538 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %6539 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6538)
          to label %6540 unwind label %6563

6540:                                             ; preds = %6537
  %6541 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %6539, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %6542 unwind label %6563

6542:                                             ; preds = %6540
  %6543 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %6541)
          to label %6544 unwind label %6563

6544:                                             ; preds = %6542
  store ptr %6543, ptr %726, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %727) #11
  %6545 = load ptr, ptr %726, align 8, !tbaa !5
  %6546 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %6545)
          to label %6547 unwind label %6567

6547:                                             ; preds = %6544
  %6548 = getelementptr inbounds { ptr, i64 }, ptr %727, i32 0, i32 0
  %6549 = extractvalue { ptr, i64 } %6546, 0
  store ptr %6549, ptr %6548, align 8
  %6550 = getelementptr inbounds { ptr, i64 }, ptr %727, i32 0, i32 1
  %6551 = extractvalue { ptr, i64 } %6546, 1
  store i64 %6551, ptr %6550, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %728) #11
  %6552 = load ptr, ptr %726, align 8, !tbaa !5
  %6553 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %6552)
          to label %6554 unwind label %6571

6554:                                             ; preds = %6547
  %6555 = getelementptr inbounds { ptr, i64 }, ptr %728, i32 0, i32 0
  %6556 = extractvalue { ptr, i64 } %6553, 0
  store ptr %6556, ptr %6555, align 8
  %6557 = getelementptr inbounds { ptr, i64 }, ptr %728, i32 0, i32 1
  %6558 = extractvalue { ptr, i64 } %6553, 1
  store i64 %6558, ptr %6557, align 8
  br label %6559

6559:                                             ; preds = %6595, %6554
  %6560 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %727, ptr noundef nonnull align 8 dereferenceable(16) %728)
          to label %6561 unwind label %6571

6561:                                             ; preds = %6559
  br i1 %6560, label %6575, label %6562

6562:                                             ; preds = %6561
  store i32 49, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %728) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %727) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %726) #11
  br label %6627

6563:                                             ; preds = %6542, %6540, %6537
  %6564 = landingpad { ptr, i32 }
          cleanup
  %6565 = extractvalue { ptr, i32 } %6564, 0
  store ptr %6565, ptr %11, align 8
  %6566 = extractvalue { ptr, i32 } %6564, 1
  store i32 %6566, ptr %12, align 4
  br label %6626

6567:                                             ; preds = %6544
  %6568 = landingpad { ptr, i32 }
          cleanup
  %6569 = extractvalue { ptr, i32 } %6568, 0
  store ptr %6569, ptr %11, align 8
  %6570 = extractvalue { ptr, i32 } %6568, 1
  store i32 %6570, ptr %12, align 4
  br label %6625

6571:                                             ; preds = %6593, %6559, %6547
  %6572 = landingpad { ptr, i32 }
          cleanup
  %6573 = extractvalue { ptr, i32 } %6572, 0
  store ptr %6573, ptr %11, align 8
  %6574 = extractvalue { ptr, i32 } %6572, 1
  store i32 %6574, ptr %12, align 4
  br label %6624

6575:                                             ; preds = %6561
  call void @llvm.lifetime.start.p0(i64 8, ptr %729) #11
  %6576 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %727)
          to label %6577 unwind label %6596

6577:                                             ; preds = %6575
  store ptr %6576, ptr %729, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %730) #11
  %6578 = load ptr, ptr %729, align 8, !tbaa !5
  %6579 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6578) #11
  store ptr %6579, ptr %730, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %731) #11
  %6580 = load ptr, ptr %729, align 8, !tbaa !5
  %6581 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6580) #11
  store ptr %6581, ptr %731, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %732) #11
  %6582 = load ptr, ptr %731, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %733, ptr noundef nonnull align 8 dereferenceable(16) %6582)
          to label %6583 unwind label %6600

6583:                                             ; preds = %6577
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %732, ptr noundef %733, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %6584 unwind label %6604

6584:                                             ; preds = %6583
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %733) #11
  %6585 = load ptr, ptr %730, align 8, !tbaa !5
  %6586 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %394, ptr noundef nonnull align 8 dereferenceable(32) %6585)
          to label %6587 unwind label %6608

6587:                                             ; preds = %6584
  %6588 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6586)
          to label %6589 unwind label %6608

6589:                                             ; preds = %6587
  call void @llvm.lifetime.start.p0(i64 16, ptr %734) #11
  %6590 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_stmtIJA37_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %734, ptr noundef nonnull align 8 dereferenceable(264) %6590, ptr noundef nonnull align 1 dereferenceable(37) @.str.153, ptr noundef nonnull align 8 dereferenceable(16) %732, ptr noundef nonnull align 1 dereferenceable(10) @.str.154)
          to label %6591 unwind label %6612

6591:                                             ; preds = %6589
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6588, ptr noundef nonnull align 8 dereferenceable(16) %734)
          to label %6592 unwind label %6616

6592:                                             ; preds = %6591
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %734) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %734) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %732) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %732) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %731) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %730) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %729) #11
  br label %6593

6593:                                             ; preds = %6592
  %6594 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %727)
          to label %6595 unwind label %6571

6595:                                             ; preds = %6593
  br label %6559

6596:                                             ; preds = %6575
  %6597 = landingpad { ptr, i32 }
          cleanup
  %6598 = extractvalue { ptr, i32 } %6597, 0
  store ptr %6598, ptr %11, align 8
  %6599 = extractvalue { ptr, i32 } %6597, 1
  store i32 %6599, ptr %12, align 4
  br label %6623

6600:                                             ; preds = %6577
  %6601 = landingpad { ptr, i32 }
          cleanup
  %6602 = extractvalue { ptr, i32 } %6601, 0
  store ptr %6602, ptr %11, align 8
  %6603 = extractvalue { ptr, i32 } %6601, 1
  store i32 %6603, ptr %12, align 4
  br label %6622

6604:                                             ; preds = %6583
  %6605 = landingpad { ptr, i32 }
          cleanup
  %6606 = extractvalue { ptr, i32 } %6605, 0
  store ptr %6606, ptr %11, align 8
  %6607 = extractvalue { ptr, i32 } %6605, 1
  store i32 %6607, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %733) #11
  br label %6622

6608:                                             ; preds = %6587, %6584
  %6609 = landingpad { ptr, i32 }
          cleanup
  %6610 = extractvalue { ptr, i32 } %6609, 0
  store ptr %6610, ptr %11, align 8
  %6611 = extractvalue { ptr, i32 } %6609, 1
  store i32 %6611, ptr %12, align 4
  br label %6621

6612:                                             ; preds = %6589
  %6613 = landingpad { ptr, i32 }
          cleanup
  %6614 = extractvalue { ptr, i32 } %6613, 0
  store ptr %6614, ptr %11, align 8
  %6615 = extractvalue { ptr, i32 } %6613, 1
  store i32 %6615, ptr %12, align 4
  br label %6620

6616:                                             ; preds = %6591
  %6617 = landingpad { ptr, i32 }
          cleanup
  %6618 = extractvalue { ptr, i32 } %6617, 0
  store ptr %6618, ptr %11, align 8
  %6619 = extractvalue { ptr, i32 } %6617, 1
  store i32 %6619, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %734) #11
  br label %6620

6620:                                             ; preds = %6616, %6612
  call void @llvm.lifetime.end.p0(i64 16, ptr %734) #11
  br label %6621

6621:                                             ; preds = %6620, %6608
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %732) #11
  br label %6622

6622:                                             ; preds = %6621, %6604, %6600
  call void @llvm.lifetime.end.p0(i64 16, ptr %732) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %731) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %730) #11
  br label %6623

6623:                                             ; preds = %6622, %6596
  call void @llvm.lifetime.end.p0(i64 8, ptr %729) #11
  br label %6624

6624:                                             ; preds = %6623, %6571
  call void @llvm.lifetime.end.p0(i64 16, ptr %728) #11
  br label %6625

6625:                                             ; preds = %6624, %6567
  call void @llvm.lifetime.end.p0(i64 16, ptr %727) #11
  br label %6626

6626:                                             ; preds = %6625, %6563
  call void @llvm.lifetime.end.p0(i64 8, ptr %726) #11
  br label %7092

6627:                                             ; preds = %6562
  call void @llvm.lifetime.start.p0(i64 16, ptr %735) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %735)
          to label %6628 unwind label %6654

6628:                                             ; preds = %6627
  call void @llvm.lifetime.start.p0(i64 8, ptr %736) #11
  store i64 0, ptr %736, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %737) #11
  %6629 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %6630 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6629)
          to label %6631 unwind label %6658

6631:                                             ; preds = %6628
  %6632 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %6630, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %6633 unwind label %6658

6633:                                             ; preds = %6631
  %6634 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %6632)
          to label %6635 unwind label %6658

6635:                                             ; preds = %6633
  store ptr %6634, ptr %737, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %738) #11
  %6636 = load ptr, ptr %737, align 8, !tbaa !5
  %6637 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %6636)
          to label %6638 unwind label %6662

6638:                                             ; preds = %6635
  %6639 = getelementptr inbounds { ptr, i64 }, ptr %738, i32 0, i32 0
  %6640 = extractvalue { ptr, i64 } %6637, 0
  store ptr %6640, ptr %6639, align 8
  %6641 = getelementptr inbounds { ptr, i64 }, ptr %738, i32 0, i32 1
  %6642 = extractvalue { ptr, i64 } %6637, 1
  store i64 %6642, ptr %6641, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %739) #11
  %6643 = load ptr, ptr %737, align 8, !tbaa !5
  %6644 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %6643)
          to label %6645 unwind label %6666

6645:                                             ; preds = %6638
  %6646 = getelementptr inbounds { ptr, i64 }, ptr %739, i32 0, i32 0
  %6647 = extractvalue { ptr, i64 } %6644, 0
  store ptr %6647, ptr %6646, align 8
  %6648 = getelementptr inbounds { ptr, i64 }, ptr %739, i32 0, i32 1
  %6649 = extractvalue { ptr, i64 } %6644, 1
  store i64 %6649, ptr %6648, align 8
  br label %6650

6650:                                             ; preds = %6719, %6645
  %6651 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %738, ptr noundef nonnull align 8 dereferenceable(16) %739)
          to label %6652 unwind label %6666

6652:                                             ; preds = %6650
  br i1 %6651, label %6670, label %6653

6653:                                             ; preds = %6652
  store i32 51, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %739) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %738) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %737) #11
  br label %6816

6654:                                             ; preds = %6627
  %6655 = landingpad { ptr, i32 }
          cleanup
  %6656 = extractvalue { ptr, i32 } %6655, 0
  store ptr %6656, ptr %11, align 8
  %6657 = extractvalue { ptr, i32 } %6655, 1
  store i32 %6657, ptr %12, align 4
  br label %6878

6658:                                             ; preds = %6633, %6631, %6628
  %6659 = landingpad { ptr, i32 }
          cleanup
  %6660 = extractvalue { ptr, i32 } %6659, 0
  store ptr %6660, ptr %11, align 8
  %6661 = extractvalue { ptr, i32 } %6659, 1
  store i32 %6661, ptr %12, align 4
  br label %6815

6662:                                             ; preds = %6635
  %6663 = landingpad { ptr, i32 }
          cleanup
  %6664 = extractvalue { ptr, i32 } %6663, 0
  store ptr %6664, ptr %11, align 8
  %6665 = extractvalue { ptr, i32 } %6663, 1
  store i32 %6665, ptr %12, align 4
  br label %6814

6666:                                             ; preds = %6717, %6650, %6638
  %6667 = landingpad { ptr, i32 }
          cleanup
  %6668 = extractvalue { ptr, i32 } %6667, 0
  store ptr %6668, ptr %11, align 8
  %6669 = extractvalue { ptr, i32 } %6667, 1
  store i32 %6669, ptr %12, align 4
  br label %6813

6670:                                             ; preds = %6652
  call void @llvm.lifetime.start.p0(i64 8, ptr %740) #11
  %6671 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %738)
          to label %6672 unwind label %6720

6672:                                             ; preds = %6670
  store ptr %6671, ptr %740, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %741) #11
  %6673 = load ptr, ptr %740, align 8, !tbaa !5
  %6674 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6673) #11
  store ptr %6674, ptr %741, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %742) #11
  %6675 = load ptr, ptr %740, align 8, !tbaa !5
  %6676 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6675) #11
  store ptr %6676, ptr %742, align 8, !tbaa !5
  %6677 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %735)
          to label %6678 unwind label %6724

6678:                                             ; preds = %6672
  call void @llvm.lifetime.start.p0(i64 16, ptr %743) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %744) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %745) #11
  %6679 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %746) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %747)
          to label %6680 unwind label %6728

6680:                                             ; preds = %6678
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %748)
          to label %6681 unwind label %6732

6681:                                             ; preds = %6680
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %746, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %747, ptr noundef %748)
          to label %6682 unwind label %6736

6682:                                             ; preds = %6681
  %6683 = load ptr, ptr %741, align 8, !tbaa !5
  %6684 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %427)
          to label %6685 unwind label %6740

6685:                                             ; preds = %6682
  %6686 = load i64, ptr %736, align 8, !tbaa !15
  %6687 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %6684, i64 noundef %6686)
          to label %6688 unwind label %6740

6688:                                             ; preds = %6685
  call void @llvm.lifetime.start.p0(i64 16, ptr %749) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %751) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %752) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %754) #11
  store ptr %754, ptr %755, align 8
  %6689 = load ptr, ptr %741, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %754, ptr noundef nonnull align 8 dereferenceable(32) %6689)
          to label %6690 unwind label %6744

6690:                                             ; preds = %6688
  %6691 = getelementptr inbounds %"class.std::initializer_list", ptr %753, i32 0, i32 0
  store ptr %754, ptr %6691, align 8, !tbaa !11
  %6692 = getelementptr inbounds %"class.std::initializer_list", ptr %753, i32 0, i32 1
  store i64 1, ptr %6692, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %756) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %756) #11
  %6693 = getelementptr inbounds { ptr, i64 }, ptr %753, i32 0, i32 0
  %6694 = load ptr, ptr %6693, align 8
  %6695 = getelementptr inbounds { ptr, i64 }, ptr %753, i32 0, i32 1
  %6696 = load i64, ptr %6695, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %752, ptr %6694, i64 %6696, ptr noundef nonnull align 1 dereferenceable(1) %756)
          to label %6697 unwind label %6755

6697:                                             ; preds = %6690
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %751, ptr noundef nonnull align 8 dereferenceable(24) %752)
          to label %6698 unwind label %6759

6698:                                             ; preds = %6697
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %750, ptr noundef nonnull align 8 dereferenceable(16) %751)
          to label %6699 unwind label %6763

6699:                                             ; preds = %6698
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %757)
          to label %6700 unwind label %6767

6700:                                             ; preds = %6699
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %749, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %750, ptr noundef %757)
          to label %6701 unwind label %6771

6701:                                             ; preds = %6700
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %745, ptr noundef nonnull align 8 dereferenceable(264) %6679, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %746, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %6683, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 8 dereferenceable(16) %6687, ptr noundef nonnull align 1 dereferenceable(8) @.str.155, ptr noundef nonnull align 8 dereferenceable(16) %749, ptr noundef nonnull align 1 dereferenceable(5) @.str.134, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %6702 unwind label %6775

6702:                                             ; preds = %6701
  %6703 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %745)
          to label %6704 unwind label %6779

6704:                                             ; preds = %6702
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.124") align 8 %744, ptr noundef nonnull align 8 dereferenceable(136) %6703)
          to label %6705 unwind label %6779

6705:                                             ; preds = %6704
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %743, ptr noundef nonnull align 8 dereferenceable(16) %744)
          to label %6706 unwind label %6783

6706:                                             ; preds = %6705
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6677, ptr noundef nonnull align 8 dereferenceable(16) %743)
          to label %6707 unwind label %6787

6707:                                             ; preds = %6706
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %743) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %744) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %745) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %749) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %757) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %750) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %751) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %752) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %756) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %756) #11
  %6708 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %754, i32 0, i32 0
  %6709 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6708, i64 1
  br label %6710

6710:                                             ; preds = %6710, %6707
  %6711 = phi ptr [ %6709, %6707 ], [ %6712, %6710 ]
  %6712 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6711, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6712) #11
  %6713 = icmp eq ptr %6712, %6708
  br i1 %6713, label %6714, label %6710

6714:                                             ; preds = %6710
  call void @llvm.lifetime.end.p0(i64 32, ptr %754) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %752) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %751) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %749) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %746) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %748) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %747) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %746) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %745) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %744) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %743) #11
  %6715 = load i64, ptr %736, align 8, !tbaa !15
  %6716 = add nsw i64 %6715, 1
  store i64 %6716, ptr %736, align 8, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %742) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %741) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %740) #11
  br label %6717

6717:                                             ; preds = %6714
  %6718 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %738)
          to label %6719 unwind label %6666

6719:                                             ; preds = %6717
  br label %6650

6720:                                             ; preds = %6670
  %6721 = landingpad { ptr, i32 }
          cleanup
  %6722 = extractvalue { ptr, i32 } %6721, 0
  store ptr %6722, ptr %11, align 8
  %6723 = extractvalue { ptr, i32 } %6721, 1
  store i32 %6723, ptr %12, align 4
  br label %6812

6724:                                             ; preds = %6672
  %6725 = landingpad { ptr, i32 }
          cleanup
  %6726 = extractvalue { ptr, i32 } %6725, 0
  store ptr %6726, ptr %11, align 8
  %6727 = extractvalue { ptr, i32 } %6725, 1
  store i32 %6727, ptr %12, align 4
  br label %6811

6728:                                             ; preds = %6678
  %6729 = landingpad { ptr, i32 }
          cleanup
  %6730 = extractvalue { ptr, i32 } %6729, 0
  store ptr %6730, ptr %11, align 8
  %6731 = extractvalue { ptr, i32 } %6729, 1
  store i32 %6731, ptr %12, align 4
  br label %6810

6732:                                             ; preds = %6680
  %6733 = landingpad { ptr, i32 }
          cleanup
  %6734 = extractvalue { ptr, i32 } %6733, 0
  store ptr %6734, ptr %11, align 8
  %6735 = extractvalue { ptr, i32 } %6733, 1
  store i32 %6735, ptr %12, align 4
  br label %6809

6736:                                             ; preds = %6681
  %6737 = landingpad { ptr, i32 }
          cleanup
  %6738 = extractvalue { ptr, i32 } %6737, 0
  store ptr %6738, ptr %11, align 8
  %6739 = extractvalue { ptr, i32 } %6737, 1
  store i32 %6739, ptr %12, align 4
  br label %6808

6740:                                             ; preds = %6685, %6682
  %6741 = landingpad { ptr, i32 }
          cleanup
  %6742 = extractvalue { ptr, i32 } %6741, 0
  store ptr %6742, ptr %11, align 8
  %6743 = extractvalue { ptr, i32 } %6741, 1
  store i32 %6743, ptr %12, align 4
  br label %6807

6744:                                             ; preds = %6688
  %6745 = landingpad { ptr, i32 }
          cleanup
  %6746 = extractvalue { ptr, i32 } %6745, 0
  store ptr %6746, ptr %11, align 8
  %6747 = extractvalue { ptr, i32 } %6745, 1
  store i32 %6747, ptr %12, align 4
  %6748 = load ptr, ptr %755, align 8
  %6749 = icmp eq ptr %754, %6748
  br i1 %6749, label %6754, label %6750

6750:                                             ; preds = %6750, %6744
  %6751 = phi ptr [ %6748, %6744 ], [ %6752, %6750 ]
  %6752 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6751, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6752) #11
  %6753 = icmp eq ptr %6752, %754
  br i1 %6753, label %6754, label %6750

6754:                                             ; preds = %6750, %6744
  br label %6806

6755:                                             ; preds = %6690
  %6756 = landingpad { ptr, i32 }
          cleanup
  %6757 = extractvalue { ptr, i32 } %6756, 0
  store ptr %6757, ptr %11, align 8
  %6758 = extractvalue { ptr, i32 } %6756, 1
  store i32 %6758, ptr %12, align 4
  br label %6798

6759:                                             ; preds = %6697
  %6760 = landingpad { ptr, i32 }
          cleanup
  %6761 = extractvalue { ptr, i32 } %6760, 0
  store ptr %6761, ptr %11, align 8
  %6762 = extractvalue { ptr, i32 } %6760, 1
  store i32 %6762, ptr %12, align 4
  br label %6797

6763:                                             ; preds = %6698
  %6764 = landingpad { ptr, i32 }
          cleanup
  %6765 = extractvalue { ptr, i32 } %6764, 0
  store ptr %6765, ptr %11, align 8
  %6766 = extractvalue { ptr, i32 } %6764, 1
  store i32 %6766, ptr %12, align 4
  br label %6796

6767:                                             ; preds = %6699
  %6768 = landingpad { ptr, i32 }
          cleanup
  %6769 = extractvalue { ptr, i32 } %6768, 0
  store ptr %6769, ptr %11, align 8
  %6770 = extractvalue { ptr, i32 } %6768, 1
  store i32 %6770, ptr %12, align 4
  br label %6795

6771:                                             ; preds = %6700
  %6772 = landingpad { ptr, i32 }
          cleanup
  %6773 = extractvalue { ptr, i32 } %6772, 0
  store ptr %6773, ptr %11, align 8
  %6774 = extractvalue { ptr, i32 } %6772, 1
  store i32 %6774, ptr %12, align 4
  br label %6794

6775:                                             ; preds = %6701
  %6776 = landingpad { ptr, i32 }
          cleanup
  %6777 = extractvalue { ptr, i32 } %6776, 0
  store ptr %6777, ptr %11, align 8
  %6778 = extractvalue { ptr, i32 } %6776, 1
  store i32 %6778, ptr %12, align 4
  br label %6793

6779:                                             ; preds = %6704, %6702
  %6780 = landingpad { ptr, i32 }
          cleanup
  %6781 = extractvalue { ptr, i32 } %6780, 0
  store ptr %6781, ptr %11, align 8
  %6782 = extractvalue { ptr, i32 } %6780, 1
  store i32 %6782, ptr %12, align 4
  br label %6792

6783:                                             ; preds = %6705
  %6784 = landingpad { ptr, i32 }
          cleanup
  %6785 = extractvalue { ptr, i32 } %6784, 0
  store ptr %6785, ptr %11, align 8
  %6786 = extractvalue { ptr, i32 } %6784, 1
  store i32 %6786, ptr %12, align 4
  br label %6791

6787:                                             ; preds = %6706
  %6788 = landingpad { ptr, i32 }
          cleanup
  %6789 = extractvalue { ptr, i32 } %6788, 0
  store ptr %6789, ptr %11, align 8
  %6790 = extractvalue { ptr, i32 } %6788, 1
  store i32 %6790, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %743) #11
  br label %6791

6791:                                             ; preds = %6787, %6783
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %744) #11
  br label %6792

6792:                                             ; preds = %6791, %6779
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %745) #11
  br label %6793

6793:                                             ; preds = %6792, %6775
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %749) #11
  br label %6794

6794:                                             ; preds = %6793, %6771
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %757) #11
  br label %6795

6795:                                             ; preds = %6794, %6767
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %750) #11
  br label %6796

6796:                                             ; preds = %6795, %6763
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %751) #11
  br label %6797

6797:                                             ; preds = %6796, %6759
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %752) #11
  br label %6798

6798:                                             ; preds = %6797, %6755
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %756) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %756) #11
  %6799 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %754, i32 0, i32 0
  %6800 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6799, i64 1
  br label %6801

6801:                                             ; preds = %6801, %6798
  %6802 = phi ptr [ %6800, %6798 ], [ %6803, %6801 ]
  %6803 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6802, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6803) #11
  %6804 = icmp eq ptr %6803, %6799
  br i1 %6804, label %6805, label %6801

6805:                                             ; preds = %6801
  br label %6806

6806:                                             ; preds = %6805, %6754
  call void @llvm.lifetime.end.p0(i64 32, ptr %754) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %752) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %751) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %749) #11
  br label %6807

6807:                                             ; preds = %6806, %6740
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %746) #11
  br label %6808

6808:                                             ; preds = %6807, %6736
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %748) #11
  br label %6809

6809:                                             ; preds = %6808, %6732
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %747) #11
  br label %6810

6810:                                             ; preds = %6809, %6728
  call void @llvm.lifetime.end.p0(i64 16, ptr %746) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %745) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %744) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %743) #11
  br label %6811

6811:                                             ; preds = %6810, %6724
  call void @llvm.lifetime.end.p0(i64 8, ptr %742) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %741) #11
  br label %6812

6812:                                             ; preds = %6811, %6720
  call void @llvm.lifetime.end.p0(i64 8, ptr %740) #11
  br label %6813

6813:                                             ; preds = %6812, %6666
  call void @llvm.lifetime.end.p0(i64 16, ptr %739) #11
  br label %6814

6814:                                             ; preds = %6813, %6662
  call void @llvm.lifetime.end.p0(i64 16, ptr %738) #11
  br label %6815

6815:                                             ; preds = %6814, %6658
  call void @llvm.lifetime.end.p0(i64 8, ptr %737) #11
  br label %6877

6816:                                             ; preds = %6653
  %6817 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %735)
          to label %6818 unwind label %6855

6818:                                             ; preds = %6816
  call void @llvm.lifetime.start.p0(i64 16, ptr %758) #11
  %6819 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %758, ptr noundef nonnull align 8 dereferenceable(264) %6819, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %6820 unwind label %6859

6820:                                             ; preds = %6818
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6817, ptr noundef nonnull align 8 dereferenceable(16) %758)
          to label %6821 unwind label %6863

6821:                                             ; preds = %6820
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %758) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %758) #11
  %6822 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %425)
          to label %6823 unwind label %6855

6823:                                             ; preds = %6821
  call void @llvm.lifetime.start.p0(i64 16, ptr %759) #11
  %6824 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %6825 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %735)
          to label %6826 unwind label %6868

6826:                                             ; preds = %6823
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cS3_A4_cNS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEA2_cEEESB_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %759, ptr noundef nonnull align 8 dereferenceable(264) %6824, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 1 dereferenceable(9) @.str.156, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %6825, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %6827 unwind label %6868

6827:                                             ; preds = %6826
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6822, ptr noundef nonnull align 8 dereferenceable(16) %759)
          to label %6828 unwind label %6872

6828:                                             ; preds = %6827
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %759) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %759) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %736) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %735) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %735) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %760) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %760)
          to label %6829 unwind label %6879

6829:                                             ; preds = %6828
  call void @llvm.lifetime.start.p0(i64 8, ptr %761) #11
  store i64 0, ptr %761, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %762) #11
  %6830 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %6831 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %6830)
          to label %6832 unwind label %6883

6832:                                             ; preds = %6829
  %6833 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %6831, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %6834 unwind label %6883

6834:                                             ; preds = %6832
  %6835 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %6833)
          to label %6836 unwind label %6883

6836:                                             ; preds = %6834
  store ptr %6835, ptr %762, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %763) #11
  %6837 = load ptr, ptr %762, align 8, !tbaa !5
  %6838 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %6837)
          to label %6839 unwind label %6887

6839:                                             ; preds = %6836
  %6840 = getelementptr inbounds { ptr, i64 }, ptr %763, i32 0, i32 0
  %6841 = extractvalue { ptr, i64 } %6838, 0
  store ptr %6841, ptr %6840, align 8
  %6842 = getelementptr inbounds { ptr, i64 }, ptr %763, i32 0, i32 1
  %6843 = extractvalue { ptr, i64 } %6838, 1
  store i64 %6843, ptr %6842, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %764) #11
  %6844 = load ptr, ptr %762, align 8, !tbaa !5
  %6845 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %6844)
          to label %6846 unwind label %6891

6846:                                             ; preds = %6839
  %6847 = getelementptr inbounds { ptr, i64 }, ptr %764, i32 0, i32 0
  %6848 = extractvalue { ptr, i64 } %6845, 0
  store ptr %6848, ptr %6847, align 8
  %6849 = getelementptr inbounds { ptr, i64 }, ptr %764, i32 0, i32 1
  %6850 = extractvalue { ptr, i64 } %6845, 1
  store i64 %6850, ptr %6849, align 8
  br label %6851

6851:                                             ; preds = %6944, %6846
  %6852 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %763, ptr noundef nonnull align 8 dereferenceable(16) %764)
          to label %6853 unwind label %6891

6853:                                             ; preds = %6851
  br i1 %6852, label %6895, label %6854

6854:                                             ; preds = %6853
  store i32 53, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %764) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %763) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %762) #11
  br label %7041

6855:                                             ; preds = %6821, %6816
  %6856 = landingpad { ptr, i32 }
          cleanup
  %6857 = extractvalue { ptr, i32 } %6856, 0
  store ptr %6857, ptr %11, align 8
  %6858 = extractvalue { ptr, i32 } %6856, 1
  store i32 %6858, ptr %12, align 4
  br label %6877

6859:                                             ; preds = %6818
  %6860 = landingpad { ptr, i32 }
          cleanup
  %6861 = extractvalue { ptr, i32 } %6860, 0
  store ptr %6861, ptr %11, align 8
  %6862 = extractvalue { ptr, i32 } %6860, 1
  store i32 %6862, ptr %12, align 4
  br label %6867

6863:                                             ; preds = %6820
  %6864 = landingpad { ptr, i32 }
          cleanup
  %6865 = extractvalue { ptr, i32 } %6864, 0
  store ptr %6865, ptr %11, align 8
  %6866 = extractvalue { ptr, i32 } %6864, 1
  store i32 %6866, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %758) #11
  br label %6867

6867:                                             ; preds = %6863, %6859
  call void @llvm.lifetime.end.p0(i64 16, ptr %758) #11
  br label %6877

6868:                                             ; preds = %6826, %6823
  %6869 = landingpad { ptr, i32 }
          cleanup
  %6870 = extractvalue { ptr, i32 } %6869, 0
  store ptr %6870, ptr %11, align 8
  %6871 = extractvalue { ptr, i32 } %6869, 1
  store i32 %6871, ptr %12, align 4
  br label %6876

6872:                                             ; preds = %6827
  %6873 = landingpad { ptr, i32 }
          cleanup
  %6874 = extractvalue { ptr, i32 } %6873, 0
  store ptr %6874, ptr %11, align 8
  %6875 = extractvalue { ptr, i32 } %6873, 1
  store i32 %6875, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %759) #11
  br label %6876

6876:                                             ; preds = %6872, %6868
  call void @llvm.lifetime.end.p0(i64 16, ptr %759) #11
  br label %6877

6877:                                             ; preds = %6876, %6867, %6855, %6815
  call void @llvm.lifetime.end.p0(i64 8, ptr %736) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %735) #11
  br label %6878

6878:                                             ; preds = %6877, %6654
  call void @llvm.lifetime.end.p0(i64 16, ptr %735) #11
  br label %7092

6879:                                             ; preds = %6828
  %6880 = landingpad { ptr, i32 }
          cleanup
  %6881 = extractvalue { ptr, i32 } %6880, 0
  store ptr %6881, ptr %11, align 8
  %6882 = extractvalue { ptr, i32 } %6880, 1
  store i32 %6882, ptr %12, align 4
  br label %7082

6883:                                             ; preds = %6834, %6832, %6829
  %6884 = landingpad { ptr, i32 }
          cleanup
  %6885 = extractvalue { ptr, i32 } %6884, 0
  store ptr %6885, ptr %11, align 8
  %6886 = extractvalue { ptr, i32 } %6884, 1
  store i32 %6886, ptr %12, align 4
  br label %7040

6887:                                             ; preds = %6836
  %6888 = landingpad { ptr, i32 }
          cleanup
  %6889 = extractvalue { ptr, i32 } %6888, 0
  store ptr %6889, ptr %11, align 8
  %6890 = extractvalue { ptr, i32 } %6888, 1
  store i32 %6890, ptr %12, align 4
  br label %7039

6891:                                             ; preds = %6942, %6851, %6839
  %6892 = landingpad { ptr, i32 }
          cleanup
  %6893 = extractvalue { ptr, i32 } %6892, 0
  store ptr %6893, ptr %11, align 8
  %6894 = extractvalue { ptr, i32 } %6892, 1
  store i32 %6894, ptr %12, align 4
  br label %7038

6895:                                             ; preds = %6853
  call void @llvm.lifetime.start.p0(i64 8, ptr %765) #11
  %6896 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %763)
          to label %6897 unwind label %6945

6897:                                             ; preds = %6895
  store ptr %6896, ptr %765, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %766) #11
  %6898 = load ptr, ptr %765, align 8, !tbaa !5
  %6899 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6898) #11
  store ptr %6899, ptr %766, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %767) #11
  %6900 = load ptr, ptr %765, align 8, !tbaa !5
  %6901 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %6900) #11
  store ptr %6901, ptr %767, align 8, !tbaa !5
  %6902 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %760)
          to label %6903 unwind label %6949

6903:                                             ; preds = %6897
  call void @llvm.lifetime.start.p0(i64 16, ptr %768) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %769) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %770) #11
  %6904 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %771) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %772)
          to label %6905 unwind label %6953

6905:                                             ; preds = %6903
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %773)
          to label %6906 unwind label %6957

6906:                                             ; preds = %6905
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %771, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %772, ptr noundef %773)
          to label %6907 unwind label %6961

6907:                                             ; preds = %6906
  %6908 = load ptr, ptr %766, align 8, !tbaa !5
  %6909 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %460)
          to label %6910 unwind label %6965

6910:                                             ; preds = %6907
  %6911 = load i64, ptr %761, align 8, !tbaa !15
  %6912 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %6909, i64 noundef %6911)
          to label %6913 unwind label %6965

6913:                                             ; preds = %6910
  call void @llvm.lifetime.start.p0(i64 16, ptr %774) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %776) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %777) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %779) #11
  store ptr %779, ptr %780, align 8
  %6914 = load ptr, ptr %766, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %779, ptr noundef nonnull align 8 dereferenceable(32) %6914)
          to label %6915 unwind label %6969

6915:                                             ; preds = %6913
  %6916 = getelementptr inbounds %"class.std::initializer_list", ptr %778, i32 0, i32 0
  store ptr %779, ptr %6916, align 8, !tbaa !11
  %6917 = getelementptr inbounds %"class.std::initializer_list", ptr %778, i32 0, i32 1
  store i64 1, ptr %6917, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %781) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %781) #11
  %6918 = getelementptr inbounds { ptr, i64 }, ptr %778, i32 0, i32 0
  %6919 = load ptr, ptr %6918, align 8
  %6920 = getelementptr inbounds { ptr, i64 }, ptr %778, i32 0, i32 1
  %6921 = load i64, ptr %6920, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %777, ptr %6919, i64 %6921, ptr noundef nonnull align 1 dereferenceable(1) %781)
          to label %6922 unwind label %6980

6922:                                             ; preds = %6915
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %776, ptr noundef nonnull align 8 dereferenceable(24) %777)
          to label %6923 unwind label %6984

6923:                                             ; preds = %6922
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %775, ptr noundef nonnull align 8 dereferenceable(16) %776)
          to label %6924 unwind label %6988

6924:                                             ; preds = %6923
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %782)
          to label %6925 unwind label %6992

6925:                                             ; preds = %6924
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %774, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %775, ptr noundef %782)
          to label %6926 unwind label %6996

6926:                                             ; preds = %6925
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %770, ptr noundef nonnull align 8 dereferenceable(264) %6904, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %771, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %6908, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 1 dereferenceable(7) @.str.92, ptr noundef nonnull align 8 dereferenceable(16) %6912, ptr noundef nonnull align 1 dereferenceable(8) @.str.155, ptr noundef nonnull align 8 dereferenceable(16) %774, ptr noundef nonnull align 1 dereferenceable(5) @.str.134, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %6927 unwind label %7000

6927:                                             ; preds = %6926
  %6928 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %770)
          to label %6929 unwind label %7004

6929:                                             ; preds = %6927
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.124") align 8 %769, ptr noundef nonnull align 8 dereferenceable(136) %6928)
          to label %6930 unwind label %7004

6930:                                             ; preds = %6929
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %768, ptr noundef nonnull align 8 dereferenceable(16) %769)
          to label %6931 unwind label %7008

6931:                                             ; preds = %6930
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %6902, ptr noundef nonnull align 8 dereferenceable(16) %768)
          to label %6932 unwind label %7012

6932:                                             ; preds = %6931
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %768) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %769) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %770) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %774) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %782) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %775) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %776) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %777) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %781) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %781) #11
  %6933 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %779, i32 0, i32 0
  %6934 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6933, i64 1
  br label %6935

6935:                                             ; preds = %6935, %6932
  %6936 = phi ptr [ %6934, %6932 ], [ %6937, %6935 ]
  %6937 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6936, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6937) #11
  %6938 = icmp eq ptr %6937, %6933
  br i1 %6938, label %6939, label %6935

6939:                                             ; preds = %6935
  call void @llvm.lifetime.end.p0(i64 32, ptr %779) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %777) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %776) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %774) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %771) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %773) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %772) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %771) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %770) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %769) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %768) #11
  %6940 = load i64, ptr %761, align 8, !tbaa !15
  %6941 = add nsw i64 %6940, 1
  store i64 %6941, ptr %761, align 8, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %767) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %766) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %765) #11
  br label %6942

6942:                                             ; preds = %6939
  %6943 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %763)
          to label %6944 unwind label %6891

6944:                                             ; preds = %6942
  br label %6851

6945:                                             ; preds = %6895
  %6946 = landingpad { ptr, i32 }
          cleanup
  %6947 = extractvalue { ptr, i32 } %6946, 0
  store ptr %6947, ptr %11, align 8
  %6948 = extractvalue { ptr, i32 } %6946, 1
  store i32 %6948, ptr %12, align 4
  br label %7037

6949:                                             ; preds = %6897
  %6950 = landingpad { ptr, i32 }
          cleanup
  %6951 = extractvalue { ptr, i32 } %6950, 0
  store ptr %6951, ptr %11, align 8
  %6952 = extractvalue { ptr, i32 } %6950, 1
  store i32 %6952, ptr %12, align 4
  br label %7036

6953:                                             ; preds = %6903
  %6954 = landingpad { ptr, i32 }
          cleanup
  %6955 = extractvalue { ptr, i32 } %6954, 0
  store ptr %6955, ptr %11, align 8
  %6956 = extractvalue { ptr, i32 } %6954, 1
  store i32 %6956, ptr %12, align 4
  br label %7035

6957:                                             ; preds = %6905
  %6958 = landingpad { ptr, i32 }
          cleanup
  %6959 = extractvalue { ptr, i32 } %6958, 0
  store ptr %6959, ptr %11, align 8
  %6960 = extractvalue { ptr, i32 } %6958, 1
  store i32 %6960, ptr %12, align 4
  br label %7034

6961:                                             ; preds = %6906
  %6962 = landingpad { ptr, i32 }
          cleanup
  %6963 = extractvalue { ptr, i32 } %6962, 0
  store ptr %6963, ptr %11, align 8
  %6964 = extractvalue { ptr, i32 } %6962, 1
  store i32 %6964, ptr %12, align 4
  br label %7033

6965:                                             ; preds = %6910, %6907
  %6966 = landingpad { ptr, i32 }
          cleanup
  %6967 = extractvalue { ptr, i32 } %6966, 0
  store ptr %6967, ptr %11, align 8
  %6968 = extractvalue { ptr, i32 } %6966, 1
  store i32 %6968, ptr %12, align 4
  br label %7032

6969:                                             ; preds = %6913
  %6970 = landingpad { ptr, i32 }
          cleanup
  %6971 = extractvalue { ptr, i32 } %6970, 0
  store ptr %6971, ptr %11, align 8
  %6972 = extractvalue { ptr, i32 } %6970, 1
  store i32 %6972, ptr %12, align 4
  %6973 = load ptr, ptr %780, align 8
  %6974 = icmp eq ptr %779, %6973
  br i1 %6974, label %6979, label %6975

6975:                                             ; preds = %6975, %6969
  %6976 = phi ptr [ %6973, %6969 ], [ %6977, %6975 ]
  %6977 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %6976, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6977) #11
  %6978 = icmp eq ptr %6977, %779
  br i1 %6978, label %6979, label %6975

6979:                                             ; preds = %6975, %6969
  br label %7031

6980:                                             ; preds = %6915
  %6981 = landingpad { ptr, i32 }
          cleanup
  %6982 = extractvalue { ptr, i32 } %6981, 0
  store ptr %6982, ptr %11, align 8
  %6983 = extractvalue { ptr, i32 } %6981, 1
  store i32 %6983, ptr %12, align 4
  br label %7023

6984:                                             ; preds = %6922
  %6985 = landingpad { ptr, i32 }
          cleanup
  %6986 = extractvalue { ptr, i32 } %6985, 0
  store ptr %6986, ptr %11, align 8
  %6987 = extractvalue { ptr, i32 } %6985, 1
  store i32 %6987, ptr %12, align 4
  br label %7022

6988:                                             ; preds = %6923
  %6989 = landingpad { ptr, i32 }
          cleanup
  %6990 = extractvalue { ptr, i32 } %6989, 0
  store ptr %6990, ptr %11, align 8
  %6991 = extractvalue { ptr, i32 } %6989, 1
  store i32 %6991, ptr %12, align 4
  br label %7021

6992:                                             ; preds = %6924
  %6993 = landingpad { ptr, i32 }
          cleanup
  %6994 = extractvalue { ptr, i32 } %6993, 0
  store ptr %6994, ptr %11, align 8
  %6995 = extractvalue { ptr, i32 } %6993, 1
  store i32 %6995, ptr %12, align 4
  br label %7020

6996:                                             ; preds = %6925
  %6997 = landingpad { ptr, i32 }
          cleanup
  %6998 = extractvalue { ptr, i32 } %6997, 0
  store ptr %6998, ptr %11, align 8
  %6999 = extractvalue { ptr, i32 } %6997, 1
  store i32 %6999, ptr %12, align 4
  br label %7019

7000:                                             ; preds = %6926
  %7001 = landingpad { ptr, i32 }
          cleanup
  %7002 = extractvalue { ptr, i32 } %7001, 0
  store ptr %7002, ptr %11, align 8
  %7003 = extractvalue { ptr, i32 } %7001, 1
  store i32 %7003, ptr %12, align 4
  br label %7018

7004:                                             ; preds = %6929, %6927
  %7005 = landingpad { ptr, i32 }
          cleanup
  %7006 = extractvalue { ptr, i32 } %7005, 0
  store ptr %7006, ptr %11, align 8
  %7007 = extractvalue { ptr, i32 } %7005, 1
  store i32 %7007, ptr %12, align 4
  br label %7017

7008:                                             ; preds = %6930
  %7009 = landingpad { ptr, i32 }
          cleanup
  %7010 = extractvalue { ptr, i32 } %7009, 0
  store ptr %7010, ptr %11, align 8
  %7011 = extractvalue { ptr, i32 } %7009, 1
  store i32 %7011, ptr %12, align 4
  br label %7016

7012:                                             ; preds = %6931
  %7013 = landingpad { ptr, i32 }
          cleanup
  %7014 = extractvalue { ptr, i32 } %7013, 0
  store ptr %7014, ptr %11, align 8
  %7015 = extractvalue { ptr, i32 } %7013, 1
  store i32 %7015, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %768) #11
  br label %7016

7016:                                             ; preds = %7012, %7008
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %769) #11
  br label %7017

7017:                                             ; preds = %7016, %7004
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %770) #11
  br label %7018

7018:                                             ; preds = %7017, %7000
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %774) #11
  br label %7019

7019:                                             ; preds = %7018, %6996
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %782) #11
  br label %7020

7020:                                             ; preds = %7019, %6992
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %775) #11
  br label %7021

7021:                                             ; preds = %7020, %6988
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %776) #11
  br label %7022

7022:                                             ; preds = %7021, %6984
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %777) #11
  br label %7023

7023:                                             ; preds = %7022, %6980
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %781) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %781) #11
  %7024 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %779, i32 0, i32 0
  %7025 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %7024, i64 1
  br label %7026

7026:                                             ; preds = %7026, %7023
  %7027 = phi ptr [ %7025, %7023 ], [ %7028, %7026 ]
  %7028 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %7027, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7028) #11
  %7029 = icmp eq ptr %7028, %7024
  br i1 %7029, label %7030, label %7026

7030:                                             ; preds = %7026
  br label %7031

7031:                                             ; preds = %7030, %6979
  call void @llvm.lifetime.end.p0(i64 32, ptr %779) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %777) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %776) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %774) #11
  br label %7032

7032:                                             ; preds = %7031, %6965
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %771) #11
  br label %7033

7033:                                             ; preds = %7032, %6961
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %773) #11
  br label %7034

7034:                                             ; preds = %7033, %6957
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %772) #11
  br label %7035

7035:                                             ; preds = %7034, %6953
  call void @llvm.lifetime.end.p0(i64 16, ptr %771) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %770) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %769) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %768) #11
  br label %7036

7036:                                             ; preds = %7035, %6949
  call void @llvm.lifetime.end.p0(i64 8, ptr %767) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %766) #11
  br label %7037

7037:                                             ; preds = %7036, %6945
  call void @llvm.lifetime.end.p0(i64 8, ptr %765) #11
  br label %7038

7038:                                             ; preds = %7037, %6891
  call void @llvm.lifetime.end.p0(i64 16, ptr %764) #11
  br label %7039

7039:                                             ; preds = %7038, %6887
  call void @llvm.lifetime.end.p0(i64 16, ptr %763) #11
  br label %7040

7040:                                             ; preds = %7039, %6883
  call void @llvm.lifetime.end.p0(i64 8, ptr %762) #11
  br label %7081

7041:                                             ; preds = %6854
  %7042 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %760)
          to label %7043 unwind label %7059

7043:                                             ; preds = %7041
  call void @llvm.lifetime.start.p0(i64 16, ptr %783) #11
  %7044 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %783, ptr noundef nonnull align 8 dereferenceable(264) %7044, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %7045 unwind label %7063

7045:                                             ; preds = %7043
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7042, ptr noundef nonnull align 8 dereferenceable(16) %783)
          to label %7046 unwind label %7067

7046:                                             ; preds = %7045
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %783) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %783) #11
  %7047 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %458)
          to label %7048 unwind label %7059

7048:                                             ; preds = %7046
  call void @llvm.lifetime.start.p0(i64 16, ptr %784) #11
  %7049 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7050 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %760)
          to label %7051 unwind label %7072

7051:                                             ; preds = %7048
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cS3_A4_cNS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEA2_cEEESB_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %784, ptr noundef nonnull align 8 dereferenceable(264) %7049, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 1 dereferenceable(9) @.str.156, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %7050, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %7052 unwind label %7072

7052:                                             ; preds = %7051
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7047, ptr noundef nonnull align 8 dereferenceable(16) %784)
          to label %7053 unwind label %7076

7053:                                             ; preds = %7052
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %784) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %784) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %761) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %760) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %760) #11
  %7054 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %7055 unwind label %6172

7055:                                             ; preds = %7053
  call void @llvm.lifetime.start.p0(i64 16, ptr %785) #11
  %7056 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA6_cA15_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %785, ptr noundef nonnull align 8 dereferenceable(264) %7056, ptr noundef nonnull align 1 dereferenceable(6) @.str.145, ptr noundef nonnull align 1 dereferenceable(15) @.str.157)
          to label %7057 unwind label %7083

7057:                                             ; preds = %7055
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7054, ptr noundef nonnull align 8 dereferenceable(16) %785)
          to label %7058 unwind label %7087

7058:                                             ; preds = %7057
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %785) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %785) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %677) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %677) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %664) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %664) #11
  br label %7096

7059:                                             ; preds = %7046, %7041
  %7060 = landingpad { ptr, i32 }
          cleanup
  %7061 = extractvalue { ptr, i32 } %7060, 0
  store ptr %7061, ptr %11, align 8
  %7062 = extractvalue { ptr, i32 } %7060, 1
  store i32 %7062, ptr %12, align 4
  br label %7081

7063:                                             ; preds = %7043
  %7064 = landingpad { ptr, i32 }
          cleanup
  %7065 = extractvalue { ptr, i32 } %7064, 0
  store ptr %7065, ptr %11, align 8
  %7066 = extractvalue { ptr, i32 } %7064, 1
  store i32 %7066, ptr %12, align 4
  br label %7071

7067:                                             ; preds = %7045
  %7068 = landingpad { ptr, i32 }
          cleanup
  %7069 = extractvalue { ptr, i32 } %7068, 0
  store ptr %7069, ptr %11, align 8
  %7070 = extractvalue { ptr, i32 } %7068, 1
  store i32 %7070, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %783) #11
  br label %7071

7071:                                             ; preds = %7067, %7063
  call void @llvm.lifetime.end.p0(i64 16, ptr %783) #11
  br label %7081

7072:                                             ; preds = %7051, %7048
  %7073 = landingpad { ptr, i32 }
          cleanup
  %7074 = extractvalue { ptr, i32 } %7073, 0
  store ptr %7074, ptr %11, align 8
  %7075 = extractvalue { ptr, i32 } %7073, 1
  store i32 %7075, ptr %12, align 4
  br label %7080

7076:                                             ; preds = %7052
  %7077 = landingpad { ptr, i32 }
          cleanup
  %7078 = extractvalue { ptr, i32 } %7077, 0
  store ptr %7078, ptr %11, align 8
  %7079 = extractvalue { ptr, i32 } %7077, 1
  store i32 %7079, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %784) #11
  br label %7080

7080:                                             ; preds = %7076, %7072
  call void @llvm.lifetime.end.p0(i64 16, ptr %784) #11
  br label %7081

7081:                                             ; preds = %7080, %7071, %7059, %7040
  call void @llvm.lifetime.end.p0(i64 8, ptr %761) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %760) #11
  br label %7082

7082:                                             ; preds = %7081, %6879
  call void @llvm.lifetime.end.p0(i64 16, ptr %760) #11
  br label %7092

7083:                                             ; preds = %7055
  %7084 = landingpad { ptr, i32 }
          cleanup
  %7085 = extractvalue { ptr, i32 } %7084, 0
  store ptr %7085, ptr %11, align 8
  %7086 = extractvalue { ptr, i32 } %7084, 1
  store i32 %7086, ptr %12, align 4
  br label %7091

7087:                                             ; preds = %7057
  %7088 = landingpad { ptr, i32 }
          cleanup
  %7089 = extractvalue { ptr, i32 } %7088, 0
  store ptr %7089, ptr %11, align 8
  %7090 = extractvalue { ptr, i32 } %7088, 1
  store i32 %7090, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %785) #11
  br label %7091

7091:                                             ; preds = %7087, %7083
  call void @llvm.lifetime.end.p0(i64 16, ptr %785) #11
  br label %7092

7092:                                             ; preds = %7091, %7082, %6878, %6626, %6536, %6279, %6199, %6172
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %677) #11
  br label %7093

7093:                                             ; preds = %7092, %6171, %6159
  call void @llvm.lifetime.end.p0(i64 16, ptr %677) #11
  br label %7094

7094:                                             ; preds = %7093, %6158, %6126, %6073
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %664) #11
  br label %7095

7095:                                             ; preds = %7094, %6020
  call void @llvm.lifetime.end.p0(i64 16, ptr %664) #11
  br label %11059

7096:                                             ; preds = %7058, %5763
  %7097 = getelementptr inbounds %"struct.std::pair.131", ptr %250, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %786, ptr noundef nonnull align 8 dereferenceable(16) %7097)
          to label %7098 unwind label %7131

7098:                                             ; preds = %7096
  %7099 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef %786)
          to label %7100 unwind label %7135

7100:                                             ; preds = %7098
  %7101 = xor i1 %7099, true
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %786) #11
  br i1 %7101, label %7102, label %7264

7102:                                             ; preds = %7100
  %7103 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 2
  %7104 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7103)
          to label %7105 unwind label %7131

7105:                                             ; preds = %7102
  %7106 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %7104, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %7107 unwind label %7131

7107:                                             ; preds = %7105
  br i1 %7106, label %7108, label %7187

7108:                                             ; preds = %7107
  call void @llvm.lifetime.start.p0(i64 48, ptr %787) #11
  %7109 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 2
  %7110 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7109)
          to label %7111 unwind label %7139

7111:                                             ; preds = %7108
  %7112 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %7110, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %7113 unwind label %7139

7113:                                             ; preds = %7111
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(48) %787, ptr noundef nonnull align 8 dereferenceable(48) %7112)
          to label %7114 unwind label %7139

7114:                                             ; preds = %7113
  call void @llvm.lifetime.start.p0(i64 8, ptr %788) #11
  %7115 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %787) #11
  store ptr %7115, ptr %788, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %789) #11
  %7116 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %787) #11
  store ptr %7116, ptr %789, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %790) #11
  %7117 = load ptr, ptr %788, align 8, !tbaa !5
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %791)
          to label %7118 unwind label %7143

7118:                                             ; preds = %7114
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %792)
          to label %7119 unwind label %7147

7119:                                             ; preds = %7118
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %790, i32 noundef 20, ptr noundef nonnull align 8 dereferenceable(16) %7117, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %791, ptr noundef %792)
          to label %7120 unwind label %7151

7120:                                             ; preds = %7119
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %792) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %791) #11
  %7121 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %656)
          to label %7122 unwind label %7156

7122:                                             ; preds = %7120
  call void @llvm.lifetime.start.p0(i64 16, ptr %793) #11
  %7123 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7124 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7123, i32 0, i32 1
  %7125 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7124)
          to label %7126 unwind label %7160

7126:                                             ; preds = %7122
  call void @llvm.lifetime.start.p0(i64 32, ptr %795) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %796) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %796) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %795, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %796)
          to label %7127 unwind label %7164

7127:                                             ; preds = %7126
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %794, ptr noundef nonnull align 8 dereferenceable(32) %795)
          to label %7128 unwind label %7168

7128:                                             ; preds = %7127
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA2_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %793, ptr noundef nonnull align 8 dereferenceable(32) %7125, ptr noundef %794, ptr noundef nonnull align 1 dereferenceable(7) @.str.158, ptr noundef nonnull align 8 dereferenceable(16) %790, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %658, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %7129 unwind label %7172

7129:                                             ; preds = %7128
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7121, ptr noundef nonnull align 8 dereferenceable(16) %793)
          to label %7130 unwind label %7176

7130:                                             ; preds = %7129
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %793) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %794) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %795) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %796) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %796) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %795) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %793) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %790) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %790) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %789) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %788) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %787) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %787) #11
  br label %7187

7131:                                             ; preds = %9102, %9059, %9048, %9042, %8933, %8920, %7964, %7959, %7954, %7228, %7190, %7105, %7102, %7096
  %7132 = landingpad { ptr, i32 }
          cleanup
  %7133 = extractvalue { ptr, i32 } %7132, 0
  store ptr %7133, ptr %11, align 8
  %7134 = extractvalue { ptr, i32 } %7132, 1
  store i32 %7134, ptr %12, align 4
  br label %11059

7135:                                             ; preds = %7098
  %7136 = landingpad { ptr, i32 }
          cleanup
  %7137 = extractvalue { ptr, i32 } %7136, 0
  store ptr %7137, ptr %11, align 8
  %7138 = extractvalue { ptr, i32 } %7136, 1
  store i32 %7138, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %786) #11
  br label %11059

7139:                                             ; preds = %7113, %7111, %7108
  %7140 = landingpad { ptr, i32 }
          cleanup
  %7141 = extractvalue { ptr, i32 } %7140, 0
  store ptr %7141, ptr %11, align 8
  %7142 = extractvalue { ptr, i32 } %7140, 1
  store i32 %7142, ptr %12, align 4
  br label %7186

7143:                                             ; preds = %7114
  %7144 = landingpad { ptr, i32 }
          cleanup
  %7145 = extractvalue { ptr, i32 } %7144, 0
  store ptr %7145, ptr %11, align 8
  %7146 = extractvalue { ptr, i32 } %7144, 1
  store i32 %7146, ptr %12, align 4
  br label %7185

7147:                                             ; preds = %7118
  %7148 = landingpad { ptr, i32 }
          cleanup
  %7149 = extractvalue { ptr, i32 } %7148, 0
  store ptr %7149, ptr %11, align 8
  %7150 = extractvalue { ptr, i32 } %7148, 1
  store i32 %7150, ptr %12, align 4
  br label %7155

7151:                                             ; preds = %7119
  %7152 = landingpad { ptr, i32 }
          cleanup
  %7153 = extractvalue { ptr, i32 } %7152, 0
  store ptr %7153, ptr %11, align 8
  %7154 = extractvalue { ptr, i32 } %7152, 1
  store i32 %7154, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %792) #11
  br label %7155

7155:                                             ; preds = %7151, %7147
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %791) #11
  br label %7185

7156:                                             ; preds = %7120
  %7157 = landingpad { ptr, i32 }
          cleanup
  %7158 = extractvalue { ptr, i32 } %7157, 0
  store ptr %7158, ptr %11, align 8
  %7159 = extractvalue { ptr, i32 } %7157, 1
  store i32 %7159, ptr %12, align 4
  br label %7184

7160:                                             ; preds = %7122
  %7161 = landingpad { ptr, i32 }
          cleanup
  %7162 = extractvalue { ptr, i32 } %7161, 0
  store ptr %7162, ptr %11, align 8
  %7163 = extractvalue { ptr, i32 } %7161, 1
  store i32 %7163, ptr %12, align 4
  br label %7183

7164:                                             ; preds = %7126
  %7165 = landingpad { ptr, i32 }
          cleanup
  %7166 = extractvalue { ptr, i32 } %7165, 0
  store ptr %7166, ptr %11, align 8
  %7167 = extractvalue { ptr, i32 } %7165, 1
  store i32 %7167, ptr %12, align 4
  br label %7182

7168:                                             ; preds = %7127
  %7169 = landingpad { ptr, i32 }
          cleanup
  %7170 = extractvalue { ptr, i32 } %7169, 0
  store ptr %7170, ptr %11, align 8
  %7171 = extractvalue { ptr, i32 } %7169, 1
  store i32 %7171, ptr %12, align 4
  br label %7181

7172:                                             ; preds = %7128
  %7173 = landingpad { ptr, i32 }
          cleanup
  %7174 = extractvalue { ptr, i32 } %7173, 0
  store ptr %7174, ptr %11, align 8
  %7175 = extractvalue { ptr, i32 } %7173, 1
  store i32 %7175, ptr %12, align 4
  br label %7180

7176:                                             ; preds = %7129
  %7177 = landingpad { ptr, i32 }
          cleanup
  %7178 = extractvalue { ptr, i32 } %7177, 0
  store ptr %7178, ptr %11, align 8
  %7179 = extractvalue { ptr, i32 } %7177, 1
  store i32 %7179, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %793) #11
  br label %7180

7180:                                             ; preds = %7176, %7172
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %794) #11
  br label %7181

7181:                                             ; preds = %7180, %7168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %795) #11
  br label %7182

7182:                                             ; preds = %7181, %7164
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %796) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %796) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %795) #11
  br label %7183

7183:                                             ; preds = %7182, %7160
  call void @llvm.lifetime.end.p0(i64 16, ptr %793) #11
  br label %7184

7184:                                             ; preds = %7183, %7156
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %790) #11
  br label %7185

7185:                                             ; preds = %7184, %7155, %7143
  call void @llvm.lifetime.end.p0(i64 16, ptr %790) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %789) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %788) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %787) #11
  br label %7186

7186:                                             ; preds = %7185, %7139
  call void @llvm.lifetime.end.p0(i64 48, ptr %787) #11
  br label %11059

7187:                                             ; preds = %7130, %7107
  %7188 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %7189 = trunc i8 %7188 to i1
  br i1 %7189, label %7190, label %7225

7190:                                             ; preds = %7187
  %7191 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %656)
          to label %7192 unwind label %7131

7192:                                             ; preds = %7190
  call void @llvm.lifetime.start.p0(i64 16, ptr %797) #11
  %7193 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7194 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7193, i32 0, i32 1
  %7195 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7194)
          to label %7196 unwind label %7201

7196:                                             ; preds = %7192
  call void @llvm.lifetime.start.p0(i64 32, ptr %799) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %800) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %800) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %799, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %800)
          to label %7197 unwind label %7205

7197:                                             ; preds = %7196
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %798, ptr noundef nonnull align 8 dereferenceable(32) %799)
          to label %7198 unwind label %7209

7198:                                             ; preds = %7197
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA33_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %797, ptr noundef nonnull align 8 dereferenceable(32) %7195, ptr noundef %798, ptr noundef nonnull align 1 dereferenceable(10) @.str.159, ptr noundef nonnull align 8 dereferenceable(16) %658, ptr noundef nonnull align 1 dereferenceable(33) @.str.160)
          to label %7199 unwind label %7213

7199:                                             ; preds = %7198
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7191, ptr noundef nonnull align 8 dereferenceable(16) %797)
          to label %7200 unwind label %7217

7200:                                             ; preds = %7199
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %797) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %798) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %799) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %800) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %800) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %799) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %797) #11
  br label %7225

7201:                                             ; preds = %7192
  %7202 = landingpad { ptr, i32 }
          cleanup
  %7203 = extractvalue { ptr, i32 } %7202, 0
  store ptr %7203, ptr %11, align 8
  %7204 = extractvalue { ptr, i32 } %7202, 1
  store i32 %7204, ptr %12, align 4
  br label %7224

7205:                                             ; preds = %7196
  %7206 = landingpad { ptr, i32 }
          cleanup
  %7207 = extractvalue { ptr, i32 } %7206, 0
  store ptr %7207, ptr %11, align 8
  %7208 = extractvalue { ptr, i32 } %7206, 1
  store i32 %7208, ptr %12, align 4
  br label %7223

7209:                                             ; preds = %7197
  %7210 = landingpad { ptr, i32 }
          cleanup
  %7211 = extractvalue { ptr, i32 } %7210, 0
  store ptr %7211, ptr %11, align 8
  %7212 = extractvalue { ptr, i32 } %7210, 1
  store i32 %7212, ptr %12, align 4
  br label %7222

7213:                                             ; preds = %7198
  %7214 = landingpad { ptr, i32 }
          cleanup
  %7215 = extractvalue { ptr, i32 } %7214, 0
  store ptr %7215, ptr %11, align 8
  %7216 = extractvalue { ptr, i32 } %7214, 1
  store i32 %7216, ptr %12, align 4
  br label %7221

7217:                                             ; preds = %7199
  %7218 = landingpad { ptr, i32 }
          cleanup
  %7219 = extractvalue { ptr, i32 } %7218, 0
  store ptr %7219, ptr %11, align 8
  %7220 = extractvalue { ptr, i32 } %7218, 1
  store i32 %7220, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %797) #11
  br label %7221

7221:                                             ; preds = %7217, %7213
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %798) #11
  br label %7222

7222:                                             ; preds = %7221, %7209
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %799) #11
  br label %7223

7223:                                             ; preds = %7222, %7205
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %800) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %800) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %799) #11
  br label %7224

7224:                                             ; preds = %7223, %7201
  call void @llvm.lifetime.end.p0(i64 16, ptr %797) #11
  br label %11059

7225:                                             ; preds = %7200, %7187
  %7226 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %7227 = trunc i8 %7226 to i1
  br i1 %7227, label %7263, label %7228

7228:                                             ; preds = %7225
  %7229 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %626)
          to label %7230 unwind label %7131

7230:                                             ; preds = %7228
  call void @llvm.lifetime.start.p0(i64 16, ptr %801) #11
  %7231 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7232 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7231, i32 0, i32 1
  %7233 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7232)
          to label %7234 unwind label %7239

7234:                                             ; preds = %7230
  call void @llvm.lifetime.start.p0(i64 32, ptr %803) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %804) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %804) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %803, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %804)
          to label %7235 unwind label %7243

7235:                                             ; preds = %7234
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %802, ptr noundef nonnull align 8 dereferenceable(32) %803)
          to label %7236 unwind label %7247

7236:                                             ; preds = %7235
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA2_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %801, ptr noundef nonnull align 8 dereferenceable(32) %7233, ptr noundef %802, ptr noundef nonnull align 1 dereferenceable(7) @.str.158, ptr noundef nonnull align 8 dereferenceable(16) %653, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %628, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %7237 unwind label %7251

7237:                                             ; preds = %7236
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7229, ptr noundef nonnull align 8 dereferenceable(16) %801)
          to label %7238 unwind label %7255

7238:                                             ; preds = %7237
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %801) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %802) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %803) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %804) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %804) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %803) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %801) #11
  br label %7263

7239:                                             ; preds = %7230
  %7240 = landingpad { ptr, i32 }
          cleanup
  %7241 = extractvalue { ptr, i32 } %7240, 0
  store ptr %7241, ptr %11, align 8
  %7242 = extractvalue { ptr, i32 } %7240, 1
  store i32 %7242, ptr %12, align 4
  br label %7262

7243:                                             ; preds = %7234
  %7244 = landingpad { ptr, i32 }
          cleanup
  %7245 = extractvalue { ptr, i32 } %7244, 0
  store ptr %7245, ptr %11, align 8
  %7246 = extractvalue { ptr, i32 } %7244, 1
  store i32 %7246, ptr %12, align 4
  br label %7261

7247:                                             ; preds = %7235
  %7248 = landingpad { ptr, i32 }
          cleanup
  %7249 = extractvalue { ptr, i32 } %7248, 0
  store ptr %7249, ptr %11, align 8
  %7250 = extractvalue { ptr, i32 } %7248, 1
  store i32 %7250, ptr %12, align 4
  br label %7260

7251:                                             ; preds = %7236
  %7252 = landingpad { ptr, i32 }
          cleanup
  %7253 = extractvalue { ptr, i32 } %7252, 0
  store ptr %7253, ptr %11, align 8
  %7254 = extractvalue { ptr, i32 } %7252, 1
  store i32 %7254, ptr %12, align 4
  br label %7259

7255:                                             ; preds = %7237
  %7256 = landingpad { ptr, i32 }
          cleanup
  %7257 = extractvalue { ptr, i32 } %7256, 0
  store ptr %7257, ptr %11, align 8
  %7258 = extractvalue { ptr, i32 } %7256, 1
  store i32 %7258, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %801) #11
  br label %7259

7259:                                             ; preds = %7255, %7251
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %802) #11
  br label %7260

7260:                                             ; preds = %7259, %7247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %803) #11
  br label %7261

7261:                                             ; preds = %7260, %7243
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %804) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %804) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %803) #11
  br label %7262

7262:                                             ; preds = %7261, %7239
  call void @llvm.lifetime.end.p0(i64 16, ptr %801) #11
  br label %11059

7263:                                             ; preds = %7238, %7225
  br label %7264

7264:                                             ; preds = %7263, %7100
  call void @llvm.lifetime.start.p0(i64 8, ptr %805) #11
  %7265 = load ptr, ptr %268, align 8, !tbaa !5
  %7266 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %7265)
          to label %7267 unwind label %7279

7267:                                             ; preds = %7264
  store ptr %7266, ptr %805, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %806) #11
  %7268 = load ptr, ptr %805, align 8, !tbaa !5
  %7269 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %7268)
          to label %7270 unwind label %7283

7270:                                             ; preds = %7267
  store ptr %7269, ptr %806, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %807) #11
  %7271 = load ptr, ptr %805, align 8, !tbaa !5
  %7272 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %7271)
          to label %7273 unwind label %7287

7273:                                             ; preds = %7270
  store ptr %7272, ptr %807, align 8, !tbaa !5
  br label %7274

7274:                                             ; preds = %7317, %7273
  %7275 = load ptr, ptr %806, align 8, !tbaa !5
  %7276 = load ptr, ptr %807, align 8, !tbaa !5
  %7277 = icmp ne ptr %7275, %7276
  br i1 %7277, label %7291, label %7278

7278:                                             ; preds = %7274
  store i32 55, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %807) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %806) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %805) #11
  br label %7391

7279:                                             ; preds = %7264
  %7280 = landingpad { ptr, i32 }
          cleanup
  %7281 = extractvalue { ptr, i32 } %7280, 0
  store ptr %7281, ptr %11, align 8
  %7282 = extractvalue { ptr, i32 } %7280, 1
  store i32 %7282, ptr %12, align 4
  br label %7390

7283:                                             ; preds = %7267
  %7284 = landingpad { ptr, i32 }
          cleanup
  %7285 = extractvalue { ptr, i32 } %7284, 0
  store ptr %7285, ptr %11, align 8
  %7286 = extractvalue { ptr, i32 } %7284, 1
  store i32 %7286, ptr %12, align 4
  br label %7389

7287:                                             ; preds = %7270
  %7288 = landingpad { ptr, i32 }
          cleanup
  %7289 = extractvalue { ptr, i32 } %7288, 0
  store ptr %7289, ptr %11, align 8
  %7290 = extractvalue { ptr, i32 } %7288, 1
  store i32 %7290, ptr %12, align 4
  br label %7388

7291:                                             ; preds = %7274
  call void @llvm.lifetime.start.p0(i64 48, ptr %808) #11
  %7292 = load ptr, ptr %806, align 8, !tbaa !5
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %808, ptr noundef nonnull align 8 dereferenceable(48) %7292)
          to label %7293 unwind label %7320

7293:                                             ; preds = %7291
  call void @llvm.lifetime.start.p0(i64 32, ptr %809) #11
  %7294 = getelementptr inbounds %"struct.std::pair.109", ptr %808, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %809, ptr noundef nonnull align 8 dereferenceable(32) %7294)
          to label %7295 unwind label %7324

7295:                                             ; preds = %7293
  call void @llvm.lifetime.start.p0(i64 16, ptr %810) #11
  %7296 = getelementptr inbounds %"struct.std::pair.109", ptr %808, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %810, ptr noundef nonnull align 8 dereferenceable(16) %7296)
          to label %7297 unwind label %7328

7297:                                             ; preds = %7295
  call void @llvm.lifetime.start.p0(i64 16, ptr %811) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %811, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %7298 unwind label %7332

7298:                                             ; preds = %7297
  call void @llvm.lifetime.start.p0(i64 16, ptr %812) #11
  %7299 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %810)
          to label %7300 unwind label %7336

7300:                                             ; preds = %7298
  %7301 = getelementptr inbounds %"struct.lang::data::Node::Entry::Field::_T", ptr %7299, i32 0, i32 4
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %813, ptr noundef nonnull align 8 dereferenceable(16) %7301)
          to label %7302 unwind label %7336

7302:                                             ; preds = %7300
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %812, ptr noundef %813, ptr noundef nonnull align 8 dereferenceable(16) %811, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %7303 unwind label %7340

7303:                                             ; preds = %7302
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %813) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %814) #11
  %7304 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %815) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %815, ptr noundef nonnull align 8 dereferenceable(32) %809, ptr noundef @.str.161)
          to label %7305 unwind label %7344

7305:                                             ; preds = %7303
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %814, ptr noundef nonnull align 8 dereferenceable(264) %7304, ptr noundef nonnull align 8 dereferenceable(32) %815)
          to label %7306 unwind label %7348

7306:                                             ; preds = %7305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %815) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %815) #11
  %7307 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %7308 unwind label %7353

7308:                                             ; preds = %7306
  call void @llvm.lifetime.start.p0(i64 16, ptr %816) #11
  %7309 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7310 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7309, i32 0, i32 1
  %7311 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7310)
          to label %7312 unwind label %7357

7312:                                             ; preds = %7308
  call void @llvm.lifetime.start.p0(i64 32, ptr %818) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %819) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %819) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %818, ptr noundef @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %819)
          to label %7313 unwind label %7361

7313:                                             ; preds = %7312
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %817, ptr noundef nonnull align 8 dereferenceable(32) %818)
          to label %7314 unwind label %7365

7314:                                             ; preds = %7313
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %816, ptr noundef nonnull align 8 dereferenceable(32) %7311, ptr noundef %817, ptr noundef nonnull align 8 dereferenceable(16) %812, ptr noundef nonnull align 8 dereferenceable(16) %814, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %7315 unwind label %7369

7315:                                             ; preds = %7314
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7307, ptr noundef nonnull align 8 dereferenceable(16) %816)
          to label %7316 unwind label %7373

7316:                                             ; preds = %7315
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %816) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %817) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %818) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %819) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %819) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %818) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %816) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %814) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %814) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %812) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %812) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %811) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %811) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %810) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %810) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %809) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %809) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %808) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %808) #11
  br label %7317

7317:                                             ; preds = %7316
  %7318 = load ptr, ptr %806, align 8, !tbaa !5
  %7319 = getelementptr inbounds %"struct.std::pair.109", ptr %7318, i32 1
  store ptr %7319, ptr %806, align 8, !tbaa !5
  br label %7274

7320:                                             ; preds = %7291
  %7321 = landingpad { ptr, i32 }
          cleanup
  %7322 = extractvalue { ptr, i32 } %7321, 0
  store ptr %7322, ptr %11, align 8
  %7323 = extractvalue { ptr, i32 } %7321, 1
  store i32 %7323, ptr %12, align 4
  br label %7387

7324:                                             ; preds = %7293
  %7325 = landingpad { ptr, i32 }
          cleanup
  %7326 = extractvalue { ptr, i32 } %7325, 0
  store ptr %7326, ptr %11, align 8
  %7327 = extractvalue { ptr, i32 } %7325, 1
  store i32 %7327, ptr %12, align 4
  br label %7386

7328:                                             ; preds = %7295
  %7329 = landingpad { ptr, i32 }
          cleanup
  %7330 = extractvalue { ptr, i32 } %7329, 0
  store ptr %7330, ptr %11, align 8
  %7331 = extractvalue { ptr, i32 } %7329, 1
  store i32 %7331, ptr %12, align 4
  br label %7385

7332:                                             ; preds = %7297
  %7333 = landingpad { ptr, i32 }
          cleanup
  %7334 = extractvalue { ptr, i32 } %7333, 0
  store ptr %7334, ptr %11, align 8
  %7335 = extractvalue { ptr, i32 } %7333, 1
  store i32 %7335, ptr %12, align 4
  br label %7384

7336:                                             ; preds = %7300, %7298
  %7337 = landingpad { ptr, i32 }
          cleanup
  %7338 = extractvalue { ptr, i32 } %7337, 0
  store ptr %7338, ptr %11, align 8
  %7339 = extractvalue { ptr, i32 } %7337, 1
  store i32 %7339, ptr %12, align 4
  br label %7383

7340:                                             ; preds = %7302
  %7341 = landingpad { ptr, i32 }
          cleanup
  %7342 = extractvalue { ptr, i32 } %7341, 0
  store ptr %7342, ptr %11, align 8
  %7343 = extractvalue { ptr, i32 } %7341, 1
  store i32 %7343, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %813) #11
  br label %7383

7344:                                             ; preds = %7303
  %7345 = landingpad { ptr, i32 }
          cleanup
  %7346 = extractvalue { ptr, i32 } %7345, 0
  store ptr %7346, ptr %11, align 8
  %7347 = extractvalue { ptr, i32 } %7345, 1
  store i32 %7347, ptr %12, align 4
  br label %7352

7348:                                             ; preds = %7305
  %7349 = landingpad { ptr, i32 }
          cleanup
  %7350 = extractvalue { ptr, i32 } %7349, 0
  store ptr %7350, ptr %11, align 8
  %7351 = extractvalue { ptr, i32 } %7349, 1
  store i32 %7351, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %815) #11
  br label %7352

7352:                                             ; preds = %7348, %7344
  call void @llvm.lifetime.end.p0(i64 32, ptr %815) #11
  br label %7382

7353:                                             ; preds = %7306
  %7354 = landingpad { ptr, i32 }
          cleanup
  %7355 = extractvalue { ptr, i32 } %7354, 0
  store ptr %7355, ptr %11, align 8
  %7356 = extractvalue { ptr, i32 } %7354, 1
  store i32 %7356, ptr %12, align 4
  br label %7381

7357:                                             ; preds = %7308
  %7358 = landingpad { ptr, i32 }
          cleanup
  %7359 = extractvalue { ptr, i32 } %7358, 0
  store ptr %7359, ptr %11, align 8
  %7360 = extractvalue { ptr, i32 } %7358, 1
  store i32 %7360, ptr %12, align 4
  br label %7380

7361:                                             ; preds = %7312
  %7362 = landingpad { ptr, i32 }
          cleanup
  %7363 = extractvalue { ptr, i32 } %7362, 0
  store ptr %7363, ptr %11, align 8
  %7364 = extractvalue { ptr, i32 } %7362, 1
  store i32 %7364, ptr %12, align 4
  br label %7379

7365:                                             ; preds = %7313
  %7366 = landingpad { ptr, i32 }
          cleanup
  %7367 = extractvalue { ptr, i32 } %7366, 0
  store ptr %7367, ptr %11, align 8
  %7368 = extractvalue { ptr, i32 } %7366, 1
  store i32 %7368, ptr %12, align 4
  br label %7378

7369:                                             ; preds = %7314
  %7370 = landingpad { ptr, i32 }
          cleanup
  %7371 = extractvalue { ptr, i32 } %7370, 0
  store ptr %7371, ptr %11, align 8
  %7372 = extractvalue { ptr, i32 } %7370, 1
  store i32 %7372, ptr %12, align 4
  br label %7377

7373:                                             ; preds = %7315
  %7374 = landingpad { ptr, i32 }
          cleanup
  %7375 = extractvalue { ptr, i32 } %7374, 0
  store ptr %7375, ptr %11, align 8
  %7376 = extractvalue { ptr, i32 } %7374, 1
  store i32 %7376, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %816) #11
  br label %7377

7377:                                             ; preds = %7373, %7369
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %817) #11
  br label %7378

7378:                                             ; preds = %7377, %7365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %818) #11
  br label %7379

7379:                                             ; preds = %7378, %7361
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %819) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %819) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %818) #11
  br label %7380

7380:                                             ; preds = %7379, %7357
  call void @llvm.lifetime.end.p0(i64 16, ptr %816) #11
  br label %7381

7381:                                             ; preds = %7380, %7353
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %814) #11
  br label %7382

7382:                                             ; preds = %7381, %7352
  call void @llvm.lifetime.end.p0(i64 16, ptr %814) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %812) #11
  br label %7383

7383:                                             ; preds = %7382, %7340, %7336
  call void @llvm.lifetime.end.p0(i64 16, ptr %812) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %811) #11
  br label %7384

7384:                                             ; preds = %7383, %7332
  call void @llvm.lifetime.end.p0(i64 16, ptr %811) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %810) #11
  br label %7385

7385:                                             ; preds = %7384, %7328
  call void @llvm.lifetime.end.p0(i64 16, ptr %810) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %809) #11
  br label %7386

7386:                                             ; preds = %7385, %7324
  call void @llvm.lifetime.end.p0(i64 32, ptr %809) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %808) #11
  br label %7387

7387:                                             ; preds = %7386, %7320
  call void @llvm.lifetime.end.p0(i64 48, ptr %808) #11
  br label %7388

7388:                                             ; preds = %7387, %7287
  call void @llvm.lifetime.end.p0(i64 8, ptr %807) #11
  br label %7389

7389:                                             ; preds = %7388, %7283
  call void @llvm.lifetime.end.p0(i64 8, ptr %806) #11
  br label %7390

7390:                                             ; preds = %7389, %7279
  call void @llvm.lifetime.end.p0(i64 8, ptr %805) #11
  br label %11059

7391:                                             ; preds = %7278
  call void @llvm.lifetime.start.p0(i64 8, ptr %820) #11
  %7392 = load ptr, ptr %267, align 8, !tbaa !5
  %7393 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %7392)
          to label %7394 unwind label %7406

7394:                                             ; preds = %7391
  store ptr %7393, ptr %820, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %821) #11
  %7395 = load ptr, ptr %820, align 8, !tbaa !5
  %7396 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %7395)
          to label %7397 unwind label %7410

7397:                                             ; preds = %7394
  store ptr %7396, ptr %821, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %822) #11
  %7398 = load ptr, ptr %820, align 8, !tbaa !5
  %7399 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %7398)
          to label %7400 unwind label %7414

7400:                                             ; preds = %7397
  store ptr %7399, ptr %822, align 8, !tbaa !5
  br label %7401

7401:                                             ; preds = %7931, %7400
  %7402 = load ptr, ptr %821, align 8, !tbaa !5
  %7403 = load ptr, ptr %822, align 8, !tbaa !5
  %7404 = icmp ne ptr %7402, %7403
  br i1 %7404, label %7418, label %7405

7405:                                             ; preds = %7401
  store i32 57, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %822) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %821) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %820) #11
  br label %7954

7406:                                             ; preds = %7391
  %7407 = landingpad { ptr, i32 }
          cleanup
  %7408 = extractvalue { ptr, i32 } %7407, 0
  store ptr %7408, ptr %11, align 8
  %7409 = extractvalue { ptr, i32 } %7407, 1
  store i32 %7409, ptr %12, align 4
  br label %7953

7410:                                             ; preds = %7394
  %7411 = landingpad { ptr, i32 }
          cleanup
  %7412 = extractvalue { ptr, i32 } %7411, 0
  store ptr %7412, ptr %11, align 8
  %7413 = extractvalue { ptr, i32 } %7411, 1
  store i32 %7413, ptr %12, align 4
  br label %7952

7414:                                             ; preds = %7397
  %7415 = landingpad { ptr, i32 }
          cleanup
  %7416 = extractvalue { ptr, i32 } %7415, 0
  store ptr %7416, ptr %11, align 8
  %7417 = extractvalue { ptr, i32 } %7415, 1
  store i32 %7417, ptr %12, align 4
  br label %7951

7418:                                             ; preds = %7401
  call void @llvm.lifetime.start.p0(i64 8, ptr %823) #11
  %7419 = load ptr, ptr %821, align 8, !tbaa !5
  store ptr %7419, ptr %823, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %824) #11
  %7420 = load ptr, ptr %823, align 8, !tbaa !5
  %7421 = getelementptr inbounds %"struct.std::pair.109", ptr %7420, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %824, ptr noundef nonnull align 8 dereferenceable(32) %7421)
          to label %7422 unwind label %7526

7422:                                             ; preds = %7418
  call void @llvm.lifetime.start.p0(i64 16, ptr %825) #11
  %7423 = load ptr, ptr %823, align 8, !tbaa !5
  %7424 = getelementptr inbounds %"struct.std::pair.109", ptr %7423, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %825, ptr noundef nonnull align 8 dereferenceable(16) %7424)
          to label %7425 unwind label %7530

7425:                                             ; preds = %7422
  call void @llvm.lifetime.start.p0(i64 16, ptr %826) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %826, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %7426 unwind label %7534

7426:                                             ; preds = %7425
  call void @llvm.lifetime.start.p0(i64 16, ptr %827) #11
  %7427 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %825)
          to label %7428 unwind label %7538

7428:                                             ; preds = %7426
  %7429 = getelementptr inbounds %"struct.lang::data::Node::Entry::Field::_T", ptr %7427, i32 0, i32 4
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %828, ptr noundef nonnull align 8 dereferenceable(16) %7429)
          to label %7430 unwind label %7538

7430:                                             ; preds = %7428
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %827, ptr noundef %828, ptr noundef nonnull align 8 dereferenceable(16) %826, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %7431 unwind label %7542

7431:                                             ; preds = %7430
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %828) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %829) #11
  %7432 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %830) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %830, ptr noundef nonnull align 8 dereferenceable(32) %824, ptr noundef @.str.161)
          to label %7433 unwind label %7546

7433:                                             ; preds = %7431
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %829, ptr noundef nonnull align 8 dereferenceable(264) %7432, ptr noundef nonnull align 8 dereferenceable(32) %830)
          to label %7434 unwind label %7550

7434:                                             ; preds = %7433
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %830) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %830) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %831) #11
  %7435 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %832, ptr noundef nonnull align 8 dereferenceable(16) %299)
          to label %7436 unwind label %7555

7436:                                             ; preds = %7434
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %833, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7437 unwind label %7559

7437:                                             ; preds = %7436
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %831, ptr noundef nonnull align 8 dereferenceable(264) %7435, ptr noundef %832, ptr noundef %833)
          to label %7438 unwind label %7563

7438:                                             ; preds = %7437
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %833) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %832) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %834) #11
  %7439 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %834, ptr noundef nonnull align 8 dereferenceable(264) %7439, ptr noundef nonnull align 8 dereferenceable(32) %831)
          to label %7440 unwind label %7568

7440:                                             ; preds = %7438
  call void @llvm.lifetime.start.p0(i64 16, ptr %835) #11
  %7441 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7442 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7441, i32 0, i32 1
  %7443 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7442)
          to label %7444 unwind label %7572

7444:                                             ; preds = %7440
  call void @llvm.lifetime.start.p0(i64 32, ptr %837) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %838) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %838) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %837, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %838)
          to label %7445 unwind label %7576

7445:                                             ; preds = %7444
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %836, ptr noundef nonnull align 8 dereferenceable(32) %837)
          to label %7446 unwind label %7580

7446:                                             ; preds = %7445
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %835, ptr noundef nonnull align 8 dereferenceable(32) %7443, ptr noundef %836, ptr noundef nonnull align 8 dereferenceable(16) %827, ptr noundef nonnull align 8 dereferenceable(16) %834)
          to label %7447 unwind label %7584

7447:                                             ; preds = %7446
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %836) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %837) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %838) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %838) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %837) #11
  %7448 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %301)
          to label %7449 unwind label %7590

7449:                                             ; preds = %7447
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7448, ptr noundef nonnull align 8 dereferenceable(16) %835)
          to label %7450 unwind label %7590

7450:                                             ; preds = %7449
  %7451 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %302)
          to label %7452 unwind label %7590

7452:                                             ; preds = %7450
  call void @llvm.lifetime.start.p0(i64 16, ptr %839) #11
  %7453 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7454 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7453, i32 0, i32 1
  %7455 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7454)
          to label %7456 unwind label %7594

7456:                                             ; preds = %7452
  call void @llvm.lifetime.start.p0(i64 32, ptr %841) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %842) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %842) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %841, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %842)
          to label %7457 unwind label %7598

7457:                                             ; preds = %7456
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %840, ptr noundef nonnull align 8 dereferenceable(32) %841)
          to label %7458 unwind label %7602

7458:                                             ; preds = %7457
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %839, ptr noundef nonnull align 8 dereferenceable(32) %7455, ptr noundef %840, ptr noundef nonnull align 8 dereferenceable(16) %303, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %829, ptr noundef nonnull align 1 dereferenceable(4) @.str.162, ptr noundef nonnull align 8 dereferenceable(16) %834, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %7459 unwind label %7606

7459:                                             ; preds = %7458
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7451, ptr noundef nonnull align 8 dereferenceable(16) %839)
          to label %7460 unwind label %7610

7460:                                             ; preds = %7459
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %839) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %840) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %841) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %842) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %842) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %841) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %839) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %843) #11
  %7461 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %844, ptr noundef nonnull align 8 dereferenceable(16) %318)
          to label %7462 unwind label %7618

7462:                                             ; preds = %7460
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %845, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7463 unwind label %7622

7463:                                             ; preds = %7462
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %843, ptr noundef nonnull align 8 dereferenceable(264) %7461, ptr noundef %844, ptr noundef %845)
          to label %7464 unwind label %7626

7464:                                             ; preds = %7463
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %845) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %844) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %846) #11
  %7465 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %846, ptr noundef nonnull align 8 dereferenceable(264) %7465, ptr noundef nonnull align 8 dereferenceable(32) %843)
          to label %7466 unwind label %7631

7466:                                             ; preds = %7464
  call void @llvm.lifetime.start.p0(i64 16, ptr %847) #11
  %7467 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7468 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7467, i32 0, i32 1
  %7469 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7468)
          to label %7470 unwind label %7635

7470:                                             ; preds = %7466
  call void @llvm.lifetime.start.p0(i64 32, ptr %849) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %850) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %850) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %849, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %850)
          to label %7471 unwind label %7639

7471:                                             ; preds = %7470
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %848, ptr noundef nonnull align 8 dereferenceable(32) %849)
          to label %7472 unwind label %7643

7472:                                             ; preds = %7471
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %847, ptr noundef nonnull align 8 dereferenceable(32) %7469, ptr noundef %848, ptr noundef nonnull align 8 dereferenceable(16) %827, ptr noundef nonnull align 8 dereferenceable(16) %846)
          to label %7473 unwind label %7647

7473:                                             ; preds = %7472
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %848) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %849) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %850) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %850) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %849) #11
  %7474 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %320)
          to label %7475 unwind label %7653

7475:                                             ; preds = %7473
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7474, ptr noundef nonnull align 8 dereferenceable(16) %847)
          to label %7476 unwind label %7653

7476:                                             ; preds = %7475
  %7477 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %325)
          to label %7478 unwind label %7653

7478:                                             ; preds = %7476
  call void @llvm.lifetime.start.p0(i64 16, ptr %851) #11
  %7479 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7480 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7479, i32 0, i32 1
  %7481 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7480)
          to label %7482 unwind label %7657

7482:                                             ; preds = %7478
  call void @llvm.lifetime.start.p0(i64 32, ptr %853) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %854) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %854) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %853, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %854)
          to label %7483 unwind label %7661

7483:                                             ; preds = %7482
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %852, ptr noundef nonnull align 8 dereferenceable(32) %853)
          to label %7484 unwind label %7665

7484:                                             ; preds = %7483
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %851, ptr noundef nonnull align 8 dereferenceable(32) %7481, ptr noundef %852, ptr noundef nonnull align 8 dereferenceable(16) %326, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %829, ptr noundef nonnull align 1 dereferenceable(4) @.str.162, ptr noundef nonnull align 8 dereferenceable(16) %846, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %7485 unwind label %7669

7485:                                             ; preds = %7484
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7477, ptr noundef nonnull align 8 dereferenceable(16) %851)
          to label %7486 unwind label %7673

7486:                                             ; preds = %7485
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %851) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %852) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %853) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %854) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %854) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %853) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %851) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %855) #11
  %7487 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7488 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %330, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7489 unwind label %7681

7489:                                             ; preds = %7486
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %856, ptr noundef nonnull align 8 dereferenceable(16) %7488)
          to label %7490 unwind label %7681

7490:                                             ; preds = %7489
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %857, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7491 unwind label %7685

7491:                                             ; preds = %7490
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %855, ptr noundef nonnull align 8 dereferenceable(264) %7487, ptr noundef %856, ptr noundef %857)
          to label %7492 unwind label %7689

7492:                                             ; preds = %7491
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %857) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %856) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %858) #11
  %7493 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %858, ptr noundef nonnull align 8 dereferenceable(264) %7493, ptr noundef nonnull align 8 dereferenceable(32) %831)
          to label %7494 unwind label %7694

7494:                                             ; preds = %7492
  call void @llvm.lifetime.start.p0(i64 16, ptr %859) #11
  %7495 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7496 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7495, i32 0, i32 1
  %7497 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7496)
          to label %7498 unwind label %7698

7498:                                             ; preds = %7494
  call void @llvm.lifetime.start.p0(i64 32, ptr %861) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %862) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %862) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %861, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %862)
          to label %7499 unwind label %7702

7499:                                             ; preds = %7498
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %860, ptr noundef nonnull align 8 dereferenceable(32) %861)
          to label %7500 unwind label %7706

7500:                                             ; preds = %7499
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %859, ptr noundef nonnull align 8 dereferenceable(32) %7497, ptr noundef %860, ptr noundef nonnull align 8 dereferenceable(16) %827, ptr noundef nonnull align 8 dereferenceable(16) %858)
          to label %7501 unwind label %7710

7501:                                             ; preds = %7500
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %860) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %861) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %862) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %862) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %861) #11
  %7502 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %332, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7503 unwind label %7716

7503:                                             ; preds = %7501
  %7504 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7502)
          to label %7505 unwind label %7716

7505:                                             ; preds = %7503
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7504, ptr noundef nonnull align 8 dereferenceable(16) %858)
          to label %7506 unwind label %7716

7506:                                             ; preds = %7505
  %7507 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %331, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7508 unwind label %7716

7508:                                             ; preds = %7506
  %7509 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7507)
          to label %7510 unwind label %7716

7510:                                             ; preds = %7508
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7509, ptr noundef nonnull align 8 dereferenceable(16) %859)
          to label %7511 unwind label %7716

7511:                                             ; preds = %7510
  call void @llvm.lifetime.start.p0(i64 8, ptr %863) #11
  %7512 = load ptr, ptr %267, align 8, !tbaa !5
  %7513 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %7512)
          to label %7514 unwind label %7720

7514:                                             ; preds = %7511
  store ptr %7513, ptr %863, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %864) #11
  %7515 = load ptr, ptr %863, align 8, !tbaa !5
  %7516 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %7515)
          to label %7517 unwind label %7724

7517:                                             ; preds = %7514
  store ptr %7516, ptr %864, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %865) #11
  %7518 = load ptr, ptr %863, align 8, !tbaa !5
  %7519 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %7518)
          to label %7520 unwind label %7728

7520:                                             ; preds = %7517
  store ptr %7519, ptr %865, align 8, !tbaa !5
  br label %7521

7521:                                             ; preds = %7847, %7520
  %7522 = load ptr, ptr %864, align 8, !tbaa !5
  %7523 = load ptr, ptr %865, align 8, !tbaa !5
  %7524 = icmp ne ptr %7522, %7523
  br i1 %7524, label %7732, label %7525

7525:                                             ; preds = %7521
  store i32 59, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %865) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %864) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %863) #11
  br label %7857

7526:                                             ; preds = %7418
  %7527 = landingpad { ptr, i32 }
          cleanup
  %7528 = extractvalue { ptr, i32 } %7527, 0
  store ptr %7528, ptr %11, align 8
  %7529 = extractvalue { ptr, i32 } %7527, 1
  store i32 %7529, ptr %12, align 4
  br label %7950

7530:                                             ; preds = %7422
  %7531 = landingpad { ptr, i32 }
          cleanup
  %7532 = extractvalue { ptr, i32 } %7531, 0
  store ptr %7532, ptr %11, align 8
  %7533 = extractvalue { ptr, i32 } %7531, 1
  store i32 %7533, ptr %12, align 4
  br label %7949

7534:                                             ; preds = %7425
  %7535 = landingpad { ptr, i32 }
          cleanup
  %7536 = extractvalue { ptr, i32 } %7535, 0
  store ptr %7536, ptr %11, align 8
  %7537 = extractvalue { ptr, i32 } %7535, 1
  store i32 %7537, ptr %12, align 4
  br label %7948

7538:                                             ; preds = %7428, %7426
  %7539 = landingpad { ptr, i32 }
          cleanup
  %7540 = extractvalue { ptr, i32 } %7539, 0
  store ptr %7540, ptr %11, align 8
  %7541 = extractvalue { ptr, i32 } %7539, 1
  store i32 %7541, ptr %12, align 4
  br label %7947

7542:                                             ; preds = %7430
  %7543 = landingpad { ptr, i32 }
          cleanup
  %7544 = extractvalue { ptr, i32 } %7543, 0
  store ptr %7544, ptr %11, align 8
  %7545 = extractvalue { ptr, i32 } %7543, 1
  store i32 %7545, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %828) #11
  br label %7947

7546:                                             ; preds = %7431
  %7547 = landingpad { ptr, i32 }
          cleanup
  %7548 = extractvalue { ptr, i32 } %7547, 0
  store ptr %7548, ptr %11, align 8
  %7549 = extractvalue { ptr, i32 } %7547, 1
  store i32 %7549, ptr %12, align 4
  br label %7554

7550:                                             ; preds = %7433
  %7551 = landingpad { ptr, i32 }
          cleanup
  %7552 = extractvalue { ptr, i32 } %7551, 0
  store ptr %7552, ptr %11, align 8
  %7553 = extractvalue { ptr, i32 } %7551, 1
  store i32 %7553, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %830) #11
  br label %7554

7554:                                             ; preds = %7550, %7546
  call void @llvm.lifetime.end.p0(i64 32, ptr %830) #11
  br label %7946

7555:                                             ; preds = %7434
  %7556 = landingpad { ptr, i32 }
          cleanup
  %7557 = extractvalue { ptr, i32 } %7556, 0
  store ptr %7557, ptr %11, align 8
  %7558 = extractvalue { ptr, i32 } %7556, 1
  store i32 %7558, ptr %12, align 4
  br label %7945

7559:                                             ; preds = %7436
  %7560 = landingpad { ptr, i32 }
          cleanup
  %7561 = extractvalue { ptr, i32 } %7560, 0
  store ptr %7561, ptr %11, align 8
  %7562 = extractvalue { ptr, i32 } %7560, 1
  store i32 %7562, ptr %12, align 4
  br label %7567

7563:                                             ; preds = %7437
  %7564 = landingpad { ptr, i32 }
          cleanup
  %7565 = extractvalue { ptr, i32 } %7564, 0
  store ptr %7565, ptr %11, align 8
  %7566 = extractvalue { ptr, i32 } %7564, 1
  store i32 %7566, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %833) #11
  br label %7567

7567:                                             ; preds = %7563, %7559
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %832) #11
  br label %7945

7568:                                             ; preds = %7438
  %7569 = landingpad { ptr, i32 }
          cleanup
  %7570 = extractvalue { ptr, i32 } %7569, 0
  store ptr %7570, ptr %11, align 8
  %7571 = extractvalue { ptr, i32 } %7569, 1
  store i32 %7571, ptr %12, align 4
  br label %7944

7572:                                             ; preds = %7440
  %7573 = landingpad { ptr, i32 }
          cleanup
  %7574 = extractvalue { ptr, i32 } %7573, 0
  store ptr %7574, ptr %11, align 8
  %7575 = extractvalue { ptr, i32 } %7573, 1
  store i32 %7575, ptr %12, align 4
  br label %7943

7576:                                             ; preds = %7444
  %7577 = landingpad { ptr, i32 }
          cleanup
  %7578 = extractvalue { ptr, i32 } %7577, 0
  store ptr %7578, ptr %11, align 8
  %7579 = extractvalue { ptr, i32 } %7577, 1
  store i32 %7579, ptr %12, align 4
  br label %7589

7580:                                             ; preds = %7445
  %7581 = landingpad { ptr, i32 }
          cleanup
  %7582 = extractvalue { ptr, i32 } %7581, 0
  store ptr %7582, ptr %11, align 8
  %7583 = extractvalue { ptr, i32 } %7581, 1
  store i32 %7583, ptr %12, align 4
  br label %7588

7584:                                             ; preds = %7446
  %7585 = landingpad { ptr, i32 }
          cleanup
  %7586 = extractvalue { ptr, i32 } %7585, 0
  store ptr %7586, ptr %11, align 8
  %7587 = extractvalue { ptr, i32 } %7585, 1
  store i32 %7587, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %836) #11
  br label %7588

7588:                                             ; preds = %7584, %7580
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %837) #11
  br label %7589

7589:                                             ; preds = %7588, %7576
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %838) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %838) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %837) #11
  br label %7943

7590:                                             ; preds = %7450, %7449, %7447
  %7591 = landingpad { ptr, i32 }
          cleanup
  %7592 = extractvalue { ptr, i32 } %7591, 0
  store ptr %7592, ptr %11, align 8
  %7593 = extractvalue { ptr, i32 } %7591, 1
  store i32 %7593, ptr %12, align 4
  br label %7942

7594:                                             ; preds = %7452
  %7595 = landingpad { ptr, i32 }
          cleanup
  %7596 = extractvalue { ptr, i32 } %7595, 0
  store ptr %7596, ptr %11, align 8
  %7597 = extractvalue { ptr, i32 } %7595, 1
  store i32 %7597, ptr %12, align 4
  br label %7617

7598:                                             ; preds = %7456
  %7599 = landingpad { ptr, i32 }
          cleanup
  %7600 = extractvalue { ptr, i32 } %7599, 0
  store ptr %7600, ptr %11, align 8
  %7601 = extractvalue { ptr, i32 } %7599, 1
  store i32 %7601, ptr %12, align 4
  br label %7616

7602:                                             ; preds = %7457
  %7603 = landingpad { ptr, i32 }
          cleanup
  %7604 = extractvalue { ptr, i32 } %7603, 0
  store ptr %7604, ptr %11, align 8
  %7605 = extractvalue { ptr, i32 } %7603, 1
  store i32 %7605, ptr %12, align 4
  br label %7615

7606:                                             ; preds = %7458
  %7607 = landingpad { ptr, i32 }
          cleanup
  %7608 = extractvalue { ptr, i32 } %7607, 0
  store ptr %7608, ptr %11, align 8
  %7609 = extractvalue { ptr, i32 } %7607, 1
  store i32 %7609, ptr %12, align 4
  br label %7614

7610:                                             ; preds = %7459
  %7611 = landingpad { ptr, i32 }
          cleanup
  %7612 = extractvalue { ptr, i32 } %7611, 0
  store ptr %7612, ptr %11, align 8
  %7613 = extractvalue { ptr, i32 } %7611, 1
  store i32 %7613, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %839) #11
  br label %7614

7614:                                             ; preds = %7610, %7606
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %840) #11
  br label %7615

7615:                                             ; preds = %7614, %7602
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %841) #11
  br label %7616

7616:                                             ; preds = %7615, %7598
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %842) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %842) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %841) #11
  br label %7617

7617:                                             ; preds = %7616, %7594
  call void @llvm.lifetime.end.p0(i64 16, ptr %839) #11
  br label %7942

7618:                                             ; preds = %7460
  %7619 = landingpad { ptr, i32 }
          cleanup
  %7620 = extractvalue { ptr, i32 } %7619, 0
  store ptr %7620, ptr %11, align 8
  %7621 = extractvalue { ptr, i32 } %7619, 1
  store i32 %7621, ptr %12, align 4
  br label %7941

7622:                                             ; preds = %7462
  %7623 = landingpad { ptr, i32 }
          cleanup
  %7624 = extractvalue { ptr, i32 } %7623, 0
  store ptr %7624, ptr %11, align 8
  %7625 = extractvalue { ptr, i32 } %7623, 1
  store i32 %7625, ptr %12, align 4
  br label %7630

7626:                                             ; preds = %7463
  %7627 = landingpad { ptr, i32 }
          cleanup
  %7628 = extractvalue { ptr, i32 } %7627, 0
  store ptr %7628, ptr %11, align 8
  %7629 = extractvalue { ptr, i32 } %7627, 1
  store i32 %7629, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %845) #11
  br label %7630

7630:                                             ; preds = %7626, %7622
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %844) #11
  br label %7941

7631:                                             ; preds = %7464
  %7632 = landingpad { ptr, i32 }
          cleanup
  %7633 = extractvalue { ptr, i32 } %7632, 0
  store ptr %7633, ptr %11, align 8
  %7634 = extractvalue { ptr, i32 } %7632, 1
  store i32 %7634, ptr %12, align 4
  br label %7940

7635:                                             ; preds = %7466
  %7636 = landingpad { ptr, i32 }
          cleanup
  %7637 = extractvalue { ptr, i32 } %7636, 0
  store ptr %7637, ptr %11, align 8
  %7638 = extractvalue { ptr, i32 } %7636, 1
  store i32 %7638, ptr %12, align 4
  br label %7939

7639:                                             ; preds = %7470
  %7640 = landingpad { ptr, i32 }
          cleanup
  %7641 = extractvalue { ptr, i32 } %7640, 0
  store ptr %7641, ptr %11, align 8
  %7642 = extractvalue { ptr, i32 } %7640, 1
  store i32 %7642, ptr %12, align 4
  br label %7652

7643:                                             ; preds = %7471
  %7644 = landingpad { ptr, i32 }
          cleanup
  %7645 = extractvalue { ptr, i32 } %7644, 0
  store ptr %7645, ptr %11, align 8
  %7646 = extractvalue { ptr, i32 } %7644, 1
  store i32 %7646, ptr %12, align 4
  br label %7651

7647:                                             ; preds = %7472
  %7648 = landingpad { ptr, i32 }
          cleanup
  %7649 = extractvalue { ptr, i32 } %7648, 0
  store ptr %7649, ptr %11, align 8
  %7650 = extractvalue { ptr, i32 } %7648, 1
  store i32 %7650, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %848) #11
  br label %7651

7651:                                             ; preds = %7647, %7643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %849) #11
  br label %7652

7652:                                             ; preds = %7651, %7639
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %850) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %850) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %849) #11
  br label %7939

7653:                                             ; preds = %7476, %7475, %7473
  %7654 = landingpad { ptr, i32 }
          cleanup
  %7655 = extractvalue { ptr, i32 } %7654, 0
  store ptr %7655, ptr %11, align 8
  %7656 = extractvalue { ptr, i32 } %7654, 1
  store i32 %7656, ptr %12, align 4
  br label %7938

7657:                                             ; preds = %7478
  %7658 = landingpad { ptr, i32 }
          cleanup
  %7659 = extractvalue { ptr, i32 } %7658, 0
  store ptr %7659, ptr %11, align 8
  %7660 = extractvalue { ptr, i32 } %7658, 1
  store i32 %7660, ptr %12, align 4
  br label %7680

7661:                                             ; preds = %7482
  %7662 = landingpad { ptr, i32 }
          cleanup
  %7663 = extractvalue { ptr, i32 } %7662, 0
  store ptr %7663, ptr %11, align 8
  %7664 = extractvalue { ptr, i32 } %7662, 1
  store i32 %7664, ptr %12, align 4
  br label %7679

7665:                                             ; preds = %7483
  %7666 = landingpad { ptr, i32 }
          cleanup
  %7667 = extractvalue { ptr, i32 } %7666, 0
  store ptr %7667, ptr %11, align 8
  %7668 = extractvalue { ptr, i32 } %7666, 1
  store i32 %7668, ptr %12, align 4
  br label %7678

7669:                                             ; preds = %7484
  %7670 = landingpad { ptr, i32 }
          cleanup
  %7671 = extractvalue { ptr, i32 } %7670, 0
  store ptr %7671, ptr %11, align 8
  %7672 = extractvalue { ptr, i32 } %7670, 1
  store i32 %7672, ptr %12, align 4
  br label %7677

7673:                                             ; preds = %7485
  %7674 = landingpad { ptr, i32 }
          cleanup
  %7675 = extractvalue { ptr, i32 } %7674, 0
  store ptr %7675, ptr %11, align 8
  %7676 = extractvalue { ptr, i32 } %7674, 1
  store i32 %7676, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %851) #11
  br label %7677

7677:                                             ; preds = %7673, %7669
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %852) #11
  br label %7678

7678:                                             ; preds = %7677, %7665
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %853) #11
  br label %7679

7679:                                             ; preds = %7678, %7661
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %854) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %854) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %853) #11
  br label %7680

7680:                                             ; preds = %7679, %7657
  call void @llvm.lifetime.end.p0(i64 16, ptr %851) #11
  br label %7938

7681:                                             ; preds = %7489, %7486
  %7682 = landingpad { ptr, i32 }
          cleanup
  %7683 = extractvalue { ptr, i32 } %7682, 0
  store ptr %7683, ptr %11, align 8
  %7684 = extractvalue { ptr, i32 } %7682, 1
  store i32 %7684, ptr %12, align 4
  br label %7937

7685:                                             ; preds = %7490
  %7686 = landingpad { ptr, i32 }
          cleanup
  %7687 = extractvalue { ptr, i32 } %7686, 0
  store ptr %7687, ptr %11, align 8
  %7688 = extractvalue { ptr, i32 } %7686, 1
  store i32 %7688, ptr %12, align 4
  br label %7693

7689:                                             ; preds = %7491
  %7690 = landingpad { ptr, i32 }
          cleanup
  %7691 = extractvalue { ptr, i32 } %7690, 0
  store ptr %7691, ptr %11, align 8
  %7692 = extractvalue { ptr, i32 } %7690, 1
  store i32 %7692, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %857) #11
  br label %7693

7693:                                             ; preds = %7689, %7685
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %856) #11
  br label %7937

7694:                                             ; preds = %7492
  %7695 = landingpad { ptr, i32 }
          cleanup
  %7696 = extractvalue { ptr, i32 } %7695, 0
  store ptr %7696, ptr %11, align 8
  %7697 = extractvalue { ptr, i32 } %7695, 1
  store i32 %7697, ptr %12, align 4
  br label %7936

7698:                                             ; preds = %7494
  %7699 = landingpad { ptr, i32 }
          cleanup
  %7700 = extractvalue { ptr, i32 } %7699, 0
  store ptr %7700, ptr %11, align 8
  %7701 = extractvalue { ptr, i32 } %7699, 1
  store i32 %7701, ptr %12, align 4
  br label %7935

7702:                                             ; preds = %7498
  %7703 = landingpad { ptr, i32 }
          cleanup
  %7704 = extractvalue { ptr, i32 } %7703, 0
  store ptr %7704, ptr %11, align 8
  %7705 = extractvalue { ptr, i32 } %7703, 1
  store i32 %7705, ptr %12, align 4
  br label %7715

7706:                                             ; preds = %7499
  %7707 = landingpad { ptr, i32 }
          cleanup
  %7708 = extractvalue { ptr, i32 } %7707, 0
  store ptr %7708, ptr %11, align 8
  %7709 = extractvalue { ptr, i32 } %7707, 1
  store i32 %7709, ptr %12, align 4
  br label %7714

7710:                                             ; preds = %7500
  %7711 = landingpad { ptr, i32 }
          cleanup
  %7712 = extractvalue { ptr, i32 } %7711, 0
  store ptr %7712, ptr %11, align 8
  %7713 = extractvalue { ptr, i32 } %7711, 1
  store i32 %7713, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %860) #11
  br label %7714

7714:                                             ; preds = %7710, %7706
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %861) #11
  br label %7715

7715:                                             ; preds = %7714, %7702
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %862) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %862) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %861) #11
  br label %7935

7716:                                             ; preds = %7882, %7866, %7859, %7857, %7510, %7508, %7506, %7505, %7503, %7501
  %7717 = landingpad { ptr, i32 }
          cleanup
  %7718 = extractvalue { ptr, i32 } %7717, 0
  store ptr %7718, ptr %11, align 8
  %7719 = extractvalue { ptr, i32 } %7717, 1
  store i32 %7719, ptr %12, align 4
  br label %7934

7720:                                             ; preds = %7511
  %7721 = landingpad { ptr, i32 }
          cleanup
  %7722 = extractvalue { ptr, i32 } %7721, 0
  store ptr %7722, ptr %11, align 8
  %7723 = extractvalue { ptr, i32 } %7721, 1
  store i32 %7723, ptr %12, align 4
  br label %7856

7724:                                             ; preds = %7514
  %7725 = landingpad { ptr, i32 }
          cleanup
  %7726 = extractvalue { ptr, i32 } %7725, 0
  store ptr %7726, ptr %11, align 8
  %7727 = extractvalue { ptr, i32 } %7725, 1
  store i32 %7727, ptr %12, align 4
  br label %7855

7728:                                             ; preds = %7517
  %7729 = landingpad { ptr, i32 }
          cleanup
  %7730 = extractvalue { ptr, i32 } %7729, 0
  store ptr %7730, ptr %11, align 8
  %7731 = extractvalue { ptr, i32 } %7729, 1
  store i32 %7731, ptr %12, align 4
  br label %7854

7732:                                             ; preds = %7521
  call void @llvm.lifetime.start.p0(i64 48, ptr %866) #11
  %7733 = load ptr, ptr %864, align 8, !tbaa !5
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %866, ptr noundef nonnull align 8 dereferenceable(48) %7733)
          to label %7734 unwind label %7762

7734:                                             ; preds = %7732
  call void @llvm.lifetime.start.p0(i64 32, ptr %867) #11
  %7735 = getelementptr inbounds %"struct.std::pair.109", ptr %866, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %867, ptr noundef nonnull align 8 dereferenceable(32) %7735)
          to label %7736 unwind label %7766

7736:                                             ; preds = %7734
  call void @llvm.lifetime.start.p0(i64 16, ptr %868) #11
  %7737 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %869) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %869, ptr noundef nonnull align 8 dereferenceable(32) %867, ptr noundef @.str.161)
          to label %7738 unwind label %7770

7738:                                             ; preds = %7736
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %868, ptr noundef nonnull align 8 dereferenceable(264) %7737, ptr noundef nonnull align 8 dereferenceable(32) %869)
          to label %7739 unwind label %7774

7739:                                             ; preds = %7738
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %869) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %869) #11
  %7740 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %867, ptr noundef nonnull align 8 dereferenceable(32) %824) #11
  br i1 %7740, label %7741, label %7807

7741:                                             ; preds = %7739
  %7742 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %333, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7743 unwind label %7779

7743:                                             ; preds = %7741
  %7744 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7742)
          to label %7745 unwind label %7779

7745:                                             ; preds = %7743
  call void @llvm.lifetime.start.p0(i64 16, ptr %870) #11
  %7746 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7747 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7746, i32 0, i32 1
  %7748 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7747)
          to label %7749 unwind label %7783

7749:                                             ; preds = %7745
  call void @llvm.lifetime.start.p0(i64 32, ptr %872) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %873) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %873) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %872, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %873)
          to label %7750 unwind label %7787

7750:                                             ; preds = %7749
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %871, ptr noundef nonnull align 8 dereferenceable(32) %872)
          to label %7751 unwind label %7791

7751:                                             ; preds = %7750
  %7752 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %334, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7753 unwind label %7795

7753:                                             ; preds = %7751
  %7754 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %332, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7755 unwind label %7795

7755:                                             ; preds = %7753
  %7756 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7754)
          to label %7757 unwind label %7795

7757:                                             ; preds = %7755
  %7758 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4onlyEv(ptr noundef nonnull align 8 dereferenceable(64) %7756)
          to label %7759 unwind label %7795

7759:                                             ; preds = %7757
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %870, ptr noundef nonnull align 8 dereferenceable(32) %7748, ptr noundef %871, ptr noundef nonnull align 8 dereferenceable(16) %7752, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %868, ptr noundef nonnull align 1 dereferenceable(4) @.str.162, ptr noundef nonnull align 8 dereferenceable(16) %7758, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %7760 unwind label %7795

7760:                                             ; preds = %7759
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7744, ptr noundef nonnull align 8 dereferenceable(16) %870)
          to label %7761 unwind label %7799

7761:                                             ; preds = %7760
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %870) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %871) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %872) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %873) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %873) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %872) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %870) #11
  br label %7846

7762:                                             ; preds = %7732
  %7763 = landingpad { ptr, i32 }
          cleanup
  %7764 = extractvalue { ptr, i32 } %7763, 0
  store ptr %7764, ptr %11, align 8
  %7765 = extractvalue { ptr, i32 } %7763, 1
  store i32 %7765, ptr %12, align 4
  br label %7853

7766:                                             ; preds = %7734
  %7767 = landingpad { ptr, i32 }
          cleanup
  %7768 = extractvalue { ptr, i32 } %7767, 0
  store ptr %7768, ptr %11, align 8
  %7769 = extractvalue { ptr, i32 } %7767, 1
  store i32 %7769, ptr %12, align 4
  br label %7852

7770:                                             ; preds = %7736
  %7771 = landingpad { ptr, i32 }
          cleanup
  %7772 = extractvalue { ptr, i32 } %7771, 0
  store ptr %7772, ptr %11, align 8
  %7773 = extractvalue { ptr, i32 } %7771, 1
  store i32 %7773, ptr %12, align 4
  br label %7778

7774:                                             ; preds = %7738
  %7775 = landingpad { ptr, i32 }
          cleanup
  %7776 = extractvalue { ptr, i32 } %7775, 0
  store ptr %7776, ptr %11, align 8
  %7777 = extractvalue { ptr, i32 } %7775, 1
  store i32 %7777, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %869) #11
  br label %7778

7778:                                             ; preds = %7774, %7770
  call void @llvm.lifetime.end.p0(i64 32, ptr %869) #11
  br label %7851

7779:                                             ; preds = %7809, %7807, %7743, %7741
  %7780 = landingpad { ptr, i32 }
          cleanup
  %7781 = extractvalue { ptr, i32 } %7780, 0
  store ptr %7781, ptr %11, align 8
  %7782 = extractvalue { ptr, i32 } %7780, 1
  store i32 %7782, ptr %12, align 4
  br label %7850

7783:                                             ; preds = %7745
  %7784 = landingpad { ptr, i32 }
          cleanup
  %7785 = extractvalue { ptr, i32 } %7784, 0
  store ptr %7785, ptr %11, align 8
  %7786 = extractvalue { ptr, i32 } %7784, 1
  store i32 %7786, ptr %12, align 4
  br label %7806

7787:                                             ; preds = %7749
  %7788 = landingpad { ptr, i32 }
          cleanup
  %7789 = extractvalue { ptr, i32 } %7788, 0
  store ptr %7789, ptr %11, align 8
  %7790 = extractvalue { ptr, i32 } %7788, 1
  store i32 %7790, ptr %12, align 4
  br label %7805

7791:                                             ; preds = %7750
  %7792 = landingpad { ptr, i32 }
          cleanup
  %7793 = extractvalue { ptr, i32 } %7792, 0
  store ptr %7793, ptr %11, align 8
  %7794 = extractvalue { ptr, i32 } %7792, 1
  store i32 %7794, ptr %12, align 4
  br label %7804

7795:                                             ; preds = %7759, %7757, %7755, %7753, %7751
  %7796 = landingpad { ptr, i32 }
          cleanup
  %7797 = extractvalue { ptr, i32 } %7796, 0
  store ptr %7797, ptr %11, align 8
  %7798 = extractvalue { ptr, i32 } %7796, 1
  store i32 %7798, ptr %12, align 4
  br label %7803

7799:                                             ; preds = %7760
  %7800 = landingpad { ptr, i32 }
          cleanup
  %7801 = extractvalue { ptr, i32 } %7800, 0
  store ptr %7801, ptr %11, align 8
  %7802 = extractvalue { ptr, i32 } %7800, 1
  store i32 %7802, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %870) #11
  br label %7803

7803:                                             ; preds = %7799, %7795
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %871) #11
  br label %7804

7804:                                             ; preds = %7803, %7791
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %872) #11
  br label %7805

7805:                                             ; preds = %7804, %7787
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %873) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %873) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %872) #11
  br label %7806

7806:                                             ; preds = %7805, %7783
  call void @llvm.lifetime.end.p0(i64 16, ptr %870) #11
  br label %7850

7807:                                             ; preds = %7739
  %7808 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %333, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7809 unwind label %7779

7809:                                             ; preds = %7807
  %7810 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7808)
          to label %7811 unwind label %7779

7811:                                             ; preds = %7809
  call void @llvm.lifetime.start.p0(i64 16, ptr %874) #11
  %7812 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7813 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7812, i32 0, i32 1
  %7814 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7813)
          to label %7815 unwind label %7822

7815:                                             ; preds = %7811
  call void @llvm.lifetime.start.p0(i64 32, ptr %876) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %877) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %877) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %876, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %877)
          to label %7816 unwind label %7826

7816:                                             ; preds = %7815
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %875, ptr noundef nonnull align 8 dereferenceable(32) %876)
          to label %7817 unwind label %7830

7817:                                             ; preds = %7816
  %7818 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %334, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7819 unwind label %7834

7819:                                             ; preds = %7817
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A10_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %874, ptr noundef nonnull align 8 dereferenceable(32) %7814, ptr noundef %875, ptr noundef nonnull align 8 dereferenceable(16) %7818, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %868, ptr noundef nonnull align 1 dereferenceable(10) @.str.163, ptr noundef nonnull align 8 dereferenceable(16) %868, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %7820 unwind label %7834

7820:                                             ; preds = %7819
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7810, ptr noundef nonnull align 8 dereferenceable(16) %874)
          to label %7821 unwind label %7838

7821:                                             ; preds = %7820
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %874) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %875) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %876) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %877) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %877) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %876) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %874) #11
  br label %7846

7822:                                             ; preds = %7811
  %7823 = landingpad { ptr, i32 }
          cleanup
  %7824 = extractvalue { ptr, i32 } %7823, 0
  store ptr %7824, ptr %11, align 8
  %7825 = extractvalue { ptr, i32 } %7823, 1
  store i32 %7825, ptr %12, align 4
  br label %7845

7826:                                             ; preds = %7815
  %7827 = landingpad { ptr, i32 }
          cleanup
  %7828 = extractvalue { ptr, i32 } %7827, 0
  store ptr %7828, ptr %11, align 8
  %7829 = extractvalue { ptr, i32 } %7827, 1
  store i32 %7829, ptr %12, align 4
  br label %7844

7830:                                             ; preds = %7816
  %7831 = landingpad { ptr, i32 }
          cleanup
  %7832 = extractvalue { ptr, i32 } %7831, 0
  store ptr %7832, ptr %11, align 8
  %7833 = extractvalue { ptr, i32 } %7831, 1
  store i32 %7833, ptr %12, align 4
  br label %7843

7834:                                             ; preds = %7819, %7817
  %7835 = landingpad { ptr, i32 }
          cleanup
  %7836 = extractvalue { ptr, i32 } %7835, 0
  store ptr %7836, ptr %11, align 8
  %7837 = extractvalue { ptr, i32 } %7835, 1
  store i32 %7837, ptr %12, align 4
  br label %7842

7838:                                             ; preds = %7820
  %7839 = landingpad { ptr, i32 }
          cleanup
  %7840 = extractvalue { ptr, i32 } %7839, 0
  store ptr %7840, ptr %11, align 8
  %7841 = extractvalue { ptr, i32 } %7839, 1
  store i32 %7841, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %874) #11
  br label %7842

7842:                                             ; preds = %7838, %7834
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %875) #11
  br label %7843

7843:                                             ; preds = %7842, %7830
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %876) #11
  br label %7844

7844:                                             ; preds = %7843, %7826
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %877) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %877) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %876) #11
  br label %7845

7845:                                             ; preds = %7844, %7822
  call void @llvm.lifetime.end.p0(i64 16, ptr %874) #11
  br label %7850

7846:                                             ; preds = %7821, %7761
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %868) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %868) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %867) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %867) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %866) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %866) #11
  br label %7847

7847:                                             ; preds = %7846
  %7848 = load ptr, ptr %864, align 8, !tbaa !5
  %7849 = getelementptr inbounds %"struct.std::pair.109", ptr %7848, i32 1
  store ptr %7849, ptr %864, align 8, !tbaa !5
  br label %7521

7850:                                             ; preds = %7845, %7806, %7779
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %868) #11
  br label %7851

7851:                                             ; preds = %7850, %7778
  call void @llvm.lifetime.end.p0(i64 16, ptr %868) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %867) #11
  br label %7852

7852:                                             ; preds = %7851, %7766
  call void @llvm.lifetime.end.p0(i64 32, ptr %867) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %866) #11
  br label %7853

7853:                                             ; preds = %7852, %7762
  call void @llvm.lifetime.end.p0(i64 48, ptr %866) #11
  br label %7854

7854:                                             ; preds = %7853, %7728
  call void @llvm.lifetime.end.p0(i64 8, ptr %865) #11
  br label %7855

7855:                                             ; preds = %7854, %7724
  call void @llvm.lifetime.end.p0(i64 8, ptr %864) #11
  br label %7856

7856:                                             ; preds = %7855, %7720
  call void @llvm.lifetime.end.p0(i64 8, ptr %863) #11
  br label %7934

7857:                                             ; preds = %7525
  %7858 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %333, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7859 unwind label %7716

7859:                                             ; preds = %7857
  %7860 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7858)
          to label %7861 unwind label %7716

7861:                                             ; preds = %7859
  call void @llvm.lifetime.start.p0(i64 16, ptr %878) #11
  %7862 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7863 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %334, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %7864 unwind label %7893

7864:                                             ; preds = %7861
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %878, ptr noundef nonnull align 8 dereferenceable(264) %7862, ptr noundef nonnull align 8 dereferenceable(16) %7863)
          to label %7865 unwind label %7893

7865:                                             ; preds = %7864
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7860, ptr noundef nonnull align 8 dereferenceable(16) %878)
          to label %7866 unwind label %7897

7866:                                             ; preds = %7865
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %878) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %878) #11
  %7867 = getelementptr inbounds %"struct.std::pair.131", ptr %250, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %879, ptr noundef nonnull align 8 dereferenceable(16) %7867)
          to label %7868 unwind label %7716

7868:                                             ; preds = %7866
  %7869 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef %879)
          to label %7870 unwind label %7902

7870:                                             ; preds = %7868
  br i1 %7869, label %7880, label %7871

7871:                                             ; preds = %7870
  %7872 = load ptr, ptr %823, align 8, !tbaa !5
  %7873 = getelementptr inbounds %"struct.std::pair.109", ptr %7872, i32 0, i32 1
  %7874 = invoke noundef ptr @_ZNK6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7873)
          to label %7875 unwind label %7902

7875:                                             ; preds = %7871
  %7876 = getelementptr inbounds %"struct.lang::data::Node::Entry::Field::_T", ptr %7874, i32 0, i32 2
  %7877 = load i8, ptr %7876, align 8, !tbaa !41, !range !20, !noundef !21
  %7878 = trunc i8 %7877 to i1
  %7879 = xor i1 %7878, true
  br label %7880

7880:                                             ; preds = %7875, %7870
  %7881 = phi i1 [ false, %7870 ], [ %7879, %7875 ]
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %879) #11
  br i1 %7881, label %7882, label %7930

7882:                                             ; preds = %7880
  %7883 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %656)
          to label %7884 unwind label %7716

7884:                                             ; preds = %7882
  call void @llvm.lifetime.start.p0(i64 16, ptr %880) #11
  %7885 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %7886 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %7885, i32 0, i32 1
  %7887 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7886)
          to label %7888 unwind label %7906

7888:                                             ; preds = %7884
  call void @llvm.lifetime.start.p0(i64 32, ptr %882) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %883) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %883) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %882, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %883)
          to label %7889 unwind label %7910

7889:                                             ; preds = %7888
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %881, ptr noundef nonnull align 8 dereferenceable(32) %882)
          to label %7890 unwind label %7914

7890:                                             ; preds = %7889
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA9_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %880, ptr noundef nonnull align 8 dereferenceable(32) %7887, ptr noundef %881, ptr noundef nonnull align 1 dereferenceable(10) @.str.159, ptr noundef nonnull align 8 dereferenceable(16) %628, ptr noundef nonnull align 1 dereferenceable(9) @.str.164, ptr noundef nonnull align 8 dereferenceable(16) %829, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %7891 unwind label %7918

7891:                                             ; preds = %7890
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7883, ptr noundef nonnull align 8 dereferenceable(16) %880)
          to label %7892 unwind label %7922

7892:                                             ; preds = %7891
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %880) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %881) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %882) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %883) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %883) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %882) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %880) #11
  br label %7930

7893:                                             ; preds = %7864, %7861
  %7894 = landingpad { ptr, i32 }
          cleanup
  %7895 = extractvalue { ptr, i32 } %7894, 0
  store ptr %7895, ptr %11, align 8
  %7896 = extractvalue { ptr, i32 } %7894, 1
  store i32 %7896, ptr %12, align 4
  br label %7901

7897:                                             ; preds = %7865
  %7898 = landingpad { ptr, i32 }
          cleanup
  %7899 = extractvalue { ptr, i32 } %7898, 0
  store ptr %7899, ptr %11, align 8
  %7900 = extractvalue { ptr, i32 } %7898, 1
  store i32 %7900, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %878) #11
  br label %7901

7901:                                             ; preds = %7897, %7893
  call void @llvm.lifetime.end.p0(i64 16, ptr %878) #11
  br label %7934

7902:                                             ; preds = %7871, %7868
  %7903 = landingpad { ptr, i32 }
          cleanup
  %7904 = extractvalue { ptr, i32 } %7903, 0
  store ptr %7904, ptr %11, align 8
  %7905 = extractvalue { ptr, i32 } %7903, 1
  store i32 %7905, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %879) #11
  br label %7934

7906:                                             ; preds = %7884
  %7907 = landingpad { ptr, i32 }
          cleanup
  %7908 = extractvalue { ptr, i32 } %7907, 0
  store ptr %7908, ptr %11, align 8
  %7909 = extractvalue { ptr, i32 } %7907, 1
  store i32 %7909, ptr %12, align 4
  br label %7929

7910:                                             ; preds = %7888
  %7911 = landingpad { ptr, i32 }
          cleanup
  %7912 = extractvalue { ptr, i32 } %7911, 0
  store ptr %7912, ptr %11, align 8
  %7913 = extractvalue { ptr, i32 } %7911, 1
  store i32 %7913, ptr %12, align 4
  br label %7928

7914:                                             ; preds = %7889
  %7915 = landingpad { ptr, i32 }
          cleanup
  %7916 = extractvalue { ptr, i32 } %7915, 0
  store ptr %7916, ptr %11, align 8
  %7917 = extractvalue { ptr, i32 } %7915, 1
  store i32 %7917, ptr %12, align 4
  br label %7927

7918:                                             ; preds = %7890
  %7919 = landingpad { ptr, i32 }
          cleanup
  %7920 = extractvalue { ptr, i32 } %7919, 0
  store ptr %7920, ptr %11, align 8
  %7921 = extractvalue { ptr, i32 } %7919, 1
  store i32 %7921, ptr %12, align 4
  br label %7926

7922:                                             ; preds = %7891
  %7923 = landingpad { ptr, i32 }
          cleanup
  %7924 = extractvalue { ptr, i32 } %7923, 0
  store ptr %7924, ptr %11, align 8
  %7925 = extractvalue { ptr, i32 } %7923, 1
  store i32 %7925, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %880) #11
  br label %7926

7926:                                             ; preds = %7922, %7918
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %881) #11
  br label %7927

7927:                                             ; preds = %7926, %7914
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %882) #11
  br label %7928

7928:                                             ; preds = %7927, %7910
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %883) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %883) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %882) #11
  br label %7929

7929:                                             ; preds = %7928, %7906
  call void @llvm.lifetime.end.p0(i64 16, ptr %880) #11
  br label %7934

7930:                                             ; preds = %7892, %7880
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %859) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %859) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %858) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %858) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %855) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %855) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %847) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %847) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %846) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %846) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %843) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %843) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %835) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %835) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %834) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %834) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %831) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %831) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %829) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %829) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %827) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %827) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %826) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %826) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %825) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %825) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %824) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %824) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %823) #11
  br label %7931

7931:                                             ; preds = %7930
  %7932 = load ptr, ptr %821, align 8, !tbaa !5
  %7933 = getelementptr inbounds %"struct.std::pair.109", ptr %7932, i32 1
  store ptr %7933, ptr %821, align 8, !tbaa !5
  br label %7401

7934:                                             ; preds = %7929, %7902, %7901, %7856, %7716
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %859) #11
  br label %7935

7935:                                             ; preds = %7934, %7715, %7698
  call void @llvm.lifetime.end.p0(i64 16, ptr %859) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %858) #11
  br label %7936

7936:                                             ; preds = %7935, %7694
  call void @llvm.lifetime.end.p0(i64 16, ptr %858) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %855) #11
  br label %7937

7937:                                             ; preds = %7936, %7693, %7681
  call void @llvm.lifetime.end.p0(i64 32, ptr %855) #11
  br label %7938

7938:                                             ; preds = %7937, %7680, %7653
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %847) #11
  br label %7939

7939:                                             ; preds = %7938, %7652, %7635
  call void @llvm.lifetime.end.p0(i64 16, ptr %847) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %846) #11
  br label %7940

7940:                                             ; preds = %7939, %7631
  call void @llvm.lifetime.end.p0(i64 16, ptr %846) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %843) #11
  br label %7941

7941:                                             ; preds = %7940, %7630, %7618
  call void @llvm.lifetime.end.p0(i64 32, ptr %843) #11
  br label %7942

7942:                                             ; preds = %7941, %7617, %7590
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %835) #11
  br label %7943

7943:                                             ; preds = %7942, %7589, %7572
  call void @llvm.lifetime.end.p0(i64 16, ptr %835) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %834) #11
  br label %7944

7944:                                             ; preds = %7943, %7568
  call void @llvm.lifetime.end.p0(i64 16, ptr %834) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %831) #11
  br label %7945

7945:                                             ; preds = %7944, %7567, %7555
  call void @llvm.lifetime.end.p0(i64 32, ptr %831) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %829) #11
  br label %7946

7946:                                             ; preds = %7945, %7554
  call void @llvm.lifetime.end.p0(i64 16, ptr %829) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %827) #11
  br label %7947

7947:                                             ; preds = %7946, %7542, %7538
  call void @llvm.lifetime.end.p0(i64 16, ptr %827) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %826) #11
  br label %7948

7948:                                             ; preds = %7947, %7534
  call void @llvm.lifetime.end.p0(i64 16, ptr %826) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %825) #11
  br label %7949

7949:                                             ; preds = %7948, %7530
  call void @llvm.lifetime.end.p0(i64 16, ptr %825) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %824) #11
  br label %7950

7950:                                             ; preds = %7949, %7526
  call void @llvm.lifetime.end.p0(i64 32, ptr %824) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %823) #11
  br label %7951

7951:                                             ; preds = %7950, %7414
  call void @llvm.lifetime.end.p0(i64 8, ptr %822) #11
  br label %7952

7952:                                             ; preds = %7951, %7410
  call void @llvm.lifetime.end.p0(i64 8, ptr %821) #11
  br label %7953

7953:                                             ; preds = %7952, %7406
  call void @llvm.lifetime.end.p0(i64 8, ptr %820) #11
  br label %11059

7954:                                             ; preds = %7405
  %7955 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %302)
          to label %7956 unwind label %7131

7956:                                             ; preds = %7954
  call void @llvm.lifetime.start.p0(i64 16, ptr %884) #11
  %7957 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %884, ptr noundef nonnull align 8 dereferenceable(264) %7957, ptr noundef nonnull align 8 dereferenceable(16) %303)
          to label %7958 unwind label %7990

7958:                                             ; preds = %7956
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7955, ptr noundef nonnull align 8 dereferenceable(16) %884)
          to label %7959 unwind label %7994

7959:                                             ; preds = %7958
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %884) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %884) #11
  %7960 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %325)
          to label %7961 unwind label %7131

7961:                                             ; preds = %7959
  call void @llvm.lifetime.start.p0(i64 16, ptr %885) #11
  %7962 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %885, ptr noundef nonnull align 8 dereferenceable(264) %7962, ptr noundef nonnull align 8 dereferenceable(16) %326)
          to label %7963 unwind label %7999

7963:                                             ; preds = %7961
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7960, ptr noundef nonnull align 8 dereferenceable(16) %885)
          to label %7964 unwind label %8003

7964:                                             ; preds = %7963
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %885) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %885) #11
  %7965 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %7966 unwind label %7131

7966:                                             ; preds = %7964
  call void @llvm.lifetime.start.p0(i64 16, ptr %886) #11
  %7967 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %887) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %887)
          to label %7968 unwind label %8008

7968:                                             ; preds = %7966
  call void @llvm.lifetime.start.p0(i64 16, ptr %888) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %888)
          to label %7969 unwind label %8012

7969:                                             ; preds = %7968
  call void @llvm.lifetime.start.p0(i64 20, ptr %889) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %889)
          to label %7970 unwind label %8016

7970:                                             ; preds = %7969
  call void @llvm.lifetime.start.p0(i64 16, ptr %890) #11
  %7971 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %891) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %892)
          to label %7972 unwind label %8020

7972:                                             ; preds = %7970
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %893)
          to label %7973 unwind label %8024

7973:                                             ; preds = %7972
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %891, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %892, ptr noundef %893)
          to label %7974 unwind label %8028

7974:                                             ; preds = %7973
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %890, ptr noundef nonnull align 8 dereferenceable(264) %7971, ptr noundef nonnull align 8 dereferenceable(16) %891, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %7975 unwind label %8032

7975:                                             ; preds = %7974
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %886, ptr noundef nonnull align 8 dereferenceable(264) %7967, ptr noundef nonnull align 8 dereferenceable(16) %887, ptr noundef nonnull align 8 dereferenceable(16) %888, ptr noundef nonnull align 4 dereferenceable(20) %889, ptr noundef nonnull align 8 dereferenceable(16) %890, ptr noundef nonnull align 8 dereferenceable(16) %271)
          to label %7976 unwind label %8036

7976:                                             ; preds = %7975
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7965, ptr noundef nonnull align 8 dereferenceable(16) %886)
          to label %7977 unwind label %8040

7977:                                             ; preds = %7976
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %886) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %890) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %891) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %893) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %892) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %891) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %890) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %889) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %889) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %888) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %888) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %887) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %887) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %886) #11
  %7978 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %7979 = trunc i8 %7978 to i1
  br i1 %7979, label %8393, label %7980

7980:                                             ; preds = %7977
  call void @llvm.lifetime.start.p0(i64 16, ptr %894) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %894)
          to label %7981 unwind label %8052

7981:                                             ; preds = %7980
  %7982 = load i32, ptr %8, align 4, !tbaa !9
  %7983 = icmp eq i32 %7982, 1
  br i1 %7983, label %7984, label %8069

7984:                                             ; preds = %7981
  %7985 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %894)
          to label %7986 unwind label %8056

7986:                                             ; preds = %7984
  call void @llvm.lifetime.start.p0(i64 16, ptr %895) #11
  %7987 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA4_cA31_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %895, ptr noundef nonnull align 8 dereferenceable(264) %7987, ptr noundef nonnull align 1 dereferenceable(4) @.str.165, ptr noundef nonnull align 1 dereferenceable(31) @.str.166)
          to label %7988 unwind label %8060

7988:                                             ; preds = %7986
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %7985, ptr noundef nonnull align 8 dereferenceable(16) %895)
          to label %7989 unwind label %8064

7989:                                             ; preds = %7988
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %895) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %895) #11
  br label %8069

7990:                                             ; preds = %7956
  %7991 = landingpad { ptr, i32 }
          cleanup
  %7992 = extractvalue { ptr, i32 } %7991, 0
  store ptr %7992, ptr %11, align 8
  %7993 = extractvalue { ptr, i32 } %7991, 1
  store i32 %7993, ptr %12, align 4
  br label %7998

7994:                                             ; preds = %7958
  %7995 = landingpad { ptr, i32 }
          cleanup
  %7996 = extractvalue { ptr, i32 } %7995, 0
  store ptr %7996, ptr %11, align 8
  %7997 = extractvalue { ptr, i32 } %7995, 1
  store i32 %7997, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %884) #11
  br label %7998

7998:                                             ; preds = %7994, %7990
  call void @llvm.lifetime.end.p0(i64 16, ptr %884) #11
  br label %11059

7999:                                             ; preds = %7961
  %8000 = landingpad { ptr, i32 }
          cleanup
  %8001 = extractvalue { ptr, i32 } %8000, 0
  store ptr %8001, ptr %11, align 8
  %8002 = extractvalue { ptr, i32 } %8000, 1
  store i32 %8002, ptr %12, align 4
  br label %8007

8003:                                             ; preds = %7963
  %8004 = landingpad { ptr, i32 }
          cleanup
  %8005 = extractvalue { ptr, i32 } %8004, 0
  store ptr %8005, ptr %11, align 8
  %8006 = extractvalue { ptr, i32 } %8004, 1
  store i32 %8006, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %885) #11
  br label %8007

8007:                                             ; preds = %8003, %7999
  call void @llvm.lifetime.end.p0(i64 16, ptr %885) #11
  br label %11059

8008:                                             ; preds = %7966
  %8009 = landingpad { ptr, i32 }
          cleanup
  %8010 = extractvalue { ptr, i32 } %8009, 0
  store ptr %8010, ptr %11, align 8
  %8011 = extractvalue { ptr, i32 } %8009, 1
  store i32 %8011, ptr %12, align 4
  br label %8051

8012:                                             ; preds = %7968
  %8013 = landingpad { ptr, i32 }
          cleanup
  %8014 = extractvalue { ptr, i32 } %8013, 0
  store ptr %8014, ptr %11, align 8
  %8015 = extractvalue { ptr, i32 } %8013, 1
  store i32 %8015, ptr %12, align 4
  br label %8050

8016:                                             ; preds = %7969
  %8017 = landingpad { ptr, i32 }
          cleanup
  %8018 = extractvalue { ptr, i32 } %8017, 0
  store ptr %8018, ptr %11, align 8
  %8019 = extractvalue { ptr, i32 } %8017, 1
  store i32 %8019, ptr %12, align 4
  br label %8049

8020:                                             ; preds = %7970
  %8021 = landingpad { ptr, i32 }
          cleanup
  %8022 = extractvalue { ptr, i32 } %8021, 0
  store ptr %8022, ptr %11, align 8
  %8023 = extractvalue { ptr, i32 } %8021, 1
  store i32 %8023, ptr %12, align 4
  br label %8048

8024:                                             ; preds = %7972
  %8025 = landingpad { ptr, i32 }
          cleanup
  %8026 = extractvalue { ptr, i32 } %8025, 0
  store ptr %8026, ptr %11, align 8
  %8027 = extractvalue { ptr, i32 } %8025, 1
  store i32 %8027, ptr %12, align 4
  br label %8047

8028:                                             ; preds = %7973
  %8029 = landingpad { ptr, i32 }
          cleanup
  %8030 = extractvalue { ptr, i32 } %8029, 0
  store ptr %8030, ptr %11, align 8
  %8031 = extractvalue { ptr, i32 } %8029, 1
  store i32 %8031, ptr %12, align 4
  br label %8046

8032:                                             ; preds = %7974
  %8033 = landingpad { ptr, i32 }
          cleanup
  %8034 = extractvalue { ptr, i32 } %8033, 0
  store ptr %8034, ptr %11, align 8
  %8035 = extractvalue { ptr, i32 } %8033, 1
  store i32 %8035, ptr %12, align 4
  br label %8045

8036:                                             ; preds = %7975
  %8037 = landingpad { ptr, i32 }
          cleanup
  %8038 = extractvalue { ptr, i32 } %8037, 0
  store ptr %8038, ptr %11, align 8
  %8039 = extractvalue { ptr, i32 } %8037, 1
  store i32 %8039, ptr %12, align 4
  br label %8044

8040:                                             ; preds = %7976
  %8041 = landingpad { ptr, i32 }
          cleanup
  %8042 = extractvalue { ptr, i32 } %8041, 0
  store ptr %8042, ptr %11, align 8
  %8043 = extractvalue { ptr, i32 } %8041, 1
  store i32 %8043, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %886) #11
  br label %8044

8044:                                             ; preds = %8040, %8036
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %890) #11
  br label %8045

8045:                                             ; preds = %8044, %8032
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %891) #11
  br label %8046

8046:                                             ; preds = %8045, %8028
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %893) #11
  br label %8047

8047:                                             ; preds = %8046, %8024
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %892) #11
  br label %8048

8048:                                             ; preds = %8047, %8020
  call void @llvm.lifetime.end.p0(i64 16, ptr %891) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %890) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %889) #11
  br label %8049

8049:                                             ; preds = %8048, %8016
  call void @llvm.lifetime.end.p0(i64 20, ptr %889) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %888) #11
  br label %8050

8050:                                             ; preds = %8049, %8012
  call void @llvm.lifetime.end.p0(i64 16, ptr %888) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %887) #11
  br label %8051

8051:                                             ; preds = %8050, %8008
  call void @llvm.lifetime.end.p0(i64 16, ptr %887) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %886) #11
  br label %11059

8052:                                             ; preds = %7980
  %8053 = landingpad { ptr, i32 }
          cleanup
  %8054 = extractvalue { ptr, i32 } %8053, 0
  store ptr %8054, ptr %11, align 8
  %8055 = extractvalue { ptr, i32 } %8053, 1
  store i32 %8055, ptr %12, align 4
  br label %8392

8056:                                             ; preds = %8088, %8069, %7984
  %8057 = landingpad { ptr, i32 }
          cleanup
  %8058 = extractvalue { ptr, i32 } %8057, 0
  store ptr %8058, ptr %11, align 8
  %8059 = extractvalue { ptr, i32 } %8057, 1
  store i32 %8059, ptr %12, align 4
  br label %8391

8060:                                             ; preds = %7986
  %8061 = landingpad { ptr, i32 }
          cleanup
  %8062 = extractvalue { ptr, i32 } %8061, 0
  store ptr %8062, ptr %11, align 8
  %8063 = extractvalue { ptr, i32 } %8061, 1
  store i32 %8063, ptr %12, align 4
  br label %8068

8064:                                             ; preds = %7988
  %8065 = landingpad { ptr, i32 }
          cleanup
  %8066 = extractvalue { ptr, i32 } %8065, 0
  store ptr %8066, ptr %11, align 8
  %8067 = extractvalue { ptr, i32 } %8065, 1
  store i32 %8067, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %895) #11
  br label %8068

8068:                                             ; preds = %8064, %8060
  call void @llvm.lifetime.end.p0(i64 16, ptr %895) #11
  br label %8391

8069:                                             ; preds = %7989, %7981
  %8070 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %8071 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %8070, i32 0, i32 2
  %8072 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %8071)
          to label %8073 unwind label %8056

8073:                                             ; preds = %8069
  call void @llvm.lifetime.start.p0(i64 16, ptr %896) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %897) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %898) #11
  %8074 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 20, ptr %899) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %900) #11
  %8075 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %901) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %902)
          to label %8076 unwind label %8122

8076:                                             ; preds = %8073
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %903)
          to label %8077 unwind label %8126

8077:                                             ; preds = %8076
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %901, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %902, ptr noundef %903)
          to label %8078 unwind label %8130

8078:                                             ; preds = %8077
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %900, ptr noundef nonnull align 8 dereferenceable(264) %8075, ptr noundef nonnull align 8 dereferenceable(16) %901, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %8079 unwind label %8134

8079:                                             ; preds = %8078
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %899, ptr noundef nonnull align 8 dereferenceable(16) %900)
          to label %8080 unwind label %8138

8080:                                             ; preds = %8079
  call void @llvm.lifetime.start.p0(i64 16, ptr %904) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %905)
          to label %8081 unwind label %8142

8081:                                             ; preds = %8080
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %904, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %905)
          to label %8082 unwind label %8146

8082:                                             ; preds = %8081
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %898, ptr noundef nonnull align 8 dereferenceable(264) %8074, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %894, ptr noundef nonnull align 4 dereferenceable(20) %899, ptr noundef nonnull align 8 dereferenceable(16) %904, ptr noundef nonnull align 8 dereferenceable(16) %301)
          to label %8083 unwind label %8150

8083:                                             ; preds = %8082
  %8084 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %898)
          to label %8085 unwind label %8154

8085:                                             ; preds = %8083
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %897, ptr noundef nonnull align 8 dereferenceable(136) %8084)
          to label %8086 unwind label %8154

8086:                                             ; preds = %8085
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %896, ptr noundef nonnull align 8 dereferenceable(16) %897)
          to label %8087 unwind label %8158

8087:                                             ; preds = %8086
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8072, ptr noundef nonnull align 8 dereferenceable(16) %896)
          to label %8088 unwind label %8162

8088:                                             ; preds = %8087
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %896) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %897) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %898) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %904) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %905) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %904) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %899) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %900) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %901) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %903) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %902) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %901) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %900) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %899) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %898) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %897) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %896) #11
  %8089 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %8090 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %8089, i32 0, i32 2
  %8091 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %8090)
          to label %8092 unwind label %8056

8092:                                             ; preds = %8088
  call void @llvm.lifetime.start.p0(i64 16, ptr %906) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %907) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %908) #11
  %8093 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 20, ptr %909) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %910) #11
  %8094 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %911) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %912)
          to label %8095 unwind label %8176

8095:                                             ; preds = %8092
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %913)
          to label %8096 unwind label %8180

8096:                                             ; preds = %8095
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %911, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %912, ptr noundef %913)
          to label %8097 unwind label %8184

8097:                                             ; preds = %8096
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %910, ptr noundef nonnull align 8 dereferenceable(264) %8094, ptr noundef nonnull align 8 dereferenceable(16) %911, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %8098 unwind label %8188

8098:                                             ; preds = %8097
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %909, ptr noundef nonnull align 8 dereferenceable(16) %910)
          to label %8099 unwind label %8192

8099:                                             ; preds = %8098
  call void @llvm.lifetime.start.p0(i64 16, ptr %914) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %915)
          to label %8100 unwind label %8196

8100:                                             ; preds = %8099
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %914, i32 noundef 6, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef %915)
          to label %8101 unwind label %8200

8101:                                             ; preds = %8100
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %908, ptr noundef nonnull align 8 dereferenceable(264) %8093, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %894, ptr noundef nonnull align 4 dereferenceable(20) %909, ptr noundef nonnull align 8 dereferenceable(16) %914, ptr noundef nonnull align 8 dereferenceable(16) %320)
          to label %8102 unwind label %8204

8102:                                             ; preds = %8101
  %8103 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %908)
          to label %8104 unwind label %8208

8104:                                             ; preds = %8102
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %907, ptr noundef nonnull align 8 dereferenceable(136) %8103)
          to label %8105 unwind label %8208

8105:                                             ; preds = %8104
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %906, ptr noundef nonnull align 8 dereferenceable(16) %907)
          to label %8106 unwind label %8212

8106:                                             ; preds = %8105
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8091, ptr noundef nonnull align 8 dereferenceable(16) %906)
          to label %8107 unwind label %8216

8107:                                             ; preds = %8106
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %906) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %907) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %908) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %914) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %915) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %914) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %909) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %910) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %911) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %913) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %912) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %911) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %910) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %909) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %908) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %907) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %906) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %916) #11
  %8108 = load ptr, ptr %267, align 8, !tbaa !5
  %8109 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %8108)
          to label %8110 unwind label %8230

8110:                                             ; preds = %8107
  store ptr %8109, ptr %916, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %917) #11
  %8111 = load ptr, ptr %916, align 8, !tbaa !5
  %8112 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %8111)
          to label %8113 unwind label %8234

8113:                                             ; preds = %8110
  store ptr %8112, ptr %917, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %918) #11
  %8114 = load ptr, ptr %916, align 8, !tbaa !5
  %8115 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %8114)
          to label %8116 unwind label %8238

8116:                                             ; preds = %8113
  store ptr %8115, ptr %918, align 8, !tbaa !5
  br label %8117

8117:                                             ; preds = %8281, %8116
  %8118 = load ptr, ptr %917, align 8, !tbaa !5
  %8119 = load ptr, ptr %918, align 8, !tbaa !5
  %8120 = icmp ne ptr %8118, %8119
  br i1 %8120, label %8242, label %8121

8121:                                             ; preds = %8117
  store i32 61, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %918) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %917) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %916) #11
  br label %8390

8122:                                             ; preds = %8073
  %8123 = landingpad { ptr, i32 }
          cleanup
  %8124 = extractvalue { ptr, i32 } %8123, 0
  store ptr %8124, ptr %11, align 8
  %8125 = extractvalue { ptr, i32 } %8123, 1
  store i32 %8125, ptr %12, align 4
  br label %8175

8126:                                             ; preds = %8076
  %8127 = landingpad { ptr, i32 }
          cleanup
  %8128 = extractvalue { ptr, i32 } %8127, 0
  store ptr %8128, ptr %11, align 8
  %8129 = extractvalue { ptr, i32 } %8127, 1
  store i32 %8129, ptr %12, align 4
  br label %8174

8130:                                             ; preds = %8077
  %8131 = landingpad { ptr, i32 }
          cleanup
  %8132 = extractvalue { ptr, i32 } %8131, 0
  store ptr %8132, ptr %11, align 8
  %8133 = extractvalue { ptr, i32 } %8131, 1
  store i32 %8133, ptr %12, align 4
  br label %8173

8134:                                             ; preds = %8078
  %8135 = landingpad { ptr, i32 }
          cleanup
  %8136 = extractvalue { ptr, i32 } %8135, 0
  store ptr %8136, ptr %11, align 8
  %8137 = extractvalue { ptr, i32 } %8135, 1
  store i32 %8137, ptr %12, align 4
  br label %8172

8138:                                             ; preds = %8079
  %8139 = landingpad { ptr, i32 }
          cleanup
  %8140 = extractvalue { ptr, i32 } %8139, 0
  store ptr %8140, ptr %11, align 8
  %8141 = extractvalue { ptr, i32 } %8139, 1
  store i32 %8141, ptr %12, align 4
  br label %8171

8142:                                             ; preds = %8080
  %8143 = landingpad { ptr, i32 }
          cleanup
  %8144 = extractvalue { ptr, i32 } %8143, 0
  store ptr %8144, ptr %11, align 8
  %8145 = extractvalue { ptr, i32 } %8143, 1
  store i32 %8145, ptr %12, align 4
  br label %8170

8146:                                             ; preds = %8081
  %8147 = landingpad { ptr, i32 }
          cleanup
  %8148 = extractvalue { ptr, i32 } %8147, 0
  store ptr %8148, ptr %11, align 8
  %8149 = extractvalue { ptr, i32 } %8147, 1
  store i32 %8149, ptr %12, align 4
  br label %8169

8150:                                             ; preds = %8082
  %8151 = landingpad { ptr, i32 }
          cleanup
  %8152 = extractvalue { ptr, i32 } %8151, 0
  store ptr %8152, ptr %11, align 8
  %8153 = extractvalue { ptr, i32 } %8151, 1
  store i32 %8153, ptr %12, align 4
  br label %8168

8154:                                             ; preds = %8085, %8083
  %8155 = landingpad { ptr, i32 }
          cleanup
  %8156 = extractvalue { ptr, i32 } %8155, 0
  store ptr %8156, ptr %11, align 8
  %8157 = extractvalue { ptr, i32 } %8155, 1
  store i32 %8157, ptr %12, align 4
  br label %8167

8158:                                             ; preds = %8086
  %8159 = landingpad { ptr, i32 }
          cleanup
  %8160 = extractvalue { ptr, i32 } %8159, 0
  store ptr %8160, ptr %11, align 8
  %8161 = extractvalue { ptr, i32 } %8159, 1
  store i32 %8161, ptr %12, align 4
  br label %8166

8162:                                             ; preds = %8087
  %8163 = landingpad { ptr, i32 }
          cleanup
  %8164 = extractvalue { ptr, i32 } %8163, 0
  store ptr %8164, ptr %11, align 8
  %8165 = extractvalue { ptr, i32 } %8163, 1
  store i32 %8165, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %896) #11
  br label %8166

8166:                                             ; preds = %8162, %8158
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %897) #11
  br label %8167

8167:                                             ; preds = %8166, %8154
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %898) #11
  br label %8168

8168:                                             ; preds = %8167, %8150
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %904) #11
  br label %8169

8169:                                             ; preds = %8168, %8146
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %905) #11
  br label %8170

8170:                                             ; preds = %8169, %8142
  call void @llvm.lifetime.end.p0(i64 16, ptr %904) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %899) #11
  br label %8171

8171:                                             ; preds = %8170, %8138
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %900) #11
  br label %8172

8172:                                             ; preds = %8171, %8134
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %901) #11
  br label %8173

8173:                                             ; preds = %8172, %8130
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %903) #11
  br label %8174

8174:                                             ; preds = %8173, %8126
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %902) #11
  br label %8175

8175:                                             ; preds = %8174, %8122
  call void @llvm.lifetime.end.p0(i64 16, ptr %901) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %900) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %899) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %898) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %897) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %896) #11
  br label %8391

8176:                                             ; preds = %8092
  %8177 = landingpad { ptr, i32 }
          cleanup
  %8178 = extractvalue { ptr, i32 } %8177, 0
  store ptr %8178, ptr %11, align 8
  %8179 = extractvalue { ptr, i32 } %8177, 1
  store i32 %8179, ptr %12, align 4
  br label %8229

8180:                                             ; preds = %8095
  %8181 = landingpad { ptr, i32 }
          cleanup
  %8182 = extractvalue { ptr, i32 } %8181, 0
  store ptr %8182, ptr %11, align 8
  %8183 = extractvalue { ptr, i32 } %8181, 1
  store i32 %8183, ptr %12, align 4
  br label %8228

8184:                                             ; preds = %8096
  %8185 = landingpad { ptr, i32 }
          cleanup
  %8186 = extractvalue { ptr, i32 } %8185, 0
  store ptr %8186, ptr %11, align 8
  %8187 = extractvalue { ptr, i32 } %8185, 1
  store i32 %8187, ptr %12, align 4
  br label %8227

8188:                                             ; preds = %8097
  %8189 = landingpad { ptr, i32 }
          cleanup
  %8190 = extractvalue { ptr, i32 } %8189, 0
  store ptr %8190, ptr %11, align 8
  %8191 = extractvalue { ptr, i32 } %8189, 1
  store i32 %8191, ptr %12, align 4
  br label %8226

8192:                                             ; preds = %8098
  %8193 = landingpad { ptr, i32 }
          cleanup
  %8194 = extractvalue { ptr, i32 } %8193, 0
  store ptr %8194, ptr %11, align 8
  %8195 = extractvalue { ptr, i32 } %8193, 1
  store i32 %8195, ptr %12, align 4
  br label %8225

8196:                                             ; preds = %8099
  %8197 = landingpad { ptr, i32 }
          cleanup
  %8198 = extractvalue { ptr, i32 } %8197, 0
  store ptr %8198, ptr %11, align 8
  %8199 = extractvalue { ptr, i32 } %8197, 1
  store i32 %8199, ptr %12, align 4
  br label %8224

8200:                                             ; preds = %8100
  %8201 = landingpad { ptr, i32 }
          cleanup
  %8202 = extractvalue { ptr, i32 } %8201, 0
  store ptr %8202, ptr %11, align 8
  %8203 = extractvalue { ptr, i32 } %8201, 1
  store i32 %8203, ptr %12, align 4
  br label %8223

8204:                                             ; preds = %8101
  %8205 = landingpad { ptr, i32 }
          cleanup
  %8206 = extractvalue { ptr, i32 } %8205, 0
  store ptr %8206, ptr %11, align 8
  %8207 = extractvalue { ptr, i32 } %8205, 1
  store i32 %8207, ptr %12, align 4
  br label %8222

8208:                                             ; preds = %8104, %8102
  %8209 = landingpad { ptr, i32 }
          cleanup
  %8210 = extractvalue { ptr, i32 } %8209, 0
  store ptr %8210, ptr %11, align 8
  %8211 = extractvalue { ptr, i32 } %8209, 1
  store i32 %8211, ptr %12, align 4
  br label %8221

8212:                                             ; preds = %8105
  %8213 = landingpad { ptr, i32 }
          cleanup
  %8214 = extractvalue { ptr, i32 } %8213, 0
  store ptr %8214, ptr %11, align 8
  %8215 = extractvalue { ptr, i32 } %8213, 1
  store i32 %8215, ptr %12, align 4
  br label %8220

8216:                                             ; preds = %8106
  %8217 = landingpad { ptr, i32 }
          cleanup
  %8218 = extractvalue { ptr, i32 } %8217, 0
  store ptr %8218, ptr %11, align 8
  %8219 = extractvalue { ptr, i32 } %8217, 1
  store i32 %8219, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %906) #11
  br label %8220

8220:                                             ; preds = %8216, %8212
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %907) #11
  br label %8221

8221:                                             ; preds = %8220, %8208
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %908) #11
  br label %8222

8222:                                             ; preds = %8221, %8204
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %914) #11
  br label %8223

8223:                                             ; preds = %8222, %8200
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %915) #11
  br label %8224

8224:                                             ; preds = %8223, %8196
  call void @llvm.lifetime.end.p0(i64 16, ptr %914) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %909) #11
  br label %8225

8225:                                             ; preds = %8224, %8192
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %910) #11
  br label %8226

8226:                                             ; preds = %8225, %8188
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %911) #11
  br label %8227

8227:                                             ; preds = %8226, %8184
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %913) #11
  br label %8228

8228:                                             ; preds = %8227, %8180
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %912) #11
  br label %8229

8229:                                             ; preds = %8228, %8176
  call void @llvm.lifetime.end.p0(i64 16, ptr %911) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %910) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %909) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %908) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %907) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %906) #11
  br label %8391

8230:                                             ; preds = %8107
  %8231 = landingpad { ptr, i32 }
          cleanup
  %8232 = extractvalue { ptr, i32 } %8231, 0
  store ptr %8232, ptr %11, align 8
  %8233 = extractvalue { ptr, i32 } %8231, 1
  store i32 %8233, ptr %12, align 4
  br label %8389

8234:                                             ; preds = %8110
  %8235 = landingpad { ptr, i32 }
          cleanup
  %8236 = extractvalue { ptr, i32 } %8235, 0
  store ptr %8236, ptr %11, align 8
  %8237 = extractvalue { ptr, i32 } %8235, 1
  store i32 %8237, ptr %12, align 4
  br label %8388

8238:                                             ; preds = %8113
  %8239 = landingpad { ptr, i32 }
          cleanup
  %8240 = extractvalue { ptr, i32 } %8239, 0
  store ptr %8240, ptr %11, align 8
  %8241 = extractvalue { ptr, i32 } %8239, 1
  store i32 %8241, ptr %12, align 4
  br label %8387

8242:                                             ; preds = %8117
  call void @llvm.lifetime.start.p0(i64 48, ptr %919) #11
  %8243 = load ptr, ptr %917, align 8, !tbaa !5
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %919, ptr noundef nonnull align 8 dereferenceable(48) %8243)
          to label %8244 unwind label %8284

8244:                                             ; preds = %8242
  call void @llvm.lifetime.start.p0(i64 32, ptr %920) #11
  %8245 = getelementptr inbounds %"struct.std::pair.109", ptr %919, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %920, ptr noundef nonnull align 8 dereferenceable(32) %8245)
          to label %8246 unwind label %8288

8246:                                             ; preds = %8244
  %8247 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %8248 unwind label %8292

8248:                                             ; preds = %8246
  call void @llvm.lifetime.start.p0(i64 16, ptr %921) #11
  %8249 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %922) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %922)
          to label %8250 unwind label %8296

8250:                                             ; preds = %8248
  call void @llvm.lifetime.start.p0(i64 16, ptr %923) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %923)
          to label %8251 unwind label %8300

8251:                                             ; preds = %8250
  call void @llvm.lifetime.start.p0(i64 20, ptr %924) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %925) #11
  %8252 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %926) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %927)
          to label %8253 unwind label %8304

8253:                                             ; preds = %8251
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %928)
          to label %8254 unwind label %8308

8254:                                             ; preds = %8253
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %926, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %927, ptr noundef %928)
          to label %8255 unwind label %8312

8255:                                             ; preds = %8254
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %925, ptr noundef nonnull align 8 dereferenceable(264) %8252, ptr noundef nonnull align 8 dereferenceable(16) %926, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %8256 unwind label %8316

8256:                                             ; preds = %8255
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %924, ptr noundef nonnull align 8 dereferenceable(16) %925)
          to label %8257 unwind label %8320

8257:                                             ; preds = %8256
  call void @llvm.lifetime.start.p0(i64 16, ptr %929) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %931) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %932) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %934) #11
  store ptr %934, ptr %935, align 8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %934, ptr noundef nonnull align 8 dereferenceable(32) %920)
          to label %8258 unwind label %8324

8258:                                             ; preds = %8257
  %8259 = getelementptr inbounds %"class.std::initializer_list", ptr %933, i32 0, i32 0
  store ptr %934, ptr %8259, align 8, !tbaa !11
  %8260 = getelementptr inbounds %"class.std::initializer_list", ptr %933, i32 0, i32 1
  store i64 1, ptr %8260, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %936) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %936) #11
  %8261 = getelementptr inbounds { ptr, i64 }, ptr %933, i32 0, i32 0
  %8262 = load ptr, ptr %8261, align 8
  %8263 = getelementptr inbounds { ptr, i64 }, ptr %933, i32 0, i32 1
  %8264 = load i64, ptr %8263, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %932, ptr %8262, i64 %8264, ptr noundef nonnull align 1 dereferenceable(1) %936)
          to label %8265 unwind label %8335

8265:                                             ; preds = %8258
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %931, ptr noundef nonnull align 8 dereferenceable(24) %932)
          to label %8266 unwind label %8339

8266:                                             ; preds = %8265
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %930, ptr noundef nonnull align 8 dereferenceable(16) %931)
          to label %8267 unwind label %8343

8267:                                             ; preds = %8266
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %937)
          to label %8268 unwind label %8347

8268:                                             ; preds = %8267
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %929, i32 noundef 8, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %930, ptr noundef %937)
          to label %8269 unwind label %8351

8269:                                             ; preds = %8268
  %8270 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %331, ptr noundef nonnull align 8 dereferenceable(32) %920)
          to label %8271 unwind label %8355

8271:                                             ; preds = %8269
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %921, ptr noundef nonnull align 8 dereferenceable(264) %8249, ptr noundef nonnull align 8 dereferenceable(16) %922, ptr noundef nonnull align 8 dereferenceable(16) %923, ptr noundef nonnull align 4 dereferenceable(20) %924, ptr noundef nonnull align 8 dereferenceable(16) %929, ptr noundef nonnull align 8 dereferenceable(16) %8270)
          to label %8272 unwind label %8355

8272:                                             ; preds = %8271
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8247, ptr noundef nonnull align 8 dereferenceable(16) %921)
          to label %8273 unwind label %8359

8273:                                             ; preds = %8272
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %921) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %929) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %937) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %930) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %931) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %932) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %936) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %936) #11
  %8274 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %934, i32 0, i32 0
  %8275 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8274, i64 1
  br label %8276

8276:                                             ; preds = %8276, %8273
  %8277 = phi ptr [ %8275, %8273 ], [ %8278, %8276 ]
  %8278 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8277, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8278) #11
  %8279 = icmp eq ptr %8278, %8274
  br i1 %8279, label %8280, label %8276

8280:                                             ; preds = %8276
  call void @llvm.lifetime.end.p0(i64 32, ptr %934) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %932) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %931) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %929) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %924) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %925) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %926) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %928) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %927) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %926) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %925) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %924) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %923) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %923) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %922) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %922) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %921) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %920) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %920) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %919) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %919) #11
  br label %8281

8281:                                             ; preds = %8280
  %8282 = load ptr, ptr %917, align 8, !tbaa !5
  %8283 = getelementptr inbounds %"struct.std::pair.109", ptr %8282, i32 1
  store ptr %8283, ptr %917, align 8, !tbaa !5
  br label %8117

8284:                                             ; preds = %8242
  %8285 = landingpad { ptr, i32 }
          cleanup
  %8286 = extractvalue { ptr, i32 } %8285, 0
  store ptr %8286, ptr %11, align 8
  %8287 = extractvalue { ptr, i32 } %8285, 1
  store i32 %8287, ptr %12, align 4
  br label %8386

8288:                                             ; preds = %8244
  %8289 = landingpad { ptr, i32 }
          cleanup
  %8290 = extractvalue { ptr, i32 } %8289, 0
  store ptr %8290, ptr %11, align 8
  %8291 = extractvalue { ptr, i32 } %8289, 1
  store i32 %8291, ptr %12, align 4
  br label %8385

8292:                                             ; preds = %8246
  %8293 = landingpad { ptr, i32 }
          cleanup
  %8294 = extractvalue { ptr, i32 } %8293, 0
  store ptr %8294, ptr %11, align 8
  %8295 = extractvalue { ptr, i32 } %8293, 1
  store i32 %8295, ptr %12, align 4
  br label %8384

8296:                                             ; preds = %8248
  %8297 = landingpad { ptr, i32 }
          cleanup
  %8298 = extractvalue { ptr, i32 } %8297, 0
  store ptr %8298, ptr %11, align 8
  %8299 = extractvalue { ptr, i32 } %8297, 1
  store i32 %8299, ptr %12, align 4
  br label %8383

8300:                                             ; preds = %8250
  %8301 = landingpad { ptr, i32 }
          cleanup
  %8302 = extractvalue { ptr, i32 } %8301, 0
  store ptr %8302, ptr %11, align 8
  %8303 = extractvalue { ptr, i32 } %8301, 1
  store i32 %8303, ptr %12, align 4
  br label %8382

8304:                                             ; preds = %8251
  %8305 = landingpad { ptr, i32 }
          cleanup
  %8306 = extractvalue { ptr, i32 } %8305, 0
  store ptr %8306, ptr %11, align 8
  %8307 = extractvalue { ptr, i32 } %8305, 1
  store i32 %8307, ptr %12, align 4
  br label %8381

8308:                                             ; preds = %8253
  %8309 = landingpad { ptr, i32 }
          cleanup
  %8310 = extractvalue { ptr, i32 } %8309, 0
  store ptr %8310, ptr %11, align 8
  %8311 = extractvalue { ptr, i32 } %8309, 1
  store i32 %8311, ptr %12, align 4
  br label %8380

8312:                                             ; preds = %8254
  %8313 = landingpad { ptr, i32 }
          cleanup
  %8314 = extractvalue { ptr, i32 } %8313, 0
  store ptr %8314, ptr %11, align 8
  %8315 = extractvalue { ptr, i32 } %8313, 1
  store i32 %8315, ptr %12, align 4
  br label %8379

8316:                                             ; preds = %8255
  %8317 = landingpad { ptr, i32 }
          cleanup
  %8318 = extractvalue { ptr, i32 } %8317, 0
  store ptr %8318, ptr %11, align 8
  %8319 = extractvalue { ptr, i32 } %8317, 1
  store i32 %8319, ptr %12, align 4
  br label %8378

8320:                                             ; preds = %8256
  %8321 = landingpad { ptr, i32 }
          cleanup
  %8322 = extractvalue { ptr, i32 } %8321, 0
  store ptr %8322, ptr %11, align 8
  %8323 = extractvalue { ptr, i32 } %8321, 1
  store i32 %8323, ptr %12, align 4
  br label %8377

8324:                                             ; preds = %8257
  %8325 = landingpad { ptr, i32 }
          cleanup
  %8326 = extractvalue { ptr, i32 } %8325, 0
  store ptr %8326, ptr %11, align 8
  %8327 = extractvalue { ptr, i32 } %8325, 1
  store i32 %8327, ptr %12, align 4
  %8328 = load ptr, ptr %935, align 8
  %8329 = icmp eq ptr %934, %8328
  br i1 %8329, label %8334, label %8330

8330:                                             ; preds = %8330, %8324
  %8331 = phi ptr [ %8328, %8324 ], [ %8332, %8330 ]
  %8332 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8331, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8332) #11
  %8333 = icmp eq ptr %8332, %934
  br i1 %8333, label %8334, label %8330

8334:                                             ; preds = %8330, %8324
  br label %8376

8335:                                             ; preds = %8258
  %8336 = landingpad { ptr, i32 }
          cleanup
  %8337 = extractvalue { ptr, i32 } %8336, 0
  store ptr %8337, ptr %11, align 8
  %8338 = extractvalue { ptr, i32 } %8336, 1
  store i32 %8338, ptr %12, align 4
  br label %8368

8339:                                             ; preds = %8265
  %8340 = landingpad { ptr, i32 }
          cleanup
  %8341 = extractvalue { ptr, i32 } %8340, 0
  store ptr %8341, ptr %11, align 8
  %8342 = extractvalue { ptr, i32 } %8340, 1
  store i32 %8342, ptr %12, align 4
  br label %8367

8343:                                             ; preds = %8266
  %8344 = landingpad { ptr, i32 }
          cleanup
  %8345 = extractvalue { ptr, i32 } %8344, 0
  store ptr %8345, ptr %11, align 8
  %8346 = extractvalue { ptr, i32 } %8344, 1
  store i32 %8346, ptr %12, align 4
  br label %8366

8347:                                             ; preds = %8267
  %8348 = landingpad { ptr, i32 }
          cleanup
  %8349 = extractvalue { ptr, i32 } %8348, 0
  store ptr %8349, ptr %11, align 8
  %8350 = extractvalue { ptr, i32 } %8348, 1
  store i32 %8350, ptr %12, align 4
  br label %8365

8351:                                             ; preds = %8268
  %8352 = landingpad { ptr, i32 }
          cleanup
  %8353 = extractvalue { ptr, i32 } %8352, 0
  store ptr %8353, ptr %11, align 8
  %8354 = extractvalue { ptr, i32 } %8352, 1
  store i32 %8354, ptr %12, align 4
  br label %8364

8355:                                             ; preds = %8271, %8269
  %8356 = landingpad { ptr, i32 }
          cleanup
  %8357 = extractvalue { ptr, i32 } %8356, 0
  store ptr %8357, ptr %11, align 8
  %8358 = extractvalue { ptr, i32 } %8356, 1
  store i32 %8358, ptr %12, align 4
  br label %8363

8359:                                             ; preds = %8272
  %8360 = landingpad { ptr, i32 }
          cleanup
  %8361 = extractvalue { ptr, i32 } %8360, 0
  store ptr %8361, ptr %11, align 8
  %8362 = extractvalue { ptr, i32 } %8360, 1
  store i32 %8362, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %921) #11
  br label %8363

8363:                                             ; preds = %8359, %8355
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %929) #11
  br label %8364

8364:                                             ; preds = %8363, %8351
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %937) #11
  br label %8365

8365:                                             ; preds = %8364, %8347
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %930) #11
  br label %8366

8366:                                             ; preds = %8365, %8343
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %931) #11
  br label %8367

8367:                                             ; preds = %8366, %8339
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %932) #11
  br label %8368

8368:                                             ; preds = %8367, %8335
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %936) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %936) #11
  %8369 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %934, i32 0, i32 0
  %8370 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8369, i64 1
  br label %8371

8371:                                             ; preds = %8371, %8368
  %8372 = phi ptr [ %8370, %8368 ], [ %8373, %8371 ]
  %8373 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8372, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8373) #11
  %8374 = icmp eq ptr %8373, %8369
  br i1 %8374, label %8375, label %8371

8375:                                             ; preds = %8371
  br label %8376

8376:                                             ; preds = %8375, %8334
  call void @llvm.lifetime.end.p0(i64 32, ptr %934) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %932) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %931) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %929) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %924) #11
  br label %8377

8377:                                             ; preds = %8376, %8320
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %925) #11
  br label %8378

8378:                                             ; preds = %8377, %8316
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %926) #11
  br label %8379

8379:                                             ; preds = %8378, %8312
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %928) #11
  br label %8380

8380:                                             ; preds = %8379, %8308
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %927) #11
  br label %8381

8381:                                             ; preds = %8380, %8304
  call void @llvm.lifetime.end.p0(i64 16, ptr %926) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %925) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %924) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %923) #11
  br label %8382

8382:                                             ; preds = %8381, %8300
  call void @llvm.lifetime.end.p0(i64 16, ptr %923) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %922) #11
  br label %8383

8383:                                             ; preds = %8382, %8296
  call void @llvm.lifetime.end.p0(i64 16, ptr %922) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %921) #11
  br label %8384

8384:                                             ; preds = %8383, %8292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %920) #11
  br label %8385

8385:                                             ; preds = %8384, %8288
  call void @llvm.lifetime.end.p0(i64 32, ptr %920) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %919) #11
  br label %8386

8386:                                             ; preds = %8385, %8284
  call void @llvm.lifetime.end.p0(i64 48, ptr %919) #11
  br label %8387

8387:                                             ; preds = %8386, %8238
  call void @llvm.lifetime.end.p0(i64 8, ptr %918) #11
  br label %8388

8388:                                             ; preds = %8387, %8234
  call void @llvm.lifetime.end.p0(i64 8, ptr %917) #11
  br label %8389

8389:                                             ; preds = %8388, %8230
  call void @llvm.lifetime.end.p0(i64 8, ptr %916) #11
  br label %8391

8390:                                             ; preds = %8121
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %894) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %894) #11
  br label %8393

8391:                                             ; preds = %8389, %8229, %8175, %8068, %8056
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %894) #11
  br label %8392

8392:                                             ; preds = %8391, %8052
  call void @llvm.lifetime.end.p0(i64 16, ptr %894) #11
  br label %11059

8393:                                             ; preds = %8390, %7977
  %8394 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %8395 = trunc i8 %8394 to i1
  br i1 %8395, label %8396, label %9042

8396:                                             ; preds = %8393
  call void @llvm.lifetime.start.p0(i64 8, ptr %938) #11
  %8397 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %8398 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %8397)
          to label %8399 unwind label %8422

8399:                                             ; preds = %8396
  %8400 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %8398, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %8401 unwind label %8422

8401:                                             ; preds = %8399
  %8402 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %8400)
          to label %8403 unwind label %8422

8403:                                             ; preds = %8401
  store ptr %8402, ptr %938, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %939) #11
  %8404 = load ptr, ptr %938, align 8, !tbaa !5
  %8405 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %8404)
          to label %8406 unwind label %8426

8406:                                             ; preds = %8403
  %8407 = getelementptr inbounds { ptr, i64 }, ptr %939, i32 0, i32 0
  %8408 = extractvalue { ptr, i64 } %8405, 0
  store ptr %8408, ptr %8407, align 8
  %8409 = getelementptr inbounds { ptr, i64 }, ptr %939, i32 0, i32 1
  %8410 = extractvalue { ptr, i64 } %8405, 1
  store i64 %8410, ptr %8409, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %940) #11
  %8411 = load ptr, ptr %938, align 8, !tbaa !5
  %8412 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %8411)
          to label %8413 unwind label %8430

8413:                                             ; preds = %8406
  %8414 = getelementptr inbounds { ptr, i64 }, ptr %940, i32 0, i32 0
  %8415 = extractvalue { ptr, i64 } %8412, 0
  store ptr %8415, ptr %8414, align 8
  %8416 = getelementptr inbounds { ptr, i64 }, ptr %940, i32 0, i32 1
  %8417 = extractvalue { ptr, i64 } %8412, 1
  store i64 %8417, ptr %8416, align 8
  br label %8418

8418:                                             ; preds = %8477, %8413
  %8419 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %939, ptr noundef nonnull align 8 dereferenceable(16) %940)
          to label %8420 unwind label %8430

8420:                                             ; preds = %8418
  br i1 %8419, label %8434, label %8421

8421:                                             ; preds = %8420
  store i32 63, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %940) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %939) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %938) #11
  br label %8569

8422:                                             ; preds = %8401, %8399, %8396
  %8423 = landingpad { ptr, i32 }
          cleanup
  %8424 = extractvalue { ptr, i32 } %8423, 0
  store ptr %8424, ptr %11, align 8
  %8425 = extractvalue { ptr, i32 } %8423, 1
  store i32 %8425, ptr %12, align 4
  br label %8568

8426:                                             ; preds = %8403
  %8427 = landingpad { ptr, i32 }
          cleanup
  %8428 = extractvalue { ptr, i32 } %8427, 0
  store ptr %8428, ptr %11, align 8
  %8429 = extractvalue { ptr, i32 } %8427, 1
  store i32 %8429, ptr %12, align 4
  br label %8567

8430:                                             ; preds = %8475, %8418, %8406
  %8431 = landingpad { ptr, i32 }
          cleanup
  %8432 = extractvalue { ptr, i32 } %8431, 0
  store ptr %8432, ptr %11, align 8
  %8433 = extractvalue { ptr, i32 } %8431, 1
  store i32 %8433, ptr %12, align 4
  br label %8566

8434:                                             ; preds = %8420
  call void @llvm.lifetime.start.p0(i64 8, ptr %941) #11
  %8435 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %939)
          to label %8436 unwind label %8478

8436:                                             ; preds = %8434
  store ptr %8435, ptr %941, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %942) #11
  %8437 = load ptr, ptr %941, align 8, !tbaa !5
  %8438 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %8437) #11
  store ptr %8438, ptr %942, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %943) #11
  %8439 = load ptr, ptr %941, align 8, !tbaa !5
  %8440 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %8439) #11
  store ptr %8440, ptr %943, align 8, !tbaa !5
  %8441 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %8442 unwind label %8482

8442:                                             ; preds = %8436
  call void @llvm.lifetime.start.p0(i64 16, ptr %944) #11
  %8443 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %945) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %945)
          to label %8444 unwind label %8486

8444:                                             ; preds = %8442
  call void @llvm.lifetime.start.p0(i64 16, ptr %946) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %946)
          to label %8445 unwind label %8490

8445:                                             ; preds = %8444
  call void @llvm.lifetime.start.p0(i64 20, ptr %947) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %948) #11
  %8446 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %949) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %950) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %950) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %949, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %950)
          to label %8447 unwind label %8494

8447:                                             ; preds = %8445
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %948, ptr noundef nonnull align 8 dereferenceable(264) %8446, ptr noundef nonnull align 8 dereferenceable(32) %949)
          to label %8448 unwind label %8498

8448:                                             ; preds = %8447
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %947, ptr noundef nonnull align 8 dereferenceable(16) %948)
          to label %8449 unwind label %8502

8449:                                             ; preds = %8448
  call void @llvm.lifetime.start.p0(i64 16, ptr %951) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %953) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %954) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %956) #11
  store ptr %956, ptr %957, align 8
  %8450 = load ptr, ptr %942, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %956, ptr noundef nonnull align 8 dereferenceable(32) %8450)
          to label %8451 unwind label %8506

8451:                                             ; preds = %8449
  %8452 = getelementptr inbounds %"class.std::initializer_list", ptr %955, i32 0, i32 0
  store ptr %956, ptr %8452, align 8, !tbaa !11
  %8453 = getelementptr inbounds %"class.std::initializer_list", ptr %955, i32 0, i32 1
  store i64 1, ptr %8453, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %958) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %958) #11
  %8454 = getelementptr inbounds { ptr, i64 }, ptr %955, i32 0, i32 0
  %8455 = load ptr, ptr %8454, align 8
  %8456 = getelementptr inbounds { ptr, i64 }, ptr %955, i32 0, i32 1
  %8457 = load i64, ptr %8456, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %954, ptr %8455, i64 %8457, ptr noundef nonnull align 1 dereferenceable(1) %958)
          to label %8458 unwind label %8517

8458:                                             ; preds = %8451
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %953, ptr noundef nonnull align 8 dereferenceable(24) %954)
          to label %8459 unwind label %8521

8459:                                             ; preds = %8458
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %952, ptr noundef nonnull align 8 dereferenceable(16) %953)
          to label %8460 unwind label %8525

8460:                                             ; preds = %8459
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %959)
          to label %8461 unwind label %8529

8461:                                             ; preds = %8460
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %951, i32 noundef 10, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %952, ptr noundef %959)
          to label %8462 unwind label %8533

8462:                                             ; preds = %8461
  %8463 = load ptr, ptr %942, align 8, !tbaa !5
  %8464 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %357, ptr noundef nonnull align 8 dereferenceable(32) %8463)
          to label %8465 unwind label %8537

8465:                                             ; preds = %8462
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %944, ptr noundef nonnull align 8 dereferenceable(264) %8443, ptr noundef nonnull align 8 dereferenceable(16) %945, ptr noundef nonnull align 8 dereferenceable(16) %946, ptr noundef nonnull align 4 dereferenceable(20) %947, ptr noundef nonnull align 8 dereferenceable(16) %951, ptr noundef nonnull align 8 dereferenceable(16) %8464)
          to label %8466 unwind label %8537

8466:                                             ; preds = %8465
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8441, ptr noundef nonnull align 8 dereferenceable(16) %944)
          to label %8467 unwind label %8541

8467:                                             ; preds = %8466
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %944) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %951) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %959) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %952) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %953) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %954) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %958) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %958) #11
  %8468 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %956, i32 0, i32 0
  %8469 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8468, i64 1
  br label %8470

8470:                                             ; preds = %8470, %8467
  %8471 = phi ptr [ %8469, %8467 ], [ %8472, %8470 ]
  %8472 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8471, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8472) #11
  %8473 = icmp eq ptr %8472, %8468
  br i1 %8473, label %8474, label %8470

8474:                                             ; preds = %8470
  call void @llvm.lifetime.end.p0(i64 32, ptr %956) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %954) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %953) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %951) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %947) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %948) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %949) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %950) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %950) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %949) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %948) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %947) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %946) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %946) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %945) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %945) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %944) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %943) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %942) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %941) #11
  br label %8475

8475:                                             ; preds = %8474
  %8476 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %939)
          to label %8477 unwind label %8430

8477:                                             ; preds = %8475
  br label %8418

8478:                                             ; preds = %8434
  %8479 = landingpad { ptr, i32 }
          cleanup
  %8480 = extractvalue { ptr, i32 } %8479, 0
  store ptr %8480, ptr %11, align 8
  %8481 = extractvalue { ptr, i32 } %8479, 1
  store i32 %8481, ptr %12, align 4
  br label %8565

8482:                                             ; preds = %8436
  %8483 = landingpad { ptr, i32 }
          cleanup
  %8484 = extractvalue { ptr, i32 } %8483, 0
  store ptr %8484, ptr %11, align 8
  %8485 = extractvalue { ptr, i32 } %8483, 1
  store i32 %8485, ptr %12, align 4
  br label %8564

8486:                                             ; preds = %8442
  %8487 = landingpad { ptr, i32 }
          cleanup
  %8488 = extractvalue { ptr, i32 } %8487, 0
  store ptr %8488, ptr %11, align 8
  %8489 = extractvalue { ptr, i32 } %8487, 1
  store i32 %8489, ptr %12, align 4
  br label %8563

8490:                                             ; preds = %8444
  %8491 = landingpad { ptr, i32 }
          cleanup
  %8492 = extractvalue { ptr, i32 } %8491, 0
  store ptr %8492, ptr %11, align 8
  %8493 = extractvalue { ptr, i32 } %8491, 1
  store i32 %8493, ptr %12, align 4
  br label %8562

8494:                                             ; preds = %8445
  %8495 = landingpad { ptr, i32 }
          cleanup
  %8496 = extractvalue { ptr, i32 } %8495, 0
  store ptr %8496, ptr %11, align 8
  %8497 = extractvalue { ptr, i32 } %8495, 1
  store i32 %8497, ptr %12, align 4
  br label %8561

8498:                                             ; preds = %8447
  %8499 = landingpad { ptr, i32 }
          cleanup
  %8500 = extractvalue { ptr, i32 } %8499, 0
  store ptr %8500, ptr %11, align 8
  %8501 = extractvalue { ptr, i32 } %8499, 1
  store i32 %8501, ptr %12, align 4
  br label %8560

8502:                                             ; preds = %8448
  %8503 = landingpad { ptr, i32 }
          cleanup
  %8504 = extractvalue { ptr, i32 } %8503, 0
  store ptr %8504, ptr %11, align 8
  %8505 = extractvalue { ptr, i32 } %8503, 1
  store i32 %8505, ptr %12, align 4
  br label %8559

8506:                                             ; preds = %8449
  %8507 = landingpad { ptr, i32 }
          cleanup
  %8508 = extractvalue { ptr, i32 } %8507, 0
  store ptr %8508, ptr %11, align 8
  %8509 = extractvalue { ptr, i32 } %8507, 1
  store i32 %8509, ptr %12, align 4
  %8510 = load ptr, ptr %957, align 8
  %8511 = icmp eq ptr %956, %8510
  br i1 %8511, label %8516, label %8512

8512:                                             ; preds = %8512, %8506
  %8513 = phi ptr [ %8510, %8506 ], [ %8514, %8512 ]
  %8514 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8513, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8514) #11
  %8515 = icmp eq ptr %8514, %956
  br i1 %8515, label %8516, label %8512

8516:                                             ; preds = %8512, %8506
  br label %8558

8517:                                             ; preds = %8451
  %8518 = landingpad { ptr, i32 }
          cleanup
  %8519 = extractvalue { ptr, i32 } %8518, 0
  store ptr %8519, ptr %11, align 8
  %8520 = extractvalue { ptr, i32 } %8518, 1
  store i32 %8520, ptr %12, align 4
  br label %8550

8521:                                             ; preds = %8458
  %8522 = landingpad { ptr, i32 }
          cleanup
  %8523 = extractvalue { ptr, i32 } %8522, 0
  store ptr %8523, ptr %11, align 8
  %8524 = extractvalue { ptr, i32 } %8522, 1
  store i32 %8524, ptr %12, align 4
  br label %8549

8525:                                             ; preds = %8459
  %8526 = landingpad { ptr, i32 }
          cleanup
  %8527 = extractvalue { ptr, i32 } %8526, 0
  store ptr %8527, ptr %11, align 8
  %8528 = extractvalue { ptr, i32 } %8526, 1
  store i32 %8528, ptr %12, align 4
  br label %8548

8529:                                             ; preds = %8460
  %8530 = landingpad { ptr, i32 }
          cleanup
  %8531 = extractvalue { ptr, i32 } %8530, 0
  store ptr %8531, ptr %11, align 8
  %8532 = extractvalue { ptr, i32 } %8530, 1
  store i32 %8532, ptr %12, align 4
  br label %8547

8533:                                             ; preds = %8461
  %8534 = landingpad { ptr, i32 }
          cleanup
  %8535 = extractvalue { ptr, i32 } %8534, 0
  store ptr %8535, ptr %11, align 8
  %8536 = extractvalue { ptr, i32 } %8534, 1
  store i32 %8536, ptr %12, align 4
  br label %8546

8537:                                             ; preds = %8465, %8462
  %8538 = landingpad { ptr, i32 }
          cleanup
  %8539 = extractvalue { ptr, i32 } %8538, 0
  store ptr %8539, ptr %11, align 8
  %8540 = extractvalue { ptr, i32 } %8538, 1
  store i32 %8540, ptr %12, align 4
  br label %8545

8541:                                             ; preds = %8466
  %8542 = landingpad { ptr, i32 }
          cleanup
  %8543 = extractvalue { ptr, i32 } %8542, 0
  store ptr %8543, ptr %11, align 8
  %8544 = extractvalue { ptr, i32 } %8542, 1
  store i32 %8544, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %944) #11
  br label %8545

8545:                                             ; preds = %8541, %8537
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %951) #11
  br label %8546

8546:                                             ; preds = %8545, %8533
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %959) #11
  br label %8547

8547:                                             ; preds = %8546, %8529
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %952) #11
  br label %8548

8548:                                             ; preds = %8547, %8525
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %953) #11
  br label %8549

8549:                                             ; preds = %8548, %8521
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %954) #11
  br label %8550

8550:                                             ; preds = %8549, %8517
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %958) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %958) #11
  %8551 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %956, i32 0, i32 0
  %8552 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8551, i64 1
  br label %8553

8553:                                             ; preds = %8553, %8550
  %8554 = phi ptr [ %8552, %8550 ], [ %8555, %8553 ]
  %8555 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8554, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8555) #11
  %8556 = icmp eq ptr %8555, %8551
  br i1 %8556, label %8557, label %8553

8557:                                             ; preds = %8553
  br label %8558

8558:                                             ; preds = %8557, %8516
  call void @llvm.lifetime.end.p0(i64 32, ptr %956) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %954) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %953) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %951) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %947) #11
  br label %8559

8559:                                             ; preds = %8558, %8502
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %948) #11
  br label %8560

8560:                                             ; preds = %8559, %8498
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %949) #11
  br label %8561

8561:                                             ; preds = %8560, %8494
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %950) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %950) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %949) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %948) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %947) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %946) #11
  br label %8562

8562:                                             ; preds = %8561, %8490
  call void @llvm.lifetime.end.p0(i64 16, ptr %946) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %945) #11
  br label %8563

8563:                                             ; preds = %8562, %8486
  call void @llvm.lifetime.end.p0(i64 16, ptr %945) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %944) #11
  br label %8564

8564:                                             ; preds = %8563, %8482
  call void @llvm.lifetime.end.p0(i64 8, ptr %943) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %942) #11
  br label %8565

8565:                                             ; preds = %8564, %8478
  call void @llvm.lifetime.end.p0(i64 8, ptr %941) #11
  br label %8566

8566:                                             ; preds = %8565, %8430
  call void @llvm.lifetime.end.p0(i64 16, ptr %940) #11
  br label %8567

8567:                                             ; preds = %8566, %8426
  call void @llvm.lifetime.end.p0(i64 16, ptr %939) #11
  br label %8568

8568:                                             ; preds = %8567, %8422
  call void @llvm.lifetime.end.p0(i64 8, ptr %938) #11
  br label %11059

8569:                                             ; preds = %8421
  call void @llvm.lifetime.start.p0(i64 8, ptr %960) #11
  %8570 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %8571 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %8570)
          to label %8572 unwind label %8595

8572:                                             ; preds = %8569
  %8573 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %8571, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %8574 unwind label %8595

8574:                                             ; preds = %8572
  %8575 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %8573)
          to label %8576 unwind label %8595

8576:                                             ; preds = %8574
  store ptr %8575, ptr %960, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %961) #11
  %8577 = load ptr, ptr %960, align 8, !tbaa !5
  %8578 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %8577)
          to label %8579 unwind label %8599

8579:                                             ; preds = %8576
  %8580 = getelementptr inbounds { ptr, i64 }, ptr %961, i32 0, i32 0
  %8581 = extractvalue { ptr, i64 } %8578, 0
  store ptr %8581, ptr %8580, align 8
  %8582 = getelementptr inbounds { ptr, i64 }, ptr %961, i32 0, i32 1
  %8583 = extractvalue { ptr, i64 } %8578, 1
  store i64 %8583, ptr %8582, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %962) #11
  %8584 = load ptr, ptr %960, align 8, !tbaa !5
  %8585 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %8584)
          to label %8586 unwind label %8603

8586:                                             ; preds = %8579
  %8587 = getelementptr inbounds { ptr, i64 }, ptr %962, i32 0, i32 0
  %8588 = extractvalue { ptr, i64 } %8585, 0
  store ptr %8588, ptr %8587, align 8
  %8589 = getelementptr inbounds { ptr, i64 }, ptr %962, i32 0, i32 1
  %8590 = extractvalue { ptr, i64 } %8585, 1
  store i64 %8590, ptr %8589, align 8
  br label %8591

8591:                                             ; preds = %8650, %8586
  %8592 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %961, ptr noundef nonnull align 8 dereferenceable(16) %962)
          to label %8593 unwind label %8603

8593:                                             ; preds = %8591
  br i1 %8592, label %8607, label %8594

8594:                                             ; preds = %8593
  store i32 65, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %962) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %961) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %960) #11
  br label %8741

8595:                                             ; preds = %8574, %8572, %8569
  %8596 = landingpad { ptr, i32 }
          cleanup
  %8597 = extractvalue { ptr, i32 } %8596, 0
  store ptr %8597, ptr %11, align 8
  %8598 = extractvalue { ptr, i32 } %8596, 1
  store i32 %8598, ptr %12, align 4
  br label %8740

8599:                                             ; preds = %8576
  %8600 = landingpad { ptr, i32 }
          cleanup
  %8601 = extractvalue { ptr, i32 } %8600, 0
  store ptr %8601, ptr %11, align 8
  %8602 = extractvalue { ptr, i32 } %8600, 1
  store i32 %8602, ptr %12, align 4
  br label %8739

8603:                                             ; preds = %8648, %8591, %8579
  %8604 = landingpad { ptr, i32 }
          cleanup
  %8605 = extractvalue { ptr, i32 } %8604, 0
  store ptr %8605, ptr %11, align 8
  %8606 = extractvalue { ptr, i32 } %8604, 1
  store i32 %8606, ptr %12, align 4
  br label %8738

8607:                                             ; preds = %8593
  call void @llvm.lifetime.start.p0(i64 8, ptr %963) #11
  %8608 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %961)
          to label %8609 unwind label %8651

8609:                                             ; preds = %8607
  store ptr %8608, ptr %963, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %964) #11
  %8610 = load ptr, ptr %963, align 8, !tbaa !5
  %8611 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %8610) #11
  store ptr %8611, ptr %964, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %965) #11
  %8612 = load ptr, ptr %963, align 8, !tbaa !5
  %8613 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %8612) #11
  store ptr %8613, ptr %965, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %966) #11
  %8614 = load ptr, ptr %965, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %967, ptr noundef nonnull align 8 dereferenceable(16) %8614)
          to label %8615 unwind label %8655

8615:                                             ; preds = %8609
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %966, ptr noundef %967, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %8616 unwind label %8659

8616:                                             ; preds = %8615
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %967) #11
  %8617 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %8618 unwind label %8663

8618:                                             ; preds = %8616
  call void @llvm.lifetime.start.p0(i64 16, ptr %968) #11
  %8619 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %969) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %969)
          to label %8620 unwind label %8667

8620:                                             ; preds = %8618
  call void @llvm.lifetime.start.p0(i64 16, ptr %970) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %970)
          to label %8621 unwind label %8671

8621:                                             ; preds = %8620
  call void @llvm.lifetime.start.p0(i64 20, ptr %971) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %971, ptr noundef nonnull align 8 dereferenceable(16) %966)
          to label %8622 unwind label %8675

8622:                                             ; preds = %8621
  call void @llvm.lifetime.start.p0(i64 16, ptr %972) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %974) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %975) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %977) #11
  store ptr %977, ptr %978, align 8
  %8623 = load ptr, ptr %964, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %977, ptr noundef nonnull align 8 dereferenceable(32) %8623)
          to label %8624 unwind label %8679

8624:                                             ; preds = %8622
  %8625 = getelementptr inbounds %"class.std::initializer_list", ptr %976, i32 0, i32 0
  store ptr %977, ptr %8625, align 8, !tbaa !11
  %8626 = getelementptr inbounds %"class.std::initializer_list", ptr %976, i32 0, i32 1
  store i64 1, ptr %8626, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %979) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %979) #11
  %8627 = getelementptr inbounds { ptr, i64 }, ptr %976, i32 0, i32 0
  %8628 = load ptr, ptr %8627, align 8
  %8629 = getelementptr inbounds { ptr, i64 }, ptr %976, i32 0, i32 1
  %8630 = load i64, ptr %8629, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %975, ptr %8628, i64 %8630, ptr noundef nonnull align 1 dereferenceable(1) %979)
          to label %8631 unwind label %8690

8631:                                             ; preds = %8624
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %974, ptr noundef nonnull align 8 dereferenceable(24) %975)
          to label %8632 unwind label %8694

8632:                                             ; preds = %8631
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %973, ptr noundef nonnull align 8 dereferenceable(16) %974)
          to label %8633 unwind label %8698

8633:                                             ; preds = %8632
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %980)
          to label %8634 unwind label %8702

8634:                                             ; preds = %8633
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %972, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %973, ptr noundef %980)
          to label %8635 unwind label %8706

8635:                                             ; preds = %8634
  %8636 = load ptr, ptr %964, align 8, !tbaa !5
  %8637 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %376, ptr noundef nonnull align 8 dereferenceable(32) %8636)
          to label %8638 unwind label %8710

8638:                                             ; preds = %8635
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %968, ptr noundef nonnull align 8 dereferenceable(264) %8619, ptr noundef nonnull align 8 dereferenceable(16) %969, ptr noundef nonnull align 8 dereferenceable(16) %970, ptr noundef nonnull align 4 dereferenceable(20) %971, ptr noundef nonnull align 8 dereferenceable(16) %972, ptr noundef nonnull align 8 dereferenceable(16) %8637)
          to label %8639 unwind label %8710

8639:                                             ; preds = %8638
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8617, ptr noundef nonnull align 8 dereferenceable(16) %968)
          to label %8640 unwind label %8714

8640:                                             ; preds = %8639
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %968) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %972) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %980) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %973) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %974) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %975) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %979) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %979) #11
  %8641 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %977, i32 0, i32 0
  %8642 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8641, i64 1
  br label %8643

8643:                                             ; preds = %8643, %8640
  %8644 = phi ptr [ %8642, %8640 ], [ %8645, %8643 ]
  %8645 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8644, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8645) #11
  %8646 = icmp eq ptr %8645, %8641
  br i1 %8646, label %8647, label %8643

8647:                                             ; preds = %8643
  call void @llvm.lifetime.end.p0(i64 32, ptr %977) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %975) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %974) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %972) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %971) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %971) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %970) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %970) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %969) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %969) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %968) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %966) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %966) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %965) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %964) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %963) #11
  br label %8648

8648:                                             ; preds = %8647
  %8649 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %961)
          to label %8650 unwind label %8603

8650:                                             ; preds = %8648
  br label %8591

8651:                                             ; preds = %8607
  %8652 = landingpad { ptr, i32 }
          cleanup
  %8653 = extractvalue { ptr, i32 } %8652, 0
  store ptr %8653, ptr %11, align 8
  %8654 = extractvalue { ptr, i32 } %8652, 1
  store i32 %8654, ptr %12, align 4
  br label %8737

8655:                                             ; preds = %8609
  %8656 = landingpad { ptr, i32 }
          cleanup
  %8657 = extractvalue { ptr, i32 } %8656, 0
  store ptr %8657, ptr %11, align 8
  %8658 = extractvalue { ptr, i32 } %8656, 1
  store i32 %8658, ptr %12, align 4
  br label %8736

8659:                                             ; preds = %8615
  %8660 = landingpad { ptr, i32 }
          cleanup
  %8661 = extractvalue { ptr, i32 } %8660, 0
  store ptr %8661, ptr %11, align 8
  %8662 = extractvalue { ptr, i32 } %8660, 1
  store i32 %8662, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %967) #11
  br label %8736

8663:                                             ; preds = %8616
  %8664 = landingpad { ptr, i32 }
          cleanup
  %8665 = extractvalue { ptr, i32 } %8664, 0
  store ptr %8665, ptr %11, align 8
  %8666 = extractvalue { ptr, i32 } %8664, 1
  store i32 %8666, ptr %12, align 4
  br label %8735

8667:                                             ; preds = %8618
  %8668 = landingpad { ptr, i32 }
          cleanup
  %8669 = extractvalue { ptr, i32 } %8668, 0
  store ptr %8669, ptr %11, align 8
  %8670 = extractvalue { ptr, i32 } %8668, 1
  store i32 %8670, ptr %12, align 4
  br label %8734

8671:                                             ; preds = %8620
  %8672 = landingpad { ptr, i32 }
          cleanup
  %8673 = extractvalue { ptr, i32 } %8672, 0
  store ptr %8673, ptr %11, align 8
  %8674 = extractvalue { ptr, i32 } %8672, 1
  store i32 %8674, ptr %12, align 4
  br label %8733

8675:                                             ; preds = %8621
  %8676 = landingpad { ptr, i32 }
          cleanup
  %8677 = extractvalue { ptr, i32 } %8676, 0
  store ptr %8677, ptr %11, align 8
  %8678 = extractvalue { ptr, i32 } %8676, 1
  store i32 %8678, ptr %12, align 4
  br label %8732

8679:                                             ; preds = %8622
  %8680 = landingpad { ptr, i32 }
          cleanup
  %8681 = extractvalue { ptr, i32 } %8680, 0
  store ptr %8681, ptr %11, align 8
  %8682 = extractvalue { ptr, i32 } %8680, 1
  store i32 %8682, ptr %12, align 4
  %8683 = load ptr, ptr %978, align 8
  %8684 = icmp eq ptr %977, %8683
  br i1 %8684, label %8689, label %8685

8685:                                             ; preds = %8685, %8679
  %8686 = phi ptr [ %8683, %8679 ], [ %8687, %8685 ]
  %8687 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8686, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8687) #11
  %8688 = icmp eq ptr %8687, %977
  br i1 %8688, label %8689, label %8685

8689:                                             ; preds = %8685, %8679
  br label %8731

8690:                                             ; preds = %8624
  %8691 = landingpad { ptr, i32 }
          cleanup
  %8692 = extractvalue { ptr, i32 } %8691, 0
  store ptr %8692, ptr %11, align 8
  %8693 = extractvalue { ptr, i32 } %8691, 1
  store i32 %8693, ptr %12, align 4
  br label %8723

8694:                                             ; preds = %8631
  %8695 = landingpad { ptr, i32 }
          cleanup
  %8696 = extractvalue { ptr, i32 } %8695, 0
  store ptr %8696, ptr %11, align 8
  %8697 = extractvalue { ptr, i32 } %8695, 1
  store i32 %8697, ptr %12, align 4
  br label %8722

8698:                                             ; preds = %8632
  %8699 = landingpad { ptr, i32 }
          cleanup
  %8700 = extractvalue { ptr, i32 } %8699, 0
  store ptr %8700, ptr %11, align 8
  %8701 = extractvalue { ptr, i32 } %8699, 1
  store i32 %8701, ptr %12, align 4
  br label %8721

8702:                                             ; preds = %8633
  %8703 = landingpad { ptr, i32 }
          cleanup
  %8704 = extractvalue { ptr, i32 } %8703, 0
  store ptr %8704, ptr %11, align 8
  %8705 = extractvalue { ptr, i32 } %8703, 1
  store i32 %8705, ptr %12, align 4
  br label %8720

8706:                                             ; preds = %8634
  %8707 = landingpad { ptr, i32 }
          cleanup
  %8708 = extractvalue { ptr, i32 } %8707, 0
  store ptr %8708, ptr %11, align 8
  %8709 = extractvalue { ptr, i32 } %8707, 1
  store i32 %8709, ptr %12, align 4
  br label %8719

8710:                                             ; preds = %8638, %8635
  %8711 = landingpad { ptr, i32 }
          cleanup
  %8712 = extractvalue { ptr, i32 } %8711, 0
  store ptr %8712, ptr %11, align 8
  %8713 = extractvalue { ptr, i32 } %8711, 1
  store i32 %8713, ptr %12, align 4
  br label %8718

8714:                                             ; preds = %8639
  %8715 = landingpad { ptr, i32 }
          cleanup
  %8716 = extractvalue { ptr, i32 } %8715, 0
  store ptr %8716, ptr %11, align 8
  %8717 = extractvalue { ptr, i32 } %8715, 1
  store i32 %8717, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %968) #11
  br label %8718

8718:                                             ; preds = %8714, %8710
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %972) #11
  br label %8719

8719:                                             ; preds = %8718, %8706
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %980) #11
  br label %8720

8720:                                             ; preds = %8719, %8702
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %973) #11
  br label %8721

8721:                                             ; preds = %8720, %8698
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %974) #11
  br label %8722

8722:                                             ; preds = %8721, %8694
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %975) #11
  br label %8723

8723:                                             ; preds = %8722, %8690
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %979) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %979) #11
  %8724 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %977, i32 0, i32 0
  %8725 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8724, i64 1
  br label %8726

8726:                                             ; preds = %8726, %8723
  %8727 = phi ptr [ %8725, %8723 ], [ %8728, %8726 ]
  %8728 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8727, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8728) #11
  %8729 = icmp eq ptr %8728, %8724
  br i1 %8729, label %8730, label %8726

8730:                                             ; preds = %8726
  br label %8731

8731:                                             ; preds = %8730, %8689
  call void @llvm.lifetime.end.p0(i64 32, ptr %977) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %975) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %974) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %972) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %971) #11
  br label %8732

8732:                                             ; preds = %8731, %8675
  call void @llvm.lifetime.end.p0(i64 20, ptr %971) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %970) #11
  br label %8733

8733:                                             ; preds = %8732, %8671
  call void @llvm.lifetime.end.p0(i64 16, ptr %970) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %969) #11
  br label %8734

8734:                                             ; preds = %8733, %8667
  call void @llvm.lifetime.end.p0(i64 16, ptr %969) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %968) #11
  br label %8735

8735:                                             ; preds = %8734, %8663
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %966) #11
  br label %8736

8736:                                             ; preds = %8735, %8659, %8655
  call void @llvm.lifetime.end.p0(i64 16, ptr %966) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %965) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %964) #11
  br label %8737

8737:                                             ; preds = %8736, %8651
  call void @llvm.lifetime.end.p0(i64 8, ptr %963) #11
  br label %8738

8738:                                             ; preds = %8737, %8603
  call void @llvm.lifetime.end.p0(i64 16, ptr %962) #11
  br label %8739

8739:                                             ; preds = %8738, %8599
  call void @llvm.lifetime.end.p0(i64 16, ptr %961) #11
  br label %8740

8740:                                             ; preds = %8739, %8595
  call void @llvm.lifetime.end.p0(i64 8, ptr %960) #11
  br label %11059

8741:                                             ; preds = %8594
  call void @llvm.lifetime.start.p0(i64 8, ptr %981) #11
  %8742 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %8743 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %8742)
          to label %8744 unwind label %8767

8744:                                             ; preds = %8741
  %8745 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %8743, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %8746 unwind label %8767

8746:                                             ; preds = %8744
  %8747 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %8745)
          to label %8748 unwind label %8767

8748:                                             ; preds = %8746
  store ptr %8747, ptr %981, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %982) #11
  %8749 = load ptr, ptr %981, align 8, !tbaa !5
  %8750 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %8749)
          to label %8751 unwind label %8771

8751:                                             ; preds = %8748
  %8752 = getelementptr inbounds { ptr, i64 }, ptr %982, i32 0, i32 0
  %8753 = extractvalue { ptr, i64 } %8750, 0
  store ptr %8753, ptr %8752, align 8
  %8754 = getelementptr inbounds { ptr, i64 }, ptr %982, i32 0, i32 1
  %8755 = extractvalue { ptr, i64 } %8750, 1
  store i64 %8755, ptr %8754, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %983) #11
  %8756 = load ptr, ptr %981, align 8, !tbaa !5
  %8757 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %8756)
          to label %8758 unwind label %8775

8758:                                             ; preds = %8751
  %8759 = getelementptr inbounds { ptr, i64 }, ptr %983, i32 0, i32 0
  %8760 = extractvalue { ptr, i64 } %8757, 0
  store ptr %8760, ptr %8759, align 8
  %8761 = getelementptr inbounds { ptr, i64 }, ptr %983, i32 0, i32 1
  %8762 = extractvalue { ptr, i64 } %8757, 1
  store i64 %8762, ptr %8761, align 8
  br label %8763

8763:                                             ; preds = %8824, %8758
  %8764 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %982, ptr noundef nonnull align 8 dereferenceable(16) %983)
          to label %8765 unwind label %8775

8765:                                             ; preds = %8763
  br i1 %8764, label %8779, label %8766

8766:                                             ; preds = %8765
  store i32 67, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %983) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %982) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %981) #11
  br label %8920

8767:                                             ; preds = %8746, %8744, %8741
  %8768 = landingpad { ptr, i32 }
          cleanup
  %8769 = extractvalue { ptr, i32 } %8768, 0
  store ptr %8769, ptr %11, align 8
  %8770 = extractvalue { ptr, i32 } %8768, 1
  store i32 %8770, ptr %12, align 4
  br label %8919

8771:                                             ; preds = %8748
  %8772 = landingpad { ptr, i32 }
          cleanup
  %8773 = extractvalue { ptr, i32 } %8772, 0
  store ptr %8773, ptr %11, align 8
  %8774 = extractvalue { ptr, i32 } %8772, 1
  store i32 %8774, ptr %12, align 4
  br label %8918

8775:                                             ; preds = %8822, %8763, %8751
  %8776 = landingpad { ptr, i32 }
          cleanup
  %8777 = extractvalue { ptr, i32 } %8776, 0
  store ptr %8777, ptr %11, align 8
  %8778 = extractvalue { ptr, i32 } %8776, 1
  store i32 %8778, ptr %12, align 4
  br label %8917

8779:                                             ; preds = %8765
  call void @llvm.lifetime.start.p0(i64 8, ptr %984) #11
  %8780 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %982)
          to label %8781 unwind label %8825

8781:                                             ; preds = %8779
  store ptr %8780, ptr %984, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %985) #11
  %8782 = load ptr, ptr %984, align 8, !tbaa !5
  %8783 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %8782) #11
  store ptr %8783, ptr %985, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %986) #11
  %8784 = load ptr, ptr %984, align 8, !tbaa !5
  %8785 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %8784) #11
  store ptr %8785, ptr %986, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %987) #11
  %8786 = load ptr, ptr %986, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %988, ptr noundef nonnull align 8 dereferenceable(16) %8786)
          to label %8787 unwind label %8829

8787:                                             ; preds = %8781
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %987, ptr noundef %988, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %8788 unwind label %8833

8788:                                             ; preds = %8787
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %988) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %989) #11
  %8789 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA13_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %989, ptr noundef nonnull align 8 dereferenceable(264) %8789, ptr noundef nonnull align 1 dereferenceable(13) @.str.167, ptr noundef nonnull align 8 dereferenceable(16) %987, ptr noundef nonnull align 1 dereferenceable(2) @.str.45)
          to label %8790 unwind label %8837

8790:                                             ; preds = %8788
  %8791 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %8792 unwind label %8841

8792:                                             ; preds = %8790
  call void @llvm.lifetime.start.p0(i64 16, ptr %990) #11
  %8793 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %991) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %991)
          to label %8794 unwind label %8845

8794:                                             ; preds = %8792
  call void @llvm.lifetime.start.p0(i64 16, ptr %992) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %992)
          to label %8795 unwind label %8849

8795:                                             ; preds = %8794
  call void @llvm.lifetime.start.p0(i64 20, ptr %993) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %993, ptr noundef nonnull align 8 dereferenceable(16) %989)
          to label %8796 unwind label %8853

8796:                                             ; preds = %8795
  call void @llvm.lifetime.start.p0(i64 16, ptr %994) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %996) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %997) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %999) #11
  store ptr %999, ptr %1000, align 8
  %8797 = load ptr, ptr %985, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %999, ptr noundef nonnull align 8 dereferenceable(32) %8797)
          to label %8798 unwind label %8857

8798:                                             ; preds = %8796
  %8799 = getelementptr inbounds %"class.std::initializer_list", ptr %998, i32 0, i32 0
  store ptr %999, ptr %8799, align 8, !tbaa !11
  %8800 = getelementptr inbounds %"class.std::initializer_list", ptr %998, i32 0, i32 1
  store i64 1, ptr %8800, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %1001) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1001) #11
  %8801 = getelementptr inbounds { ptr, i64 }, ptr %998, i32 0, i32 0
  %8802 = load ptr, ptr %8801, align 8
  %8803 = getelementptr inbounds { ptr, i64 }, ptr %998, i32 0, i32 1
  %8804 = load i64, ptr %8803, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %997, ptr %8802, i64 %8804, ptr noundef nonnull align 1 dereferenceable(1) %1001)
          to label %8805 unwind label %8868

8805:                                             ; preds = %8798
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %996, ptr noundef nonnull align 8 dereferenceable(24) %997)
          to label %8806 unwind label %8872

8806:                                             ; preds = %8805
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %995, ptr noundef nonnull align 8 dereferenceable(16) %996)
          to label %8807 unwind label %8876

8807:                                             ; preds = %8806
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1002)
          to label %8808 unwind label %8880

8808:                                             ; preds = %8807
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %994, i32 noundef 14, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %995, ptr noundef %1002)
          to label %8809 unwind label %8884

8809:                                             ; preds = %8808
  %8810 = load ptr, ptr %985, align 8, !tbaa !5
  %8811 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %376, ptr noundef nonnull align 8 dereferenceable(32) %8810)
          to label %8812 unwind label %8888

8812:                                             ; preds = %8809
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %990, ptr noundef nonnull align 8 dereferenceable(264) %8793, ptr noundef nonnull align 8 dereferenceable(16) %991, ptr noundef nonnull align 8 dereferenceable(16) %992, ptr noundef nonnull align 4 dereferenceable(20) %993, ptr noundef nonnull align 8 dereferenceable(16) %994, ptr noundef nonnull align 8 dereferenceable(16) %8811)
          to label %8813 unwind label %8888

8813:                                             ; preds = %8812
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8791, ptr noundef nonnull align 8 dereferenceable(16) %990)
          to label %8814 unwind label %8892

8814:                                             ; preds = %8813
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %990) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %994) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1002) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %995) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %996) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %997) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1001) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1001) #11
  %8815 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %999, i32 0, i32 0
  %8816 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8815, i64 1
  br label %8817

8817:                                             ; preds = %8817, %8814
  %8818 = phi ptr [ %8816, %8814 ], [ %8819, %8817 ]
  %8819 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8818, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8819) #11
  %8820 = icmp eq ptr %8819, %8815
  br i1 %8820, label %8821, label %8817

8821:                                             ; preds = %8817
  call void @llvm.lifetime.end.p0(i64 32, ptr %999) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %997) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %996) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %994) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %993) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %993) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %992) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %992) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %991) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %991) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %990) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %989) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %989) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %987) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %987) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %986) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %985) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %984) #11
  br label %8822

8822:                                             ; preds = %8821
  %8823 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %982)
          to label %8824 unwind label %8775

8824:                                             ; preds = %8822
  br label %8763

8825:                                             ; preds = %8779
  %8826 = landingpad { ptr, i32 }
          cleanup
  %8827 = extractvalue { ptr, i32 } %8826, 0
  store ptr %8827, ptr %11, align 8
  %8828 = extractvalue { ptr, i32 } %8826, 1
  store i32 %8828, ptr %12, align 4
  br label %8916

8829:                                             ; preds = %8781
  %8830 = landingpad { ptr, i32 }
          cleanup
  %8831 = extractvalue { ptr, i32 } %8830, 0
  store ptr %8831, ptr %11, align 8
  %8832 = extractvalue { ptr, i32 } %8830, 1
  store i32 %8832, ptr %12, align 4
  br label %8915

8833:                                             ; preds = %8787
  %8834 = landingpad { ptr, i32 }
          cleanup
  %8835 = extractvalue { ptr, i32 } %8834, 0
  store ptr %8835, ptr %11, align 8
  %8836 = extractvalue { ptr, i32 } %8834, 1
  store i32 %8836, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %988) #11
  br label %8915

8837:                                             ; preds = %8788
  %8838 = landingpad { ptr, i32 }
          cleanup
  %8839 = extractvalue { ptr, i32 } %8838, 0
  store ptr %8839, ptr %11, align 8
  %8840 = extractvalue { ptr, i32 } %8838, 1
  store i32 %8840, ptr %12, align 4
  br label %8914

8841:                                             ; preds = %8790
  %8842 = landingpad { ptr, i32 }
          cleanup
  %8843 = extractvalue { ptr, i32 } %8842, 0
  store ptr %8843, ptr %11, align 8
  %8844 = extractvalue { ptr, i32 } %8842, 1
  store i32 %8844, ptr %12, align 4
  br label %8913

8845:                                             ; preds = %8792
  %8846 = landingpad { ptr, i32 }
          cleanup
  %8847 = extractvalue { ptr, i32 } %8846, 0
  store ptr %8847, ptr %11, align 8
  %8848 = extractvalue { ptr, i32 } %8846, 1
  store i32 %8848, ptr %12, align 4
  br label %8912

8849:                                             ; preds = %8794
  %8850 = landingpad { ptr, i32 }
          cleanup
  %8851 = extractvalue { ptr, i32 } %8850, 0
  store ptr %8851, ptr %11, align 8
  %8852 = extractvalue { ptr, i32 } %8850, 1
  store i32 %8852, ptr %12, align 4
  br label %8911

8853:                                             ; preds = %8795
  %8854 = landingpad { ptr, i32 }
          cleanup
  %8855 = extractvalue { ptr, i32 } %8854, 0
  store ptr %8855, ptr %11, align 8
  %8856 = extractvalue { ptr, i32 } %8854, 1
  store i32 %8856, ptr %12, align 4
  br label %8910

8857:                                             ; preds = %8796
  %8858 = landingpad { ptr, i32 }
          cleanup
  %8859 = extractvalue { ptr, i32 } %8858, 0
  store ptr %8859, ptr %11, align 8
  %8860 = extractvalue { ptr, i32 } %8858, 1
  store i32 %8860, ptr %12, align 4
  %8861 = load ptr, ptr %1000, align 8
  %8862 = icmp eq ptr %999, %8861
  br i1 %8862, label %8867, label %8863

8863:                                             ; preds = %8863, %8857
  %8864 = phi ptr [ %8861, %8857 ], [ %8865, %8863 ]
  %8865 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8864, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8865) #11
  %8866 = icmp eq ptr %8865, %999
  br i1 %8866, label %8867, label %8863

8867:                                             ; preds = %8863, %8857
  br label %8909

8868:                                             ; preds = %8798
  %8869 = landingpad { ptr, i32 }
          cleanup
  %8870 = extractvalue { ptr, i32 } %8869, 0
  store ptr %8870, ptr %11, align 8
  %8871 = extractvalue { ptr, i32 } %8869, 1
  store i32 %8871, ptr %12, align 4
  br label %8901

8872:                                             ; preds = %8805
  %8873 = landingpad { ptr, i32 }
          cleanup
  %8874 = extractvalue { ptr, i32 } %8873, 0
  store ptr %8874, ptr %11, align 8
  %8875 = extractvalue { ptr, i32 } %8873, 1
  store i32 %8875, ptr %12, align 4
  br label %8900

8876:                                             ; preds = %8806
  %8877 = landingpad { ptr, i32 }
          cleanup
  %8878 = extractvalue { ptr, i32 } %8877, 0
  store ptr %8878, ptr %11, align 8
  %8879 = extractvalue { ptr, i32 } %8877, 1
  store i32 %8879, ptr %12, align 4
  br label %8899

8880:                                             ; preds = %8807
  %8881 = landingpad { ptr, i32 }
          cleanup
  %8882 = extractvalue { ptr, i32 } %8881, 0
  store ptr %8882, ptr %11, align 8
  %8883 = extractvalue { ptr, i32 } %8881, 1
  store i32 %8883, ptr %12, align 4
  br label %8898

8884:                                             ; preds = %8808
  %8885 = landingpad { ptr, i32 }
          cleanup
  %8886 = extractvalue { ptr, i32 } %8885, 0
  store ptr %8886, ptr %11, align 8
  %8887 = extractvalue { ptr, i32 } %8885, 1
  store i32 %8887, ptr %12, align 4
  br label %8897

8888:                                             ; preds = %8812, %8809
  %8889 = landingpad { ptr, i32 }
          cleanup
  %8890 = extractvalue { ptr, i32 } %8889, 0
  store ptr %8890, ptr %11, align 8
  %8891 = extractvalue { ptr, i32 } %8889, 1
  store i32 %8891, ptr %12, align 4
  br label %8896

8892:                                             ; preds = %8813
  %8893 = landingpad { ptr, i32 }
          cleanup
  %8894 = extractvalue { ptr, i32 } %8893, 0
  store ptr %8894, ptr %11, align 8
  %8895 = extractvalue { ptr, i32 } %8893, 1
  store i32 %8895, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %990) #11
  br label %8896

8896:                                             ; preds = %8892, %8888
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %994) #11
  br label %8897

8897:                                             ; preds = %8896, %8884
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1002) #11
  br label %8898

8898:                                             ; preds = %8897, %8880
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %995) #11
  br label %8899

8899:                                             ; preds = %8898, %8876
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %996) #11
  br label %8900

8900:                                             ; preds = %8899, %8872
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %997) #11
  br label %8901

8901:                                             ; preds = %8900, %8868
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1001) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1001) #11
  %8902 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %999, i32 0, i32 0
  %8903 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8902, i64 1
  br label %8904

8904:                                             ; preds = %8904, %8901
  %8905 = phi ptr [ %8903, %8901 ], [ %8906, %8904 ]
  %8906 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8905, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8906) #11
  %8907 = icmp eq ptr %8906, %8902
  br i1 %8907, label %8908, label %8904

8908:                                             ; preds = %8904
  br label %8909

8909:                                             ; preds = %8908, %8867
  call void @llvm.lifetime.end.p0(i64 32, ptr %999) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %997) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %996) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %994) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %993) #11
  br label %8910

8910:                                             ; preds = %8909, %8853
  call void @llvm.lifetime.end.p0(i64 20, ptr %993) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %992) #11
  br label %8911

8911:                                             ; preds = %8910, %8849
  call void @llvm.lifetime.end.p0(i64 16, ptr %992) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %991) #11
  br label %8912

8912:                                             ; preds = %8911, %8845
  call void @llvm.lifetime.end.p0(i64 16, ptr %991) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %990) #11
  br label %8913

8913:                                             ; preds = %8912, %8841
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %989) #11
  br label %8914

8914:                                             ; preds = %8913, %8837
  call void @llvm.lifetime.end.p0(i64 16, ptr %989) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %987) #11
  br label %8915

8915:                                             ; preds = %8914, %8833, %8829
  call void @llvm.lifetime.end.p0(i64 16, ptr %987) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %986) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %985) #11
  br label %8916

8916:                                             ; preds = %8915, %8825
  call void @llvm.lifetime.end.p0(i64 8, ptr %984) #11
  br label %8917

8917:                                             ; preds = %8916, %8775
  call void @llvm.lifetime.end.p0(i64 16, ptr %983) #11
  br label %8918

8918:                                             ; preds = %8917, %8771
  call void @llvm.lifetime.end.p0(i64 16, ptr %982) #11
  br label %8919

8919:                                             ; preds = %8918, %8767
  call void @llvm.lifetime.end.p0(i64 8, ptr %981) #11
  br label %11059

8920:                                             ; preds = %8766
  %8921 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %8922 unwind label %7131

8922:                                             ; preds = %8920
  call void @llvm.lifetime.start.p0(i64 16, ptr %1003) #11
  %8923 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1004) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1004)
          to label %8924 unwind label %8949

8924:                                             ; preds = %8922
  call void @llvm.lifetime.start.p0(i64 16, ptr %1005) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1005)
          to label %8925 unwind label %8953

8925:                                             ; preds = %8924
  call void @llvm.lifetime.start.p0(i64 20, ptr %1006) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1007) #11
  %8926 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA5_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1007, ptr noundef nonnull align 8 dereferenceable(264) %8926, ptr noundef nonnull align 1 dereferenceable(5) @.str.18)
          to label %8927 unwind label %8957

8927:                                             ; preds = %8925
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1006, ptr noundef nonnull align 8 dereferenceable(16) %1007)
          to label %8928 unwind label %8961

8928:                                             ; preds = %8927
  call void @llvm.lifetime.start.p0(i64 16, ptr %1008) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1009)
          to label %8929 unwind label %8965

8929:                                             ; preds = %8928
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1010)
          to label %8930 unwind label %8969

8930:                                             ; preds = %8929
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1008, i32 noundef 18, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1009, ptr noundef %1010)
          to label %8931 unwind label %8973

8931:                                             ; preds = %8930
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1003, ptr noundef nonnull align 8 dereferenceable(264) %8923, ptr noundef nonnull align 8 dereferenceable(16) %1004, ptr noundef nonnull align 8 dereferenceable(16) %1005, ptr noundef nonnull align 4 dereferenceable(20) %1006, ptr noundef nonnull align 8 dereferenceable(16) %1008, ptr noundef nonnull align 8 dereferenceable(16) %426)
          to label %8932 unwind label %8977

8932:                                             ; preds = %8931
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8921, ptr noundef nonnull align 8 dereferenceable(16) %1003)
          to label %8933 unwind label %8981

8933:                                             ; preds = %8932
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1003) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1008) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1010) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1009) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1008) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1006) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1007) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1007) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1006) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1005) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1005) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1004) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1004) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1003) #11
  %8934 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %8935 unwind label %7131

8935:                                             ; preds = %8933
  call void @llvm.lifetime.start.p0(i64 16, ptr %1011) #11
  %8936 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1012) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1013) #11
  %8937 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1013, ptr noundef nonnull align 8 dereferenceable(264) %8937, ptr noundef nonnull align 8 dereferenceable(32) %452)
          to label %8938 unwind label %8993

8938:                                             ; preds = %8935
  invoke void @_ZN6langcc15NodeV_singletonERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1012, ptr noundef nonnull align 8 dereferenceable(16) %1013)
          to label %8939 unwind label %8997

8939:                                             ; preds = %8938
  call void @llvm.lifetime.start.p0(i64 16, ptr %1014) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1014)
          to label %8940 unwind label %9001

8940:                                             ; preds = %8939
  call void @llvm.lifetime.start.p0(i64 20, ptr %1015) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1016) #11
  %8941 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1016, ptr noundef nonnull align 8 dereferenceable(264) %8941, ptr noundef nonnull align 8 dereferenceable(32) %452)
          to label %8942 unwind label %9005

8942:                                             ; preds = %8940
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1015, ptr noundef nonnull align 8 dereferenceable(16) %1016)
          to label %8943 unwind label %9009

8943:                                             ; preds = %8942
  call void @llvm.lifetime.start.p0(i64 16, ptr %1017) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1018)
          to label %8944 unwind label %9013

8944:                                             ; preds = %8943
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1019)
          to label %8945 unwind label %9017

8945:                                             ; preds = %8944
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1017, i32 noundef 16, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1018, ptr noundef %1019)
          to label %8946 unwind label %9021

8946:                                             ; preds = %8945
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1011, ptr noundef nonnull align 8 dereferenceable(264) %8936, ptr noundef nonnull align 8 dereferenceable(16) %1012, ptr noundef nonnull align 8 dereferenceable(16) %1014, ptr noundef nonnull align 4 dereferenceable(20) %1015, ptr noundef nonnull align 8 dereferenceable(16) %1017, ptr noundef nonnull align 8 dereferenceable(16) %459)
          to label %8947 unwind label %9025

8947:                                             ; preds = %8946
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %8934, ptr noundef nonnull align 8 dereferenceable(16) %1011)
          to label %8948 unwind label %9029

8948:                                             ; preds = %8947
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1011) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1017) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1019) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1018) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1017) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1015) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1016) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1016) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1015) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1014) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1014) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1012) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1013) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1013) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1012) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1011) #11
  br label %9042

8949:                                             ; preds = %8922
  %8950 = landingpad { ptr, i32 }
          cleanup
  %8951 = extractvalue { ptr, i32 } %8950, 0
  store ptr %8951, ptr %11, align 8
  %8952 = extractvalue { ptr, i32 } %8950, 1
  store i32 %8952, ptr %12, align 4
  br label %8992

8953:                                             ; preds = %8924
  %8954 = landingpad { ptr, i32 }
          cleanup
  %8955 = extractvalue { ptr, i32 } %8954, 0
  store ptr %8955, ptr %11, align 8
  %8956 = extractvalue { ptr, i32 } %8954, 1
  store i32 %8956, ptr %12, align 4
  br label %8991

8957:                                             ; preds = %8925
  %8958 = landingpad { ptr, i32 }
          cleanup
  %8959 = extractvalue { ptr, i32 } %8958, 0
  store ptr %8959, ptr %11, align 8
  %8960 = extractvalue { ptr, i32 } %8958, 1
  store i32 %8960, ptr %12, align 4
  br label %8990

8961:                                             ; preds = %8927
  %8962 = landingpad { ptr, i32 }
          cleanup
  %8963 = extractvalue { ptr, i32 } %8962, 0
  store ptr %8963, ptr %11, align 8
  %8964 = extractvalue { ptr, i32 } %8962, 1
  store i32 %8964, ptr %12, align 4
  br label %8989

8965:                                             ; preds = %8928
  %8966 = landingpad { ptr, i32 }
          cleanup
  %8967 = extractvalue { ptr, i32 } %8966, 0
  store ptr %8967, ptr %11, align 8
  %8968 = extractvalue { ptr, i32 } %8966, 1
  store i32 %8968, ptr %12, align 4
  br label %8988

8969:                                             ; preds = %8929
  %8970 = landingpad { ptr, i32 }
          cleanup
  %8971 = extractvalue { ptr, i32 } %8970, 0
  store ptr %8971, ptr %11, align 8
  %8972 = extractvalue { ptr, i32 } %8970, 1
  store i32 %8972, ptr %12, align 4
  br label %8987

8973:                                             ; preds = %8930
  %8974 = landingpad { ptr, i32 }
          cleanup
  %8975 = extractvalue { ptr, i32 } %8974, 0
  store ptr %8975, ptr %11, align 8
  %8976 = extractvalue { ptr, i32 } %8974, 1
  store i32 %8976, ptr %12, align 4
  br label %8986

8977:                                             ; preds = %8931
  %8978 = landingpad { ptr, i32 }
          cleanup
  %8979 = extractvalue { ptr, i32 } %8978, 0
  store ptr %8979, ptr %11, align 8
  %8980 = extractvalue { ptr, i32 } %8978, 1
  store i32 %8980, ptr %12, align 4
  br label %8985

8981:                                             ; preds = %8932
  %8982 = landingpad { ptr, i32 }
          cleanup
  %8983 = extractvalue { ptr, i32 } %8982, 0
  store ptr %8983, ptr %11, align 8
  %8984 = extractvalue { ptr, i32 } %8982, 1
  store i32 %8984, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1003) #11
  br label %8985

8985:                                             ; preds = %8981, %8977
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1008) #11
  br label %8986

8986:                                             ; preds = %8985, %8973
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1010) #11
  br label %8987

8987:                                             ; preds = %8986, %8969
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1009) #11
  br label %8988

8988:                                             ; preds = %8987, %8965
  call void @llvm.lifetime.end.p0(i64 16, ptr %1008) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1006) #11
  br label %8989

8989:                                             ; preds = %8988, %8961
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1007) #11
  br label %8990

8990:                                             ; preds = %8989, %8957
  call void @llvm.lifetime.end.p0(i64 16, ptr %1007) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1006) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1005) #11
  br label %8991

8991:                                             ; preds = %8990, %8953
  call void @llvm.lifetime.end.p0(i64 16, ptr %1005) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1004) #11
  br label %8992

8992:                                             ; preds = %8991, %8949
  call void @llvm.lifetime.end.p0(i64 16, ptr %1004) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1003) #11
  br label %11059

8993:                                             ; preds = %8935
  %8994 = landingpad { ptr, i32 }
          cleanup
  %8995 = extractvalue { ptr, i32 } %8994, 0
  store ptr %8995, ptr %11, align 8
  %8996 = extractvalue { ptr, i32 } %8994, 1
  store i32 %8996, ptr %12, align 4
  br label %9041

8997:                                             ; preds = %8938
  %8998 = landingpad { ptr, i32 }
          cleanup
  %8999 = extractvalue { ptr, i32 } %8998, 0
  store ptr %8999, ptr %11, align 8
  %9000 = extractvalue { ptr, i32 } %8998, 1
  store i32 %9000, ptr %12, align 4
  br label %9040

9001:                                             ; preds = %8939
  %9002 = landingpad { ptr, i32 }
          cleanup
  %9003 = extractvalue { ptr, i32 } %9002, 0
  store ptr %9003, ptr %11, align 8
  %9004 = extractvalue { ptr, i32 } %9002, 1
  store i32 %9004, ptr %12, align 4
  br label %9039

9005:                                             ; preds = %8940
  %9006 = landingpad { ptr, i32 }
          cleanup
  %9007 = extractvalue { ptr, i32 } %9006, 0
  store ptr %9007, ptr %11, align 8
  %9008 = extractvalue { ptr, i32 } %9006, 1
  store i32 %9008, ptr %12, align 4
  br label %9038

9009:                                             ; preds = %8942
  %9010 = landingpad { ptr, i32 }
          cleanup
  %9011 = extractvalue { ptr, i32 } %9010, 0
  store ptr %9011, ptr %11, align 8
  %9012 = extractvalue { ptr, i32 } %9010, 1
  store i32 %9012, ptr %12, align 4
  br label %9037

9013:                                             ; preds = %8943
  %9014 = landingpad { ptr, i32 }
          cleanup
  %9015 = extractvalue { ptr, i32 } %9014, 0
  store ptr %9015, ptr %11, align 8
  %9016 = extractvalue { ptr, i32 } %9014, 1
  store i32 %9016, ptr %12, align 4
  br label %9036

9017:                                             ; preds = %8944
  %9018 = landingpad { ptr, i32 }
          cleanup
  %9019 = extractvalue { ptr, i32 } %9018, 0
  store ptr %9019, ptr %11, align 8
  %9020 = extractvalue { ptr, i32 } %9018, 1
  store i32 %9020, ptr %12, align 4
  br label %9035

9021:                                             ; preds = %8945
  %9022 = landingpad { ptr, i32 }
          cleanup
  %9023 = extractvalue { ptr, i32 } %9022, 0
  store ptr %9023, ptr %11, align 8
  %9024 = extractvalue { ptr, i32 } %9022, 1
  store i32 %9024, ptr %12, align 4
  br label %9034

9025:                                             ; preds = %8946
  %9026 = landingpad { ptr, i32 }
          cleanup
  %9027 = extractvalue { ptr, i32 } %9026, 0
  store ptr %9027, ptr %11, align 8
  %9028 = extractvalue { ptr, i32 } %9026, 1
  store i32 %9028, ptr %12, align 4
  br label %9033

9029:                                             ; preds = %8947
  %9030 = landingpad { ptr, i32 }
          cleanup
  %9031 = extractvalue { ptr, i32 } %9030, 0
  store ptr %9031, ptr %11, align 8
  %9032 = extractvalue { ptr, i32 } %9030, 1
  store i32 %9032, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1011) #11
  br label %9033

9033:                                             ; preds = %9029, %9025
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1017) #11
  br label %9034

9034:                                             ; preds = %9033, %9021
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1019) #11
  br label %9035

9035:                                             ; preds = %9034, %9017
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1018) #11
  br label %9036

9036:                                             ; preds = %9035, %9013
  call void @llvm.lifetime.end.p0(i64 16, ptr %1017) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1015) #11
  br label %9037

9037:                                             ; preds = %9036, %9009
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1016) #11
  br label %9038

9038:                                             ; preds = %9037, %9005
  call void @llvm.lifetime.end.p0(i64 16, ptr %1016) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1015) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1014) #11
  br label %9039

9039:                                             ; preds = %9038, %9001
  call void @llvm.lifetime.end.p0(i64 16, ptr %1014) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1012) #11
  br label %9040

9040:                                             ; preds = %9039, %8997
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1013) #11
  br label %9041

9041:                                             ; preds = %9040, %8993
  call void @llvm.lifetime.end.p0(i64 16, ptr %1013) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1012) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1011) #11
  br label %11059

9042:                                             ; preds = %8948, %8393
  %9043 = getelementptr inbounds %"struct.std::pair.131", ptr %250, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %1020, ptr noundef nonnull align 8 dereferenceable(16) %9043)
          to label %9044 unwind label %7131

9044:                                             ; preds = %9042
  %9045 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef %1020)
          to label %9046 unwind label %9065

9046:                                             ; preds = %9044
  %9047 = xor i1 %9045, true
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1020) #11
  br i1 %9047, label %9048, label %9138

9048:                                             ; preds = %9046
  %9049 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %9050 unwind label %7131

9050:                                             ; preds = %9048
  call void @llvm.lifetime.start.p0(i64 16, ptr %1021) #11
  %9051 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1022) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1023)
          to label %9052 unwind label %9069

9052:                                             ; preds = %9050
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1024)
          to label %9053 unwind label %9073

9053:                                             ; preds = %9052
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1022, i32 noundef 20, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1023, ptr noundef %1024)
          to label %9054 unwind label %9077

9054:                                             ; preds = %9053
  invoke void @_ZN6langcc13CppGenContext2qqIJA6_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA18_cS9_A9_cEEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1021, ptr noundef nonnull align 8 dereferenceable(264) %9051, ptr noundef nonnull align 1 dereferenceable(6) @.str.145, ptr noundef nonnull align 1 dereferenceable(5) @.str.18, ptr noundef nonnull align 8 dereferenceable(16) %1022, ptr noundef nonnull align 1 dereferenceable(18) @.str.168, ptr noundef nonnull align 8 dereferenceable(16) %658, ptr noundef nonnull align 1 dereferenceable(9) @.str.169)
          to label %9055 unwind label %9081

9055:                                             ; preds = %9054
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9049, ptr noundef nonnull align 8 dereferenceable(16) %1021)
          to label %9056 unwind label %9085

9056:                                             ; preds = %9055
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1021) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1022) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1024) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1023) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1022) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1021) #11
  %9057 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %9058 = trunc i8 %9057 to i1
  br i1 %9058, label %9102, label %9059

9059:                                             ; preds = %9056
  %9060 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %9061 unwind label %7131

9061:                                             ; preds = %9059
  call void @llvm.lifetime.start.p0(i64 16, ptr %1025) #11
  %9062 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA6_cA43_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA9_cEEES9_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1025, ptr noundef nonnull align 8 dereferenceable(264) %9062, ptr noundef nonnull align 1 dereferenceable(6) @.str.145, ptr noundef nonnull align 1 dereferenceable(43) @.str.170, ptr noundef nonnull align 8 dereferenceable(16) %628, ptr noundef nonnull align 1 dereferenceable(9) @.str.169)
          to label %9063 unwind label %9093

9063:                                             ; preds = %9061
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9060, ptr noundef nonnull align 8 dereferenceable(16) %1025)
          to label %9064 unwind label %9097

9064:                                             ; preds = %9063
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1025) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1025) #11
  br label %9137

9065:                                             ; preds = %9044
  %9066 = landingpad { ptr, i32 }
          cleanup
  %9067 = extractvalue { ptr, i32 } %9066, 0
  store ptr %9067, ptr %11, align 8
  %9068 = extractvalue { ptr, i32 } %9066, 1
  store i32 %9068, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1020) #11
  br label %11059

9069:                                             ; preds = %9050
  %9070 = landingpad { ptr, i32 }
          cleanup
  %9071 = extractvalue { ptr, i32 } %9070, 0
  store ptr %9071, ptr %11, align 8
  %9072 = extractvalue { ptr, i32 } %9070, 1
  store i32 %9072, ptr %12, align 4
  br label %9092

9073:                                             ; preds = %9052
  %9074 = landingpad { ptr, i32 }
          cleanup
  %9075 = extractvalue { ptr, i32 } %9074, 0
  store ptr %9075, ptr %11, align 8
  %9076 = extractvalue { ptr, i32 } %9074, 1
  store i32 %9076, ptr %12, align 4
  br label %9091

9077:                                             ; preds = %9053
  %9078 = landingpad { ptr, i32 }
          cleanup
  %9079 = extractvalue { ptr, i32 } %9078, 0
  store ptr %9079, ptr %11, align 8
  %9080 = extractvalue { ptr, i32 } %9078, 1
  store i32 %9080, ptr %12, align 4
  br label %9090

9081:                                             ; preds = %9054
  %9082 = landingpad { ptr, i32 }
          cleanup
  %9083 = extractvalue { ptr, i32 } %9082, 0
  store ptr %9083, ptr %11, align 8
  %9084 = extractvalue { ptr, i32 } %9082, 1
  store i32 %9084, ptr %12, align 4
  br label %9089

9085:                                             ; preds = %9055
  %9086 = landingpad { ptr, i32 }
          cleanup
  %9087 = extractvalue { ptr, i32 } %9086, 0
  store ptr %9087, ptr %11, align 8
  %9088 = extractvalue { ptr, i32 } %9086, 1
  store i32 %9088, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1021) #11
  br label %9089

9089:                                             ; preds = %9085, %9081
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1022) #11
  br label %9090

9090:                                             ; preds = %9089, %9077
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1024) #11
  br label %9091

9091:                                             ; preds = %9090, %9073
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1023) #11
  br label %9092

9092:                                             ; preds = %9091, %9069
  call void @llvm.lifetime.end.p0(i64 16, ptr %1022) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1021) #11
  br label %11059

9093:                                             ; preds = %9061
  %9094 = landingpad { ptr, i32 }
          cleanup
  %9095 = extractvalue { ptr, i32 } %9094, 0
  store ptr %9095, ptr %11, align 8
  %9096 = extractvalue { ptr, i32 } %9094, 1
  store i32 %9096, ptr %12, align 4
  br label %9101

9097:                                             ; preds = %9063
  %9098 = landingpad { ptr, i32 }
          cleanup
  %9099 = extractvalue { ptr, i32 } %9098, 0
  store ptr %9099, ptr %11, align 8
  %9100 = extractvalue { ptr, i32 } %9098, 1
  store i32 %9100, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1025) #11
  br label %9101

9101:                                             ; preds = %9097, %9093
  call void @llvm.lifetime.end.p0(i64 16, ptr %1025) #11
  br label %11059

9102:                                             ; preds = %9056
  %9103 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %264)
          to label %9104 unwind label %7131

9104:                                             ; preds = %9102
  call void @llvm.lifetime.start.p0(i64 16, ptr %1026) #11
  %9105 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9106 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9105, i32 0, i32 1
  %9107 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9106)
          to label %9108 unwind label %9113

9108:                                             ; preds = %9104
  call void @llvm.lifetime.start.p0(i64 32, ptr %1028) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1029) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1029) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1028, ptr noundef @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %1029)
          to label %9109 unwind label %9117

9109:                                             ; preds = %9108
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %1027, ptr noundef nonnull align 8 dereferenceable(32) %1028)
          to label %9110 unwind label %9121

9110:                                             ; preds = %9109
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA43_cNS_6rc_ptrIS4_EEA13_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1026, ptr noundef nonnull align 8 dereferenceable(32) %9107, ptr noundef %1027, ptr noundef nonnull align 1 dereferenceable(43) @.str.170, ptr noundef nonnull align 8 dereferenceable(16) %628, ptr noundef nonnull align 1 dereferenceable(13) @.str.171)
          to label %9111 unwind label %9125

9111:                                             ; preds = %9110
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9103, ptr noundef nonnull align 8 dereferenceable(16) %1026)
          to label %9112 unwind label %9129

9112:                                             ; preds = %9111
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1026) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %1027) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1028) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1029) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1029) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1028) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1026) #11
  br label %9137

9113:                                             ; preds = %9104
  %9114 = landingpad { ptr, i32 }
          cleanup
  %9115 = extractvalue { ptr, i32 } %9114, 0
  store ptr %9115, ptr %11, align 8
  %9116 = extractvalue { ptr, i32 } %9114, 1
  store i32 %9116, ptr %12, align 4
  br label %9136

9117:                                             ; preds = %9108
  %9118 = landingpad { ptr, i32 }
          cleanup
  %9119 = extractvalue { ptr, i32 } %9118, 0
  store ptr %9119, ptr %11, align 8
  %9120 = extractvalue { ptr, i32 } %9118, 1
  store i32 %9120, ptr %12, align 4
  br label %9135

9121:                                             ; preds = %9109
  %9122 = landingpad { ptr, i32 }
          cleanup
  %9123 = extractvalue { ptr, i32 } %9122, 0
  store ptr %9123, ptr %11, align 8
  %9124 = extractvalue { ptr, i32 } %9122, 1
  store i32 %9124, ptr %12, align 4
  br label %9134

9125:                                             ; preds = %9110
  %9126 = landingpad { ptr, i32 }
          cleanup
  %9127 = extractvalue { ptr, i32 } %9126, 0
  store ptr %9127, ptr %11, align 8
  %9128 = extractvalue { ptr, i32 } %9126, 1
  store i32 %9128, ptr %12, align 4
  br label %9133

9129:                                             ; preds = %9111
  %9130 = landingpad { ptr, i32 }
          cleanup
  %9131 = extractvalue { ptr, i32 } %9130, 0
  store ptr %9131, ptr %11, align 8
  %9132 = extractvalue { ptr, i32 } %9130, 1
  store i32 %9132, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1026) #11
  br label %9133

9133:                                             ; preds = %9129, %9125
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %1027) #11
  br label %9134

9134:                                             ; preds = %9133, %9121
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1028) #11
  br label %9135

9135:                                             ; preds = %9134, %9117
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1029) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1029) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1028) #11
  br label %9136

9136:                                             ; preds = %9135, %9113
  call void @llvm.lifetime.end.p0(i64 16, ptr %1026) #11
  br label %11059

9137:                                             ; preds = %9112, %9064
  br label %9138

9138:                                             ; preds = %9137, %9046
  call void @llvm.lifetime.start.p0(i64 16, ptr %1030) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1030)
          to label %9139 unwind label %9160

9139:                                             ; preds = %9138
  %9140 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 2
  %9141 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9140)
          to label %9142 unwind label %9164

9142:                                             ; preds = %9139
  %9143 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %9141, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %9144 unwind label %9164

9144:                                             ; preds = %9142
  br i1 %9143, label %9145, label %9186

9145:                                             ; preds = %9144
  call void @llvm.lifetime.start.p0(i64 48, ptr %1031) #11
  %9146 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 2
  %9147 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9146)
          to label %9148 unwind label %9168

9148:                                             ; preds = %9145
  %9149 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %9147, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %9150 unwind label %9168

9150:                                             ; preds = %9148
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(48) %1031, ptr noundef nonnull align 8 dereferenceable(48) %9149)
          to label %9151 unwind label %9168

9151:                                             ; preds = %9150
  call void @llvm.lifetime.start.p0(i64 8, ptr %1032) #11
  %9152 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %1031) #11
  store ptr %9152, ptr %1032, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1033) #11
  %9153 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %1031) #11
  store ptr %9153, ptr %1033, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %1034) #11
  %9154 = load ptr, ptr %1032, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1035, ptr noundef nonnull align 8 dereferenceable(16) %9154)
          to label %9155 unwind label %9172

9155:                                             ; preds = %9151
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1034, ptr noundef %1035, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %9156 unwind label %9176

9156:                                             ; preds = %9155
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1035) #11
  %9157 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1030)
          to label %9158 unwind label %9180

9158:                                             ; preds = %9156
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9157, ptr noundef nonnull align 8 dereferenceable(16) %1034)
          to label %9159 unwind label %9180

9159:                                             ; preds = %9158
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1034) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1034) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1033) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1032) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %1031) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %1031) #11
  br label %9186

9160:                                             ; preds = %9138
  %9161 = landingpad { ptr, i32 }
          cleanup
  %9162 = extractvalue { ptr, i32 } %9161, 0
  store ptr %9162, ptr %11, align 8
  %9163 = extractvalue { ptr, i32 } %9161, 1
  store i32 %9163, ptr %12, align 4
  br label %11058

9164:                                             ; preds = %10830, %10827, %10788, %10785, %10779, %10627, %10624, %9263, %9260, %9236, %9233, %9221, %9197, %9192, %9189, %9186, %9142, %9139
  %9165 = landingpad { ptr, i32 }
          cleanup
  %9166 = extractvalue { ptr, i32 } %9165, 0
  store ptr %9166, ptr %11, align 8
  %9167 = extractvalue { ptr, i32 } %9165, 1
  store i32 %9167, ptr %12, align 4
  br label %11057

9168:                                             ; preds = %9150, %9148, %9145
  %9169 = landingpad { ptr, i32 }
          cleanup
  %9170 = extractvalue { ptr, i32 } %9169, 0
  store ptr %9170, ptr %11, align 8
  %9171 = extractvalue { ptr, i32 } %9169, 1
  store i32 %9171, ptr %12, align 4
  br label %9185

9172:                                             ; preds = %9151
  %9173 = landingpad { ptr, i32 }
          cleanup
  %9174 = extractvalue { ptr, i32 } %9173, 0
  store ptr %9174, ptr %11, align 8
  %9175 = extractvalue { ptr, i32 } %9173, 1
  store i32 %9175, ptr %12, align 4
  br label %9184

9176:                                             ; preds = %9155
  %9177 = landingpad { ptr, i32 }
          cleanup
  %9178 = extractvalue { ptr, i32 } %9177, 0
  store ptr %9178, ptr %11, align 8
  %9179 = extractvalue { ptr, i32 } %9177, 1
  store i32 %9179, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1035) #11
  br label %9184

9180:                                             ; preds = %9158, %9156
  %9181 = landingpad { ptr, i32 }
          cleanup
  %9182 = extractvalue { ptr, i32 } %9181, 0
  store ptr %9182, ptr %11, align 8
  %9183 = extractvalue { ptr, i32 } %9181, 1
  store i32 %9183, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1034) #11
  br label %9184

9184:                                             ; preds = %9180, %9176, %9172
  call void @llvm.lifetime.end.p0(i64 16, ptr %1034) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1033) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1032) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %1031) #11
  br label %9185

9185:                                             ; preds = %9184, %9168
  call void @llvm.lifetime.end.p0(i64 48, ptr %1031) #11
  br label %11057

9186:                                             ; preds = %9159, %9144
  %9187 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 2
  %9188 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9187)
          to label %9189 unwind label %9164

9189:                                             ; preds = %9186
  %9190 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %9188, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %9191 unwind label %9164

9191:                                             ; preds = %9189
  br i1 %9190, label %9221, label %9192

9192:                                             ; preds = %9191
  %9193 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1030)
          to label %9194 unwind label %9164

9194:                                             ; preds = %9192
  call void @llvm.lifetime.start.p0(i64 16, ptr %1036) #11
  %9195 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1036, ptr noundef nonnull align 8 dereferenceable(264) %9195, ptr noundef nonnull align 1 dereferenceable(17) @.str.172)
          to label %9196 unwind label %9203

9196:                                             ; preds = %9194
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9193, ptr noundef nonnull align 8 dereferenceable(16) %1036)
          to label %9197 unwind label %9207

9197:                                             ; preds = %9196
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1036) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1036) #11
  %9198 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1030)
          to label %9199 unwind label %9164

9199:                                             ; preds = %9197
  call void @llvm.lifetime.start.p0(i64 16, ptr %1037) #11
  %9200 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA33_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1037, ptr noundef nonnull align 8 dereferenceable(264) %9200, ptr noundef nonnull align 1 dereferenceable(33) @.str.173)
          to label %9201 unwind label %9212

9201:                                             ; preds = %9199
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9198, ptr noundef nonnull align 8 dereferenceable(16) %1037)
          to label %9202 unwind label %9216

9202:                                             ; preds = %9201
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1037) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1037) #11
  br label %9221

9203:                                             ; preds = %9194
  %9204 = landingpad { ptr, i32 }
          cleanup
  %9205 = extractvalue { ptr, i32 } %9204, 0
  store ptr %9205, ptr %11, align 8
  %9206 = extractvalue { ptr, i32 } %9204, 1
  store i32 %9206, ptr %12, align 4
  br label %9211

9207:                                             ; preds = %9196
  %9208 = landingpad { ptr, i32 }
          cleanup
  %9209 = extractvalue { ptr, i32 } %9208, 0
  store ptr %9209, ptr %11, align 8
  %9210 = extractvalue { ptr, i32 } %9208, 1
  store i32 %9210, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1036) #11
  br label %9211

9211:                                             ; preds = %9207, %9203
  call void @llvm.lifetime.end.p0(i64 16, ptr %1036) #11
  br label %11057

9212:                                             ; preds = %9199
  %9213 = landingpad { ptr, i32 }
          cleanup
  %9214 = extractvalue { ptr, i32 } %9213, 0
  store ptr %9214, ptr %11, align 8
  %9215 = extractvalue { ptr, i32 } %9213, 1
  store i32 %9215, ptr %12, align 4
  br label %9220

9216:                                             ; preds = %9201
  %9217 = landingpad { ptr, i32 }
          cleanup
  %9218 = extractvalue { ptr, i32 } %9217, 0
  store ptr %9218, ptr %11, align 8
  %9219 = extractvalue { ptr, i32 } %9217, 1
  store i32 %9219, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1037) #11
  br label %9220

9220:                                             ; preds = %9216, %9212
  call void @llvm.lifetime.end.p0(i64 16, ptr %1037) #11
  br label %11057

9221:                                             ; preds = %9202, %9191
  %9222 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9223 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9222, i32 0, i32 2
  %9224 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9223)
          to label %9225 unwind label %9164

9225:                                             ; preds = %9221
  call void @llvm.lifetime.start.p0(i64 16, ptr %1038) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1039) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1040) #11
  %9226 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1041, ptr noundef nonnull align 8 dereferenceable(16) %252)
          to label %9227 unwind label %9338

9227:                                             ; preds = %9225
  invoke void @_ZN6langcc13CppGenContext19gen_cpp_decl_structENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEESJ_SJ_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1040, ptr noundef nonnull align 8 dereferenceable(264) %9226, ptr noundef %1041, ptr noundef nonnull align 8 dereferenceable(16) %264, ptr noundef nonnull align 8 dereferenceable(16) %1030, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9228 unwind label %9342

9228:                                             ; preds = %9227
  %9229 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1040)
          to label %9230 unwind label %9346

9230:                                             ; preds = %9228
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1039, ptr noundef nonnull align 8 dereferenceable(136) %9229)
          to label %9231 unwind label %9346

9231:                                             ; preds = %9230
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1038, ptr noundef nonnull align 8 dereferenceable(16) %1039)
          to label %9232 unwind label %9350

9232:                                             ; preds = %9231
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9224, ptr noundef nonnull align 8 dereferenceable(16) %1038)
          to label %9233 unwind label %9354

9233:                                             ; preds = %9232
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1038) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1039) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1040) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1041) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1040) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1039) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1038) #11
  %9234 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9235 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9236 unwind label %9164

9236:                                             ; preds = %9233
  %9237 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %9235)
          to label %9238 unwind label %9164

9238:                                             ; preds = %9236
  %9239 = icmp sgt i64 %9237, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1043) #11
  %9240 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1044) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1044)
          to label %9241 unwind label %9362

9241:                                             ; preds = %9238
  call void @llvm.lifetime.start.p0(i64 16, ptr %1045) #11
  %9242 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1045, i32 noundef %9242, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %9243 unwind label %9366

9243:                                             ; preds = %9241
  call void @llvm.lifetime.start.p0(i64 20, ptr %1046) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1046)
          to label %9244 unwind label %9370

9244:                                             ; preds = %9243
  call void @llvm.lifetime.start.p0(i64 16, ptr %1047) #11
  %9245 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9246 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1049) #11
  %9247 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1051) #11
  %9248 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %1051, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(264) %9248)
          to label %9249 unwind label %9374

9249:                                             ; preds = %9244
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1050, ptr noundef nonnull align 8 dereferenceable(16) %1051)
          to label %9250 unwind label %9378

9250:                                             ; preds = %9249
  call void @llvm.lifetime.start.p0(i64 1, ptr %1053) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1053) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1052, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %1053)
          to label %9251 unwind label %9382

9251:                                             ; preds = %9250
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1049, ptr noundef nonnull align 8 dereferenceable(264) %9247, ptr noundef %1050, ptr noundef %1052)
          to label %9252 unwind label %9386

9252:                                             ; preds = %9251
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1048, ptr noundef nonnull align 8 dereferenceable(264) %9246, ptr noundef nonnull align 8 dereferenceable(16) %1049, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9253 unwind label %9390

9253:                                             ; preds = %9252
  call void @llvm.lifetime.start.p0(i64 1, ptr %1055) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1055) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1054, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %1055)
          to label %9254 unwind label %9394

9254:                                             ; preds = %9253
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1047, ptr noundef nonnull align 8 dereferenceable(264) %9245, ptr noundef %1048, ptr noundef %1054)
          to label %9255 unwind label %9398

9255:                                             ; preds = %9254
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1043, ptr noundef nonnull align 8 dereferenceable(264) %9240, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1044, ptr noundef nonnull align 8 dereferenceable(16) %1045, ptr noundef nonnull align 4 dereferenceable(20) %1046, ptr noundef nonnull align 8 dereferenceable(16) %1047, ptr noundef nonnull align 8 dereferenceable(16) %271, ptr noundef nonnull align 8 dereferenceable(16) %273, ptr noundef nonnull align 8 dereferenceable(16) %272, i1 noundef zeroext false)
          to label %9256 unwind label %9402

9256:                                             ; preds = %9255
  %9257 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1043)
          to label %9258 unwind label %9406

9258:                                             ; preds = %9256
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1042, ptr noundef nonnull align 8 dereferenceable(136) %9257)
          to label %9259 unwind label %9406

9259:                                             ; preds = %9258
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %9234, i1 noundef zeroext %9239, ptr noundef %1042)
          to label %9260 unwind label %9410

9260:                                             ; preds = %9259
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1042) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1043) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1047) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1054) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1055) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1055) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1048) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1049) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1052) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1053) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1053) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1050) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1051) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1051) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1049) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1047) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1046) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1046) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1045) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1045) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1044) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1044) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1043) #11
  %9261 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9262 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9263 unwind label %9164

9263:                                             ; preds = %9260
  %9264 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %9262)
          to label %9265 unwind label %9164

9265:                                             ; preds = %9263
  %9266 = icmp sgt i64 %9264, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1057) #11
  %9267 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1058) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1058)
          to label %9268 unwind label %9426

9268:                                             ; preds = %9265
  call void @llvm.lifetime.start.p0(i64 16, ptr %1059) #11
  %9269 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1059, i32 noundef %9269, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %9270 unwind label %9430

9270:                                             ; preds = %9268
  call void @llvm.lifetime.start.p0(i64 20, ptr %1060) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1061) #11
  %9271 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %1062) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1063) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1063) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1062, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %1063)
          to label %9272 unwind label %9434

9272:                                             ; preds = %9270
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1061, ptr noundef nonnull align 8 dereferenceable(264) %9271, ptr noundef nonnull align 8 dereferenceable(32) %1062)
          to label %9273 unwind label %9438

9273:                                             ; preds = %9272
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1060, ptr noundef nonnull align 8 dereferenceable(16) %1061)
          to label %9274 unwind label %9442

9274:                                             ; preds = %9273
  call void @llvm.lifetime.start.p0(i64 16, ptr %1064) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1064, ptr noundef nonnull align 8 dereferenceable(16) %494)
          to label %9275 unwind label %9446

9275:                                             ; preds = %9274
  call void @llvm.lifetime.start.p0(i64 16, ptr %1065) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1065)
          to label %9276 unwind label %9450

9276:                                             ; preds = %9275
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1057, ptr noundef nonnull align 8 dereferenceable(264) %9267, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1058, ptr noundef nonnull align 8 dereferenceable(16) %1059, ptr noundef nonnull align 4 dereferenceable(20) %1060, ptr noundef nonnull align 8 dereferenceable(16) %1064, ptr noundef nonnull align 8 dereferenceable(16) %495, ptr noundef nonnull align 8 dereferenceable(16) %1065, ptr noundef nonnull align 8 dereferenceable(16) %496, i1 noundef zeroext false)
          to label %9277 unwind label %9454

9277:                                             ; preds = %9276
  %9278 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1057)
          to label %9279 unwind label %9458

9279:                                             ; preds = %9277
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1056, ptr noundef nonnull align 8 dereferenceable(136) %9278)
          to label %9280 unwind label %9458

9280:                                             ; preds = %9279
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %9261, i1 noundef zeroext %9266, ptr noundef %1056)
          to label %9281 unwind label %9462

9281:                                             ; preds = %9280
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1056) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1057) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1065) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1065) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1064) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1064) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1060) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1061) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1062) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1063) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1063) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1062) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1061) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1060) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1059) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1059) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1058) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1058) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1057) #11
  %9282 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %9283 = trunc i8 %9282 to i1
  br i1 %9283, label %9284, label %9555

9284:                                             ; preds = %9281
  call void @llvm.lifetime.start.p0(i64 16, ptr %1066) #11
  %9285 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9286 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9285, i32 0, i32 1
  %9287 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9286)
          to label %9288 unwind label %9475

9288:                                             ; preds = %9284
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE16make_lex_builderEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.83") align 8 %1066, ptr noundef nonnull align 8 dereferenceable(32) %9287)
          to label %9289 unwind label %9475

9289:                                             ; preds = %9288
  %9290 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext27gen_cpp_template_params_accERNS_6rc_ptrINS_9LexOutputEEERKNS1_INS_3VecINS1_IN4lang2cc4Node2_TEEEEEEE(ptr noundef nonnull align 8 dereferenceable(264) %9290, ptr noundef nonnull align 8 dereferenceable(16) %1066, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9291 unwind label %9479

9291:                                             ; preds = %9289
  %9292 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9293 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9292, i32 0, i32 1
  %9294 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9293)
          to label %9295 unwind label %9479

9295:                                             ; preds = %9291
  %9296 = load i32, ptr %8, align 4, !tbaa !9
  %9297 = icmp eq i32 %9296, 1
  %9298 = zext i1 %9297 to i64
  %9299 = select i1 %9297, ptr @.str.174, ptr @.str
  call void @llvm.lifetime.start.p0(i64 1, ptr %1068) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1068) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1067, ptr noundef %9299, ptr noundef nonnull align 1 dereferenceable(1) %1068)
          to label %9300 unwind label %9483

9300:                                             ; preds = %9295
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %9294, ptr noundef nonnull align 8 dereferenceable(16) %1066, ptr noundef %1067)
          to label %9301 unwind label %9487

9301:                                             ; preds = %9300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1067) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1068) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1068) #11
  %9302 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9303 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9302, i32 0, i32 1
  %9304 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9303)
          to label %9305 unwind label %9479

9305:                                             ; preds = %9301
  call void @llvm.lifetime.start.p0(i64 16, ptr %1069) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1070, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %9306 unwind label %9492

9306:                                             ; preds = %9305
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1069, ptr noundef %1070, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %9307 unwind label %9496

9307:                                             ; preds = %9306
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %9304, ptr noundef nonnull align 8 dereferenceable(16) %1066, ptr noundef nonnull align 8 dereferenceable(16) %1069)
          to label %9308 unwind label %9500

9308:                                             ; preds = %9307
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1069) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1070) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1069) #11
  %9309 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9310 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9309, i32 0, i32 1
  %9311 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9310)
          to label %9312 unwind label %9479

9312:                                             ; preds = %9308
  call void @llvm.lifetime.start.p0(i64 1, ptr %1072) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1072) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1071, ptr noundef @.str.175, ptr noundef nonnull align 1 dereferenceable(1) %1072)
          to label %9313 unwind label %9506

9313:                                             ; preds = %9312
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %9311, ptr noundef nonnull align 8 dereferenceable(16) %1066, ptr noundef %1071)
          to label %9314 unwind label %9510

9314:                                             ; preds = %9313
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1071) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1072) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1072) #11
  %9315 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9316 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9315, i32 0, i32 1
  %9317 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9316)
          to label %9318 unwind label %9479

9318:                                             ; preds = %9314
  call void @llvm.lifetime.start.p0(i64 1, ptr %1074) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1074) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1073, ptr noundef @.str.176, ptr noundef nonnull align 1 dereferenceable(1) %1074)
          to label %9319 unwind label %9515

9319:                                             ; preds = %9318
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %9317, ptr noundef nonnull align 8 dereferenceable(16) %1066, ptr noundef %1073)
          to label %9320 unwind label %9519

9320:                                             ; preds = %9319
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1073) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1074) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1074) #11
  %9321 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9322 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9323 unwind label %9479

9323:                                             ; preds = %9320
  %9324 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %9322)
          to label %9325 unwind label %9479

9325:                                             ; preds = %9323
  %9326 = icmp sgt i64 %9324, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1076) #11
  %9327 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9328 = getelementptr inbounds %"struct.langcc::CppGenContext", ptr %9327, i32 0, i32 1
  %9329 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9328)
          to label %9330 unwind label %9524

9330:                                             ; preds = %9325
  call void @llvm.lifetime.start.p0(i64 32, ptr %1078) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1079) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1079) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1078, ptr noundef @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %1079)
          to label %9331 unwind label %9528

9331:                                             ; preds = %9330
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.88") align 4 %1077, ptr noundef nonnull align 8 dereferenceable(32) %1078)
          to label %9332 unwind label %9532

9332:                                             ; preds = %9331
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE8qq_innerENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_6rc_ptrINS_9LexOutputEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1076, ptr noundef nonnull align 8 dereferenceable(32) %9329, ptr noundef %1077, ptr noundef nonnull align 8 dereferenceable(16) %1066)
          to label %9333 unwind label %9536

9333:                                             ; preds = %9332
  %9334 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1076)
          to label %9335 unwind label %9540

9335:                                             ; preds = %9333
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1075, ptr noundef nonnull align 8 dereferenceable(136) %9334)
          to label %9336 unwind label %9540

9336:                                             ; preds = %9335
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %9321, i1 noundef zeroext %9326, ptr noundef %1075)
          to label %9337 unwind label %9544

9337:                                             ; preds = %9336
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1075) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1076) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %1077) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1078) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1079) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1079) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1078) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1076) #11
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1066) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1066) #11
  br label %9555

9338:                                             ; preds = %9225
  %9339 = landingpad { ptr, i32 }
          cleanup
  %9340 = extractvalue { ptr, i32 } %9339, 0
  store ptr %9340, ptr %11, align 8
  %9341 = extractvalue { ptr, i32 } %9339, 1
  store i32 %9341, ptr %12, align 4
  br label %9361

9342:                                             ; preds = %9227
  %9343 = landingpad { ptr, i32 }
          cleanup
  %9344 = extractvalue { ptr, i32 } %9343, 0
  store ptr %9344, ptr %11, align 8
  %9345 = extractvalue { ptr, i32 } %9343, 1
  store i32 %9345, ptr %12, align 4
  br label %9360

9346:                                             ; preds = %9230, %9228
  %9347 = landingpad { ptr, i32 }
          cleanup
  %9348 = extractvalue { ptr, i32 } %9347, 0
  store ptr %9348, ptr %11, align 8
  %9349 = extractvalue { ptr, i32 } %9347, 1
  store i32 %9349, ptr %12, align 4
  br label %9359

9350:                                             ; preds = %9231
  %9351 = landingpad { ptr, i32 }
          cleanup
  %9352 = extractvalue { ptr, i32 } %9351, 0
  store ptr %9352, ptr %11, align 8
  %9353 = extractvalue { ptr, i32 } %9351, 1
  store i32 %9353, ptr %12, align 4
  br label %9358

9354:                                             ; preds = %9232
  %9355 = landingpad { ptr, i32 }
          cleanup
  %9356 = extractvalue { ptr, i32 } %9355, 0
  store ptr %9356, ptr %11, align 8
  %9357 = extractvalue { ptr, i32 } %9355, 1
  store i32 %9357, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1038) #11
  br label %9358

9358:                                             ; preds = %9354, %9350
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1039) #11
  br label %9359

9359:                                             ; preds = %9358, %9346
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1040) #11
  br label %9360

9360:                                             ; preds = %9359, %9342
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1041) #11
  br label %9361

9361:                                             ; preds = %9360, %9338
  call void @llvm.lifetime.end.p0(i64 16, ptr %1040) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1039) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1038) #11
  br label %11057

9362:                                             ; preds = %9238
  %9363 = landingpad { ptr, i32 }
          cleanup
  %9364 = extractvalue { ptr, i32 } %9363, 0
  store ptr %9364, ptr %11, align 8
  %9365 = extractvalue { ptr, i32 } %9363, 1
  store i32 %9365, ptr %12, align 4
  br label %9425

9366:                                             ; preds = %9241
  %9367 = landingpad { ptr, i32 }
          cleanup
  %9368 = extractvalue { ptr, i32 } %9367, 0
  store ptr %9368, ptr %11, align 8
  %9369 = extractvalue { ptr, i32 } %9367, 1
  store i32 %9369, ptr %12, align 4
  br label %9424

9370:                                             ; preds = %9243
  %9371 = landingpad { ptr, i32 }
          cleanup
  %9372 = extractvalue { ptr, i32 } %9371, 0
  store ptr %9372, ptr %11, align 8
  %9373 = extractvalue { ptr, i32 } %9371, 1
  store i32 %9373, ptr %12, align 4
  br label %9423

9374:                                             ; preds = %9244
  %9375 = landingpad { ptr, i32 }
          cleanup
  %9376 = extractvalue { ptr, i32 } %9375, 0
  store ptr %9376, ptr %11, align 8
  %9377 = extractvalue { ptr, i32 } %9375, 1
  store i32 %9377, ptr %12, align 4
  br label %9422

9378:                                             ; preds = %9249
  %9379 = landingpad { ptr, i32 }
          cleanup
  %9380 = extractvalue { ptr, i32 } %9379, 0
  store ptr %9380, ptr %11, align 8
  %9381 = extractvalue { ptr, i32 } %9379, 1
  store i32 %9381, ptr %12, align 4
  br label %9421

9382:                                             ; preds = %9250
  %9383 = landingpad { ptr, i32 }
          cleanup
  %9384 = extractvalue { ptr, i32 } %9383, 0
  store ptr %9384, ptr %11, align 8
  %9385 = extractvalue { ptr, i32 } %9383, 1
  store i32 %9385, ptr %12, align 4
  br label %9420

9386:                                             ; preds = %9251
  %9387 = landingpad { ptr, i32 }
          cleanup
  %9388 = extractvalue { ptr, i32 } %9387, 0
  store ptr %9388, ptr %11, align 8
  %9389 = extractvalue { ptr, i32 } %9387, 1
  store i32 %9389, ptr %12, align 4
  br label %9419

9390:                                             ; preds = %9252
  %9391 = landingpad { ptr, i32 }
          cleanup
  %9392 = extractvalue { ptr, i32 } %9391, 0
  store ptr %9392, ptr %11, align 8
  %9393 = extractvalue { ptr, i32 } %9391, 1
  store i32 %9393, ptr %12, align 4
  br label %9418

9394:                                             ; preds = %9253
  %9395 = landingpad { ptr, i32 }
          cleanup
  %9396 = extractvalue { ptr, i32 } %9395, 0
  store ptr %9396, ptr %11, align 8
  %9397 = extractvalue { ptr, i32 } %9395, 1
  store i32 %9397, ptr %12, align 4
  br label %9417

9398:                                             ; preds = %9254
  %9399 = landingpad { ptr, i32 }
          cleanup
  %9400 = extractvalue { ptr, i32 } %9399, 0
  store ptr %9400, ptr %11, align 8
  %9401 = extractvalue { ptr, i32 } %9399, 1
  store i32 %9401, ptr %12, align 4
  br label %9416

9402:                                             ; preds = %9255
  %9403 = landingpad { ptr, i32 }
          cleanup
  %9404 = extractvalue { ptr, i32 } %9403, 0
  store ptr %9404, ptr %11, align 8
  %9405 = extractvalue { ptr, i32 } %9403, 1
  store i32 %9405, ptr %12, align 4
  br label %9415

9406:                                             ; preds = %9258, %9256
  %9407 = landingpad { ptr, i32 }
          cleanup
  %9408 = extractvalue { ptr, i32 } %9407, 0
  store ptr %9408, ptr %11, align 8
  %9409 = extractvalue { ptr, i32 } %9407, 1
  store i32 %9409, ptr %12, align 4
  br label %9414

9410:                                             ; preds = %9259
  %9411 = landingpad { ptr, i32 }
          cleanup
  %9412 = extractvalue { ptr, i32 } %9411, 0
  store ptr %9412, ptr %11, align 8
  %9413 = extractvalue { ptr, i32 } %9411, 1
  store i32 %9413, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1042) #11
  br label %9414

9414:                                             ; preds = %9410, %9406
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1043) #11
  br label %9415

9415:                                             ; preds = %9414, %9402
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1047) #11
  br label %9416

9416:                                             ; preds = %9415, %9398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1054) #11
  br label %9417

9417:                                             ; preds = %9416, %9394
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1055) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1055) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1048) #11
  br label %9418

9418:                                             ; preds = %9417, %9390
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1049) #11
  br label %9419

9419:                                             ; preds = %9418, %9386
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1052) #11
  br label %9420

9420:                                             ; preds = %9419, %9382
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1053) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1053) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1050) #11
  br label %9421

9421:                                             ; preds = %9420, %9378
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1051) #11
  br label %9422

9422:                                             ; preds = %9421, %9374
  call void @llvm.lifetime.end.p0(i64 16, ptr %1051) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1049) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1047) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1046) #11
  br label %9423

9423:                                             ; preds = %9422, %9370
  call void @llvm.lifetime.end.p0(i64 20, ptr %1046) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1045) #11
  br label %9424

9424:                                             ; preds = %9423, %9366
  call void @llvm.lifetime.end.p0(i64 16, ptr %1045) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1044) #11
  br label %9425

9425:                                             ; preds = %9424, %9362
  call void @llvm.lifetime.end.p0(i64 16, ptr %1044) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1043) #11
  br label %11057

9426:                                             ; preds = %9265
  %9427 = landingpad { ptr, i32 }
          cleanup
  %9428 = extractvalue { ptr, i32 } %9427, 0
  store ptr %9428, ptr %11, align 8
  %9429 = extractvalue { ptr, i32 } %9427, 1
  store i32 %9429, ptr %12, align 4
  br label %9474

9430:                                             ; preds = %9268
  %9431 = landingpad { ptr, i32 }
          cleanup
  %9432 = extractvalue { ptr, i32 } %9431, 0
  store ptr %9432, ptr %11, align 8
  %9433 = extractvalue { ptr, i32 } %9431, 1
  store i32 %9433, ptr %12, align 4
  br label %9473

9434:                                             ; preds = %9270
  %9435 = landingpad { ptr, i32 }
          cleanup
  %9436 = extractvalue { ptr, i32 } %9435, 0
  store ptr %9436, ptr %11, align 8
  %9437 = extractvalue { ptr, i32 } %9435, 1
  store i32 %9437, ptr %12, align 4
  br label %9472

9438:                                             ; preds = %9272
  %9439 = landingpad { ptr, i32 }
          cleanup
  %9440 = extractvalue { ptr, i32 } %9439, 0
  store ptr %9440, ptr %11, align 8
  %9441 = extractvalue { ptr, i32 } %9439, 1
  store i32 %9441, ptr %12, align 4
  br label %9471

9442:                                             ; preds = %9273
  %9443 = landingpad { ptr, i32 }
          cleanup
  %9444 = extractvalue { ptr, i32 } %9443, 0
  store ptr %9444, ptr %11, align 8
  %9445 = extractvalue { ptr, i32 } %9443, 1
  store i32 %9445, ptr %12, align 4
  br label %9470

9446:                                             ; preds = %9274
  %9447 = landingpad { ptr, i32 }
          cleanup
  %9448 = extractvalue { ptr, i32 } %9447, 0
  store ptr %9448, ptr %11, align 8
  %9449 = extractvalue { ptr, i32 } %9447, 1
  store i32 %9449, ptr %12, align 4
  br label %9469

9450:                                             ; preds = %9275
  %9451 = landingpad { ptr, i32 }
          cleanup
  %9452 = extractvalue { ptr, i32 } %9451, 0
  store ptr %9452, ptr %11, align 8
  %9453 = extractvalue { ptr, i32 } %9451, 1
  store i32 %9453, ptr %12, align 4
  br label %9468

9454:                                             ; preds = %9276
  %9455 = landingpad { ptr, i32 }
          cleanup
  %9456 = extractvalue { ptr, i32 } %9455, 0
  store ptr %9456, ptr %11, align 8
  %9457 = extractvalue { ptr, i32 } %9455, 1
  store i32 %9457, ptr %12, align 4
  br label %9467

9458:                                             ; preds = %9279, %9277
  %9459 = landingpad { ptr, i32 }
          cleanup
  %9460 = extractvalue { ptr, i32 } %9459, 0
  store ptr %9460, ptr %11, align 8
  %9461 = extractvalue { ptr, i32 } %9459, 1
  store i32 %9461, ptr %12, align 4
  br label %9466

9462:                                             ; preds = %9280
  %9463 = landingpad { ptr, i32 }
          cleanup
  %9464 = extractvalue { ptr, i32 } %9463, 0
  store ptr %9464, ptr %11, align 8
  %9465 = extractvalue { ptr, i32 } %9463, 1
  store i32 %9465, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1056) #11
  br label %9466

9466:                                             ; preds = %9462, %9458
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1057) #11
  br label %9467

9467:                                             ; preds = %9466, %9454
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1065) #11
  br label %9468

9468:                                             ; preds = %9467, %9450
  call void @llvm.lifetime.end.p0(i64 16, ptr %1065) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1064) #11
  br label %9469

9469:                                             ; preds = %9468, %9446
  call void @llvm.lifetime.end.p0(i64 16, ptr %1064) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1060) #11
  br label %9470

9470:                                             ; preds = %9469, %9442
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1061) #11
  br label %9471

9471:                                             ; preds = %9470, %9438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1062) #11
  br label %9472

9472:                                             ; preds = %9471, %9434
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1063) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1063) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1062) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1061) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1060) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1059) #11
  br label %9473

9473:                                             ; preds = %9472, %9430
  call void @llvm.lifetime.end.p0(i64 16, ptr %1059) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1058) #11
  br label %9474

9474:                                             ; preds = %9473, %9426
  call void @llvm.lifetime.end.p0(i64 16, ptr %1058) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1057) #11
  br label %11057

9475:                                             ; preds = %9288, %9284
  %9476 = landingpad { ptr, i32 }
          cleanup
  %9477 = extractvalue { ptr, i32 } %9476, 0
  store ptr %9477, ptr %11, align 8
  %9478 = extractvalue { ptr, i32 } %9476, 1
  store i32 %9478, ptr %12, align 4
  br label %9554

9479:                                             ; preds = %9323, %9320, %9314, %9308, %9301, %9291, %9289
  %9480 = landingpad { ptr, i32 }
          cleanup
  %9481 = extractvalue { ptr, i32 } %9480, 0
  store ptr %9481, ptr %11, align 8
  %9482 = extractvalue { ptr, i32 } %9480, 1
  store i32 %9482, ptr %12, align 4
  br label %9553

9483:                                             ; preds = %9295
  %9484 = landingpad { ptr, i32 }
          cleanup
  %9485 = extractvalue { ptr, i32 } %9484, 0
  store ptr %9485, ptr %11, align 8
  %9486 = extractvalue { ptr, i32 } %9484, 1
  store i32 %9486, ptr %12, align 4
  br label %9491

9487:                                             ; preds = %9300
  %9488 = landingpad { ptr, i32 }
          cleanup
  %9489 = extractvalue { ptr, i32 } %9488, 0
  store ptr %9489, ptr %11, align 8
  %9490 = extractvalue { ptr, i32 } %9488, 1
  store i32 %9490, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1067) #11
  br label %9491

9491:                                             ; preds = %9487, %9483
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1068) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1068) #11
  br label %9553

9492:                                             ; preds = %9305
  %9493 = landingpad { ptr, i32 }
          cleanup
  %9494 = extractvalue { ptr, i32 } %9493, 0
  store ptr %9494, ptr %11, align 8
  %9495 = extractvalue { ptr, i32 } %9493, 1
  store i32 %9495, ptr %12, align 4
  br label %9505

9496:                                             ; preds = %9306
  %9497 = landingpad { ptr, i32 }
          cleanup
  %9498 = extractvalue { ptr, i32 } %9497, 0
  store ptr %9498, ptr %11, align 8
  %9499 = extractvalue { ptr, i32 } %9497, 1
  store i32 %9499, ptr %12, align 4
  br label %9504

9500:                                             ; preds = %9307
  %9501 = landingpad { ptr, i32 }
          cleanup
  %9502 = extractvalue { ptr, i32 } %9501, 0
  store ptr %9502, ptr %11, align 8
  %9503 = extractvalue { ptr, i32 } %9501, 1
  store i32 %9503, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1069) #11
  br label %9504

9504:                                             ; preds = %9500, %9496
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1070) #11
  br label %9505

9505:                                             ; preds = %9504, %9492
  call void @llvm.lifetime.end.p0(i64 16, ptr %1069) #11
  br label %9553

9506:                                             ; preds = %9312
  %9507 = landingpad { ptr, i32 }
          cleanup
  %9508 = extractvalue { ptr, i32 } %9507, 0
  store ptr %9508, ptr %11, align 8
  %9509 = extractvalue { ptr, i32 } %9507, 1
  store i32 %9509, ptr %12, align 4
  br label %9514

9510:                                             ; preds = %9313
  %9511 = landingpad { ptr, i32 }
          cleanup
  %9512 = extractvalue { ptr, i32 } %9511, 0
  store ptr %9512, ptr %11, align 8
  %9513 = extractvalue { ptr, i32 } %9511, 1
  store i32 %9513, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1071) #11
  br label %9514

9514:                                             ; preds = %9510, %9506
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1072) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1072) #11
  br label %9553

9515:                                             ; preds = %9318
  %9516 = landingpad { ptr, i32 }
          cleanup
  %9517 = extractvalue { ptr, i32 } %9516, 0
  store ptr %9517, ptr %11, align 8
  %9518 = extractvalue { ptr, i32 } %9516, 1
  store i32 %9518, ptr %12, align 4
  br label %9523

9519:                                             ; preds = %9319
  %9520 = landingpad { ptr, i32 }
          cleanup
  %9521 = extractvalue { ptr, i32 } %9520, 0
  store ptr %9521, ptr %11, align 8
  %9522 = extractvalue { ptr, i32 } %9520, 1
  store i32 %9522, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1073) #11
  br label %9523

9523:                                             ; preds = %9519, %9515
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1074) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1074) #11
  br label %9553

9524:                                             ; preds = %9325
  %9525 = landingpad { ptr, i32 }
          cleanup
  %9526 = extractvalue { ptr, i32 } %9525, 0
  store ptr %9526, ptr %11, align 8
  %9527 = extractvalue { ptr, i32 } %9525, 1
  store i32 %9527, ptr %12, align 4
  br label %9552

9528:                                             ; preds = %9330
  %9529 = landingpad { ptr, i32 }
          cleanup
  %9530 = extractvalue { ptr, i32 } %9529, 0
  store ptr %9530, ptr %11, align 8
  %9531 = extractvalue { ptr, i32 } %9529, 1
  store i32 %9531, ptr %12, align 4
  br label %9551

9532:                                             ; preds = %9331
  %9533 = landingpad { ptr, i32 }
          cleanup
  %9534 = extractvalue { ptr, i32 } %9533, 0
  store ptr %9534, ptr %11, align 8
  %9535 = extractvalue { ptr, i32 } %9533, 1
  store i32 %9535, ptr %12, align 4
  br label %9550

9536:                                             ; preds = %9332
  %9537 = landingpad { ptr, i32 }
          cleanup
  %9538 = extractvalue { ptr, i32 } %9537, 0
  store ptr %9538, ptr %11, align 8
  %9539 = extractvalue { ptr, i32 } %9537, 1
  store i32 %9539, ptr %12, align 4
  br label %9549

9540:                                             ; preds = %9335, %9333
  %9541 = landingpad { ptr, i32 }
          cleanup
  %9542 = extractvalue { ptr, i32 } %9541, 0
  store ptr %9542, ptr %11, align 8
  %9543 = extractvalue { ptr, i32 } %9541, 1
  store i32 %9543, ptr %12, align 4
  br label %9548

9544:                                             ; preds = %9336
  %9545 = landingpad { ptr, i32 }
          cleanup
  %9546 = extractvalue { ptr, i32 } %9545, 0
  store ptr %9546, ptr %11, align 8
  %9547 = extractvalue { ptr, i32 } %9545, 1
  store i32 %9547, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1075) #11
  br label %9548

9548:                                             ; preds = %9544, %9540
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1076) #11
  br label %9549

9549:                                             ; preds = %9548, %9536
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %1077) #11
  br label %9550

9550:                                             ; preds = %9549, %9532
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1078) #11
  br label %9551

9551:                                             ; preds = %9550, %9528
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1079) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1079) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1078) #11
  br label %9552

9552:                                             ; preds = %9551, %9524
  call void @llvm.lifetime.end.p0(i64 16, ptr %1076) #11
  br label %9553

9553:                                             ; preds = %9552, %9523, %9514, %9505, %9491, %9479
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1066) #11
  br label %9554

9554:                                             ; preds = %9553, %9475
  call void @llvm.lifetime.end.p0(i64 16, ptr %1066) #11
  br label %11057

9555:                                             ; preds = %9337, %9281
  %9556 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %9557 = trunc i8 %9556 to i1
  br i1 %9557, label %9966, label %9558

9558:                                             ; preds = %9555
  call void @llvm.lifetime.start.p0(i64 16, ptr %1080) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1080)
          to label %9559 unwind label %9573

9559:                                             ; preds = %9558
  %9560 = load i32, ptr %8, align 4, !tbaa !9
  %9561 = icmp eq i32 %9560, 1
  br i1 %9561, label %9562, label %9599

9562:                                             ; preds = %9559
  %9563 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
          to label %9564 unwind label %9577

9564:                                             ; preds = %9562
  call void @llvm.lifetime.start.p0(i64 16, ptr %1081) #11
  %9565 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA4_cA7_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1081, ptr noundef nonnull align 8 dereferenceable(264) %9565, ptr noundef nonnull align 1 dereferenceable(4) @.str.165, ptr noundef nonnull align 1 dereferenceable(7) @.str.174)
          to label %9566 unwind label %9581

9566:                                             ; preds = %9564
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9563, ptr noundef nonnull align 8 dereferenceable(16) %1081)
          to label %9567 unwind label %9585

9567:                                             ; preds = %9566
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1081) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1081) #11
  %9568 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
          to label %9569 unwind label %9577

9569:                                             ; preds = %9567
  call void @llvm.lifetime.start.p0(i64 16, ptr %1082) #11
  %9570 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext2qqIJA4_cA31_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1082, ptr noundef nonnull align 8 dereferenceable(264) %9570, ptr noundef nonnull align 1 dereferenceable(4) @.str.165, ptr noundef nonnull align 1 dereferenceable(31) @.str.166)
          to label %9571 unwind label %9590

9571:                                             ; preds = %9569
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %9568, ptr noundef nonnull align 8 dereferenceable(16) %1082)
          to label %9572 unwind label %9594

9572:                                             ; preds = %9571
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1082) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1082) #11
  br label %9599

9573:                                             ; preds = %9558
  %9574 = landingpad { ptr, i32 }
          cleanup
  %9575 = extractvalue { ptr, i32 } %9574, 0
  store ptr %9575, ptr %11, align 8
  %9576 = extractvalue { ptr, i32 } %9574, 1
  store i32 %9576, ptr %12, align 4
  br label %9965

9577:                                             ; preds = %9625, %9622, %9602, %9599, %9567, %9562
  %9578 = landingpad { ptr, i32 }
          cleanup
  %9579 = extractvalue { ptr, i32 } %9578, 0
  store ptr %9579, ptr %11, align 8
  %9580 = extractvalue { ptr, i32 } %9578, 1
  store i32 %9580, ptr %12, align 4
  br label %9964

9581:                                             ; preds = %9564
  %9582 = landingpad { ptr, i32 }
          cleanup
  %9583 = extractvalue { ptr, i32 } %9582, 0
  store ptr %9583, ptr %11, align 8
  %9584 = extractvalue { ptr, i32 } %9582, 1
  store i32 %9584, ptr %12, align 4
  br label %9589

9585:                                             ; preds = %9566
  %9586 = landingpad { ptr, i32 }
          cleanup
  %9587 = extractvalue { ptr, i32 } %9586, 0
  store ptr %9587, ptr %11, align 8
  %9588 = extractvalue { ptr, i32 } %9586, 1
  store i32 %9588, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1081) #11
  br label %9589

9589:                                             ; preds = %9585, %9581
  call void @llvm.lifetime.end.p0(i64 16, ptr %1081) #11
  br label %9964

9590:                                             ; preds = %9569
  %9591 = landingpad { ptr, i32 }
          cleanup
  %9592 = extractvalue { ptr, i32 } %9591, 0
  store ptr %9592, ptr %11, align 8
  %9593 = extractvalue { ptr, i32 } %9591, 1
  store i32 %9593, ptr %12, align 4
  br label %9598

9594:                                             ; preds = %9571
  %9595 = landingpad { ptr, i32 }
          cleanup
  %9596 = extractvalue { ptr, i32 } %9595, 0
  store ptr %9596, ptr %11, align 8
  %9597 = extractvalue { ptr, i32 } %9595, 1
  store i32 %9597, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1082) #11
  br label %9598

9598:                                             ; preds = %9594, %9590
  call void @llvm.lifetime.end.p0(i64 16, ptr %1082) #11
  br label %9964

9599:                                             ; preds = %9572, %9559
  %9600 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9601 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9602 unwind label %9577

9602:                                             ; preds = %9599
  %9603 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %9601)
          to label %9604 unwind label %9577

9604:                                             ; preds = %9602
  %9605 = icmp sgt i64 %9603, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1084) #11
  %9606 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1085) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1085)
          to label %9607 unwind label %9660

9607:                                             ; preds = %9604
  call void @llvm.lifetime.start.p0(i64 20, ptr %1086) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1087) #11
  %9608 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1088) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1089)
          to label %9609 unwind label %9664

9609:                                             ; preds = %9607
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1090)
          to label %9610 unwind label %9668

9610:                                             ; preds = %9609
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1088, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1089, ptr noundef %1090)
          to label %9611 unwind label %9672

9611:                                             ; preds = %9610
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1087, ptr noundef nonnull align 8 dereferenceable(264) %9608, ptr noundef nonnull align 8 dereferenceable(16) %1088, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9612 unwind label %9676

9612:                                             ; preds = %9611
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1086, ptr noundef nonnull align 8 dereferenceable(16) %1087)
          to label %9613 unwind label %9680

9613:                                             ; preds = %9612
  call void @llvm.lifetime.start.p0(i64 16, ptr %1091) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1092)
          to label %9614 unwind label %9684

9614:                                             ; preds = %9613
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1093)
          to label %9615 unwind label %9688

9615:                                             ; preds = %9614
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1091, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1092, ptr noundef %1093)
          to label %9616 unwind label %9692

9616:                                             ; preds = %9615
  call void @llvm.lifetime.start.p0(i64 16, ptr %1094) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1094)
          to label %9617 unwind label %9696

9617:                                             ; preds = %9616
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1084, ptr noundef nonnull align 8 dereferenceable(264) %9606, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1085, ptr noundef nonnull align 8 dereferenceable(16) %1080, ptr noundef nonnull align 4 dereferenceable(20) %1086, ptr noundef nonnull align 8 dereferenceable(16) %1091, ptr noundef nonnull align 8 dereferenceable(16) %301, ptr noundef nonnull align 8 dereferenceable(16) %1094, ptr noundef nonnull align 8 dereferenceable(16) %302, i1 noundef zeroext false)
          to label %9618 unwind label %9700

9618:                                             ; preds = %9617
  %9619 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1084)
          to label %9620 unwind label %9704

9620:                                             ; preds = %9618
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1083, ptr noundef nonnull align 8 dereferenceable(136) %9619)
          to label %9621 unwind label %9704

9621:                                             ; preds = %9620
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %9600, i1 noundef zeroext %9605, ptr noundef %1083)
          to label %9622 unwind label %9708

9622:                                             ; preds = %9621
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1083) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1084) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1094) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1094) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1091) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1093) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1092) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1091) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1086) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1087) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1088) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1090) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1089) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1088) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1087) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1086) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1085) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1085) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1084) #11
  %9623 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9624 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9625 unwind label %9577

9625:                                             ; preds = %9622
  %9626 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %9624)
          to label %9627 unwind label %9577

9627:                                             ; preds = %9625
  %9628 = icmp sgt i64 %9626, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1096) #11
  %9629 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1097) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1097)
          to label %9630 unwind label %9724

9630:                                             ; preds = %9627
  call void @llvm.lifetime.start.p0(i64 20, ptr %1098) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1099) #11
  %9631 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1100) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1101)
          to label %9632 unwind label %9728

9632:                                             ; preds = %9630
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1102)
          to label %9633 unwind label %9732

9633:                                             ; preds = %9632
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1100, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1101, ptr noundef %1102)
          to label %9634 unwind label %9736

9634:                                             ; preds = %9633
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1099, ptr noundef nonnull align 8 dereferenceable(264) %9631, ptr noundef nonnull align 8 dereferenceable(16) %1100, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9635 unwind label %9740

9635:                                             ; preds = %9634
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1098, ptr noundef nonnull align 8 dereferenceable(16) %1099)
          to label %9636 unwind label %9744

9636:                                             ; preds = %9635
  call void @llvm.lifetime.start.p0(i64 16, ptr %1103) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1104)
          to label %9637 unwind label %9748

9637:                                             ; preds = %9636
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1105)
          to label %9638 unwind label %9752

9638:                                             ; preds = %9637
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1103, i32 noundef 6, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1104, ptr noundef %1105)
          to label %9639 unwind label %9756

9639:                                             ; preds = %9638
  call void @llvm.lifetime.start.p0(i64 16, ptr %1106) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1106)
          to label %9640 unwind label %9760

9640:                                             ; preds = %9639
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1096, ptr noundef nonnull align 8 dereferenceable(264) %9629, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1097, ptr noundef nonnull align 8 dereferenceable(16) %1080, ptr noundef nonnull align 4 dereferenceable(20) %1098, ptr noundef nonnull align 8 dereferenceable(16) %1103, ptr noundef nonnull align 8 dereferenceable(16) %320, ptr noundef nonnull align 8 dereferenceable(16) %1106, ptr noundef nonnull align 8 dereferenceable(16) %325, i1 noundef zeroext false)
          to label %9641 unwind label %9764

9641:                                             ; preds = %9640
  %9642 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1096)
          to label %9643 unwind label %9768

9643:                                             ; preds = %9641
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1095, ptr noundef nonnull align 8 dereferenceable(136) %9642)
          to label %9644 unwind label %9768

9644:                                             ; preds = %9643
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %9623, i1 noundef zeroext %9628, ptr noundef %1095)
          to label %9645 unwind label %9772

9645:                                             ; preds = %9644
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1095) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1096) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1106) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1106) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1103) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1105) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1104) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1103) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1098) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1099) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1100) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1102) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1101) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1100) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1099) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1098) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1097) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1097) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1096) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1107) #11
  %9646 = load ptr, ptr %267, align 8, !tbaa !5
  %9647 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %9646)
          to label %9648 unwind label %9788

9648:                                             ; preds = %9645
  store ptr %9647, ptr %1107, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1108) #11
  %9649 = load ptr, ptr %1107, align 8, !tbaa !5
  %9650 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %9649)
          to label %9651 unwind label %9792

9651:                                             ; preds = %9648
  store ptr %9650, ptr %1108, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1109) #11
  %9652 = load ptr, ptr %1107, align 8, !tbaa !5
  %9653 = invoke noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %9652)
          to label %9654 unwind label %9796

9654:                                             ; preds = %9651
  store ptr %9653, ptr %1109, align 8, !tbaa !5
  br label %9655

9655:                                             ; preds = %9843, %9654
  %9656 = load ptr, ptr %1108, align 8, !tbaa !5
  %9657 = load ptr, ptr %1109, align 8, !tbaa !5
  %9658 = icmp ne ptr %9656, %9657
  br i1 %9658, label %9800, label %9659

9659:                                             ; preds = %9655
  store i32 69, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1107) #11
  br label %9963

9660:                                             ; preds = %9604
  %9661 = landingpad { ptr, i32 }
          cleanup
  %9662 = extractvalue { ptr, i32 } %9661, 0
  store ptr %9662, ptr %11, align 8
  %9663 = extractvalue { ptr, i32 } %9661, 1
  store i32 %9663, ptr %12, align 4
  br label %9723

9664:                                             ; preds = %9607
  %9665 = landingpad { ptr, i32 }
          cleanup
  %9666 = extractvalue { ptr, i32 } %9665, 0
  store ptr %9666, ptr %11, align 8
  %9667 = extractvalue { ptr, i32 } %9665, 1
  store i32 %9667, ptr %12, align 4
  br label %9722

9668:                                             ; preds = %9609
  %9669 = landingpad { ptr, i32 }
          cleanup
  %9670 = extractvalue { ptr, i32 } %9669, 0
  store ptr %9670, ptr %11, align 8
  %9671 = extractvalue { ptr, i32 } %9669, 1
  store i32 %9671, ptr %12, align 4
  br label %9721

9672:                                             ; preds = %9610
  %9673 = landingpad { ptr, i32 }
          cleanup
  %9674 = extractvalue { ptr, i32 } %9673, 0
  store ptr %9674, ptr %11, align 8
  %9675 = extractvalue { ptr, i32 } %9673, 1
  store i32 %9675, ptr %12, align 4
  br label %9720

9676:                                             ; preds = %9611
  %9677 = landingpad { ptr, i32 }
          cleanup
  %9678 = extractvalue { ptr, i32 } %9677, 0
  store ptr %9678, ptr %11, align 8
  %9679 = extractvalue { ptr, i32 } %9677, 1
  store i32 %9679, ptr %12, align 4
  br label %9719

9680:                                             ; preds = %9612
  %9681 = landingpad { ptr, i32 }
          cleanup
  %9682 = extractvalue { ptr, i32 } %9681, 0
  store ptr %9682, ptr %11, align 8
  %9683 = extractvalue { ptr, i32 } %9681, 1
  store i32 %9683, ptr %12, align 4
  br label %9718

9684:                                             ; preds = %9613
  %9685 = landingpad { ptr, i32 }
          cleanup
  %9686 = extractvalue { ptr, i32 } %9685, 0
  store ptr %9686, ptr %11, align 8
  %9687 = extractvalue { ptr, i32 } %9685, 1
  store i32 %9687, ptr %12, align 4
  br label %9717

9688:                                             ; preds = %9614
  %9689 = landingpad { ptr, i32 }
          cleanup
  %9690 = extractvalue { ptr, i32 } %9689, 0
  store ptr %9690, ptr %11, align 8
  %9691 = extractvalue { ptr, i32 } %9689, 1
  store i32 %9691, ptr %12, align 4
  br label %9716

9692:                                             ; preds = %9615
  %9693 = landingpad { ptr, i32 }
          cleanup
  %9694 = extractvalue { ptr, i32 } %9693, 0
  store ptr %9694, ptr %11, align 8
  %9695 = extractvalue { ptr, i32 } %9693, 1
  store i32 %9695, ptr %12, align 4
  br label %9715

9696:                                             ; preds = %9616
  %9697 = landingpad { ptr, i32 }
          cleanup
  %9698 = extractvalue { ptr, i32 } %9697, 0
  store ptr %9698, ptr %11, align 8
  %9699 = extractvalue { ptr, i32 } %9697, 1
  store i32 %9699, ptr %12, align 4
  br label %9714

9700:                                             ; preds = %9617
  %9701 = landingpad { ptr, i32 }
          cleanup
  %9702 = extractvalue { ptr, i32 } %9701, 0
  store ptr %9702, ptr %11, align 8
  %9703 = extractvalue { ptr, i32 } %9701, 1
  store i32 %9703, ptr %12, align 4
  br label %9713

9704:                                             ; preds = %9620, %9618
  %9705 = landingpad { ptr, i32 }
          cleanup
  %9706 = extractvalue { ptr, i32 } %9705, 0
  store ptr %9706, ptr %11, align 8
  %9707 = extractvalue { ptr, i32 } %9705, 1
  store i32 %9707, ptr %12, align 4
  br label %9712

9708:                                             ; preds = %9621
  %9709 = landingpad { ptr, i32 }
          cleanup
  %9710 = extractvalue { ptr, i32 } %9709, 0
  store ptr %9710, ptr %11, align 8
  %9711 = extractvalue { ptr, i32 } %9709, 1
  store i32 %9711, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1083) #11
  br label %9712

9712:                                             ; preds = %9708, %9704
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1084) #11
  br label %9713

9713:                                             ; preds = %9712, %9700
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1094) #11
  br label %9714

9714:                                             ; preds = %9713, %9696
  call void @llvm.lifetime.end.p0(i64 16, ptr %1094) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1091) #11
  br label %9715

9715:                                             ; preds = %9714, %9692
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1093) #11
  br label %9716

9716:                                             ; preds = %9715, %9688
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1092) #11
  br label %9717

9717:                                             ; preds = %9716, %9684
  call void @llvm.lifetime.end.p0(i64 16, ptr %1091) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1086) #11
  br label %9718

9718:                                             ; preds = %9717, %9680
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1087) #11
  br label %9719

9719:                                             ; preds = %9718, %9676
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1088) #11
  br label %9720

9720:                                             ; preds = %9719, %9672
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1090) #11
  br label %9721

9721:                                             ; preds = %9720, %9668
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1089) #11
  br label %9722

9722:                                             ; preds = %9721, %9664
  call void @llvm.lifetime.end.p0(i64 16, ptr %1088) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1087) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1086) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1085) #11
  br label %9723

9723:                                             ; preds = %9722, %9660
  call void @llvm.lifetime.end.p0(i64 16, ptr %1085) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1084) #11
  br label %9964

9724:                                             ; preds = %9627
  %9725 = landingpad { ptr, i32 }
          cleanup
  %9726 = extractvalue { ptr, i32 } %9725, 0
  store ptr %9726, ptr %11, align 8
  %9727 = extractvalue { ptr, i32 } %9725, 1
  store i32 %9727, ptr %12, align 4
  br label %9787

9728:                                             ; preds = %9630
  %9729 = landingpad { ptr, i32 }
          cleanup
  %9730 = extractvalue { ptr, i32 } %9729, 0
  store ptr %9730, ptr %11, align 8
  %9731 = extractvalue { ptr, i32 } %9729, 1
  store i32 %9731, ptr %12, align 4
  br label %9786

9732:                                             ; preds = %9632
  %9733 = landingpad { ptr, i32 }
          cleanup
  %9734 = extractvalue { ptr, i32 } %9733, 0
  store ptr %9734, ptr %11, align 8
  %9735 = extractvalue { ptr, i32 } %9733, 1
  store i32 %9735, ptr %12, align 4
  br label %9785

9736:                                             ; preds = %9633
  %9737 = landingpad { ptr, i32 }
          cleanup
  %9738 = extractvalue { ptr, i32 } %9737, 0
  store ptr %9738, ptr %11, align 8
  %9739 = extractvalue { ptr, i32 } %9737, 1
  store i32 %9739, ptr %12, align 4
  br label %9784

9740:                                             ; preds = %9634
  %9741 = landingpad { ptr, i32 }
          cleanup
  %9742 = extractvalue { ptr, i32 } %9741, 0
  store ptr %9742, ptr %11, align 8
  %9743 = extractvalue { ptr, i32 } %9741, 1
  store i32 %9743, ptr %12, align 4
  br label %9783

9744:                                             ; preds = %9635
  %9745 = landingpad { ptr, i32 }
          cleanup
  %9746 = extractvalue { ptr, i32 } %9745, 0
  store ptr %9746, ptr %11, align 8
  %9747 = extractvalue { ptr, i32 } %9745, 1
  store i32 %9747, ptr %12, align 4
  br label %9782

9748:                                             ; preds = %9636
  %9749 = landingpad { ptr, i32 }
          cleanup
  %9750 = extractvalue { ptr, i32 } %9749, 0
  store ptr %9750, ptr %11, align 8
  %9751 = extractvalue { ptr, i32 } %9749, 1
  store i32 %9751, ptr %12, align 4
  br label %9781

9752:                                             ; preds = %9637
  %9753 = landingpad { ptr, i32 }
          cleanup
  %9754 = extractvalue { ptr, i32 } %9753, 0
  store ptr %9754, ptr %11, align 8
  %9755 = extractvalue { ptr, i32 } %9753, 1
  store i32 %9755, ptr %12, align 4
  br label %9780

9756:                                             ; preds = %9638
  %9757 = landingpad { ptr, i32 }
          cleanup
  %9758 = extractvalue { ptr, i32 } %9757, 0
  store ptr %9758, ptr %11, align 8
  %9759 = extractvalue { ptr, i32 } %9757, 1
  store i32 %9759, ptr %12, align 4
  br label %9779

9760:                                             ; preds = %9639
  %9761 = landingpad { ptr, i32 }
          cleanup
  %9762 = extractvalue { ptr, i32 } %9761, 0
  store ptr %9762, ptr %11, align 8
  %9763 = extractvalue { ptr, i32 } %9761, 1
  store i32 %9763, ptr %12, align 4
  br label %9778

9764:                                             ; preds = %9640
  %9765 = landingpad { ptr, i32 }
          cleanup
  %9766 = extractvalue { ptr, i32 } %9765, 0
  store ptr %9766, ptr %11, align 8
  %9767 = extractvalue { ptr, i32 } %9765, 1
  store i32 %9767, ptr %12, align 4
  br label %9777

9768:                                             ; preds = %9643, %9641
  %9769 = landingpad { ptr, i32 }
          cleanup
  %9770 = extractvalue { ptr, i32 } %9769, 0
  store ptr %9770, ptr %11, align 8
  %9771 = extractvalue { ptr, i32 } %9769, 1
  store i32 %9771, ptr %12, align 4
  br label %9776

9772:                                             ; preds = %9644
  %9773 = landingpad { ptr, i32 }
          cleanup
  %9774 = extractvalue { ptr, i32 } %9773, 0
  store ptr %9774, ptr %11, align 8
  %9775 = extractvalue { ptr, i32 } %9773, 1
  store i32 %9775, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1095) #11
  br label %9776

9776:                                             ; preds = %9772, %9768
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1096) #11
  br label %9777

9777:                                             ; preds = %9776, %9764
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1106) #11
  br label %9778

9778:                                             ; preds = %9777, %9760
  call void @llvm.lifetime.end.p0(i64 16, ptr %1106) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1103) #11
  br label %9779

9779:                                             ; preds = %9778, %9756
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1105) #11
  br label %9780

9780:                                             ; preds = %9779, %9752
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1104) #11
  br label %9781

9781:                                             ; preds = %9780, %9748
  call void @llvm.lifetime.end.p0(i64 16, ptr %1103) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1098) #11
  br label %9782

9782:                                             ; preds = %9781, %9744
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1099) #11
  br label %9783

9783:                                             ; preds = %9782, %9740
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1100) #11
  br label %9784

9784:                                             ; preds = %9783, %9736
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1102) #11
  br label %9785

9785:                                             ; preds = %9784, %9732
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1101) #11
  br label %9786

9786:                                             ; preds = %9785, %9728
  call void @llvm.lifetime.end.p0(i64 16, ptr %1100) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1099) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1098) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1097) #11
  br label %9787

9787:                                             ; preds = %9786, %9724
  call void @llvm.lifetime.end.p0(i64 16, ptr %1097) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1096) #11
  br label %9964

9788:                                             ; preds = %9645
  %9789 = landingpad { ptr, i32 }
          cleanup
  %9790 = extractvalue { ptr, i32 } %9789, 0
  store ptr %9790, ptr %11, align 8
  %9791 = extractvalue { ptr, i32 } %9789, 1
  store i32 %9791, ptr %12, align 4
  br label %9962

9792:                                             ; preds = %9648
  %9793 = landingpad { ptr, i32 }
          cleanup
  %9794 = extractvalue { ptr, i32 } %9793, 0
  store ptr %9794, ptr %11, align 8
  %9795 = extractvalue { ptr, i32 } %9793, 1
  store i32 %9795, ptr %12, align 4
  br label %9961

9796:                                             ; preds = %9651
  %9797 = landingpad { ptr, i32 }
          cleanup
  %9798 = extractvalue { ptr, i32 } %9797, 0
  store ptr %9798, ptr %11, align 8
  %9799 = extractvalue { ptr, i32 } %9797, 1
  store i32 %9799, ptr %12, align 4
  br label %9960

9800:                                             ; preds = %9655
  call void @llvm.lifetime.start.p0(i64 48, ptr %1110) #11
  %9801 = load ptr, ptr %1108, align 8, !tbaa !5
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %1110, ptr noundef nonnull align 8 dereferenceable(48) %9801)
          to label %9802 unwind label %9846

9802:                                             ; preds = %9800
  call void @llvm.lifetime.start.p0(i64 32, ptr %1111) #11
  %9803 = getelementptr inbounds %"struct.std::pair.109", ptr %1110, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1111, ptr noundef nonnull align 8 dereferenceable(32) %9803)
          to label %9804 unwind label %9850

9804:                                             ; preds = %9802
  %9805 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9806 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9807 unwind label %9854

9807:                                             ; preds = %9804
  %9808 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %9806)
          to label %9809 unwind label %9854

9809:                                             ; preds = %9807
  %9810 = icmp sgt i64 %9808, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1113) #11
  %9811 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1114) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1114)
          to label %9812 unwind label %9858

9812:                                             ; preds = %9809
  call void @llvm.lifetime.start.p0(i64 16, ptr %1115) #11
  %9813 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1115, i32 noundef %9813, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %9814 unwind label %9862

9814:                                             ; preds = %9812
  call void @llvm.lifetime.start.p0(i64 20, ptr %1116) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1117) #11
  %9815 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1118) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1119)
          to label %9816 unwind label %9866

9816:                                             ; preds = %9814
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1120)
          to label %9817 unwind label %9870

9817:                                             ; preds = %9816
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1118, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1119, ptr noundef %1120)
          to label %9818 unwind label %9874

9818:                                             ; preds = %9817
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1117, ptr noundef nonnull align 8 dereferenceable(264) %9815, ptr noundef nonnull align 8 dereferenceable(16) %1118, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9819 unwind label %9878

9819:                                             ; preds = %9818
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1116, ptr noundef nonnull align 8 dereferenceable(16) %1117)
          to label %9820 unwind label %9882

9820:                                             ; preds = %9819
  call void @llvm.lifetime.start.p0(i64 16, ptr %1121) #11
  %9821 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %9822 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1123) #11
  %9823 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1125) #11
  %9824 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %1125, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(264) %9824)
          to label %9825 unwind label %9886

9825:                                             ; preds = %9820
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1124, ptr noundef nonnull align 8 dereferenceable(16) %1125)
          to label %9826 unwind label %9890

9826:                                             ; preds = %9825
  call void @llvm.lifetime.start.p0(i64 1, ptr %1127) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1127) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1126, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %1127)
          to label %9827 unwind label %9894

9827:                                             ; preds = %9826
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1123, ptr noundef nonnull align 8 dereferenceable(264) %9823, ptr noundef %1124, ptr noundef %1126)
          to label %9828 unwind label %9898

9828:                                             ; preds = %9827
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1122, ptr noundef nonnull align 8 dereferenceable(264) %9822, ptr noundef nonnull align 8 dereferenceable(16) %1123, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %9829 unwind label %9902

9829:                                             ; preds = %9828
  call void @llvm.lifetime.start.p0(i64 32, ptr %1129) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1130) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1130) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1129, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %1130)
          to label %9830 unwind label %9906

9830:                                             ; preds = %9829
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %1128, ptr noundef nonnull align 8 dereferenceable(32) %1129, ptr noundef nonnull align 8 dereferenceable(32) %1111)
          to label %9831 unwind label %9910

9831:                                             ; preds = %9830
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1121, ptr noundef nonnull align 8 dereferenceable(264) %9821, ptr noundef %1122, ptr noundef %1128)
          to label %9832 unwind label %9914

9832:                                             ; preds = %9831
  %9833 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %331, ptr noundef nonnull align 8 dereferenceable(32) %1111)
          to label %9834 unwind label %9918

9834:                                             ; preds = %9832
  call void @llvm.lifetime.start.p0(i64 16, ptr %1131) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1131)
          to label %9835 unwind label %9922

9835:                                             ; preds = %9834
  %9836 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %333, ptr noundef nonnull align 8 dereferenceable(32) %1111)
          to label %9837 unwind label %9926

9837:                                             ; preds = %9835
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1113, ptr noundef nonnull align 8 dereferenceable(264) %9811, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1114, ptr noundef nonnull align 8 dereferenceable(16) %1115, ptr noundef nonnull align 4 dereferenceable(20) %1116, ptr noundef nonnull align 8 dereferenceable(16) %1121, ptr noundef nonnull align 8 dereferenceable(16) %9833, ptr noundef nonnull align 8 dereferenceable(16) %1131, ptr noundef nonnull align 8 dereferenceable(16) %9836, i1 noundef zeroext false)
          to label %9838 unwind label %9926

9838:                                             ; preds = %9837
  %9839 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1113)
          to label %9840 unwind label %9930

9840:                                             ; preds = %9838
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1112, ptr noundef nonnull align 8 dereferenceable(136) %9839)
          to label %9841 unwind label %9930

9841:                                             ; preds = %9840
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %9805, i1 noundef zeroext %9810, ptr noundef %1112)
          to label %9842 unwind label %9934

9842:                                             ; preds = %9841
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1112) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1113) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1131) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1131) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1121) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1128) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1129) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1130) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1130) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1129) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1122) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1123) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1126) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1127) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1127) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1124) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1125) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1125) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1123) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1121) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1116) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1117) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1118) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1120) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1119) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1118) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1117) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1116) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1115) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1115) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1114) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1114) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1113) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1111) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1111) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %1110) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %1110) #11
  br label %9843

9843:                                             ; preds = %9842
  %9844 = load ptr, ptr %1108, align 8, !tbaa !5
  %9845 = getelementptr inbounds %"struct.std::pair.109", ptr %9844, i32 1
  store ptr %9845, ptr %1108, align 8, !tbaa !5
  br label %9655

9846:                                             ; preds = %9800
  %9847 = landingpad { ptr, i32 }
          cleanup
  %9848 = extractvalue { ptr, i32 } %9847, 0
  store ptr %9848, ptr %11, align 8
  %9849 = extractvalue { ptr, i32 } %9847, 1
  store i32 %9849, ptr %12, align 4
  br label %9959

9850:                                             ; preds = %9802
  %9851 = landingpad { ptr, i32 }
          cleanup
  %9852 = extractvalue { ptr, i32 } %9851, 0
  store ptr %9852, ptr %11, align 8
  %9853 = extractvalue { ptr, i32 } %9851, 1
  store i32 %9853, ptr %12, align 4
  br label %9958

9854:                                             ; preds = %9807, %9804
  %9855 = landingpad { ptr, i32 }
          cleanup
  %9856 = extractvalue { ptr, i32 } %9855, 0
  store ptr %9856, ptr %11, align 8
  %9857 = extractvalue { ptr, i32 } %9855, 1
  store i32 %9857, ptr %12, align 4
  br label %9957

9858:                                             ; preds = %9809
  %9859 = landingpad { ptr, i32 }
          cleanup
  %9860 = extractvalue { ptr, i32 } %9859, 0
  store ptr %9860, ptr %11, align 8
  %9861 = extractvalue { ptr, i32 } %9859, 1
  store i32 %9861, ptr %12, align 4
  br label %9956

9862:                                             ; preds = %9812
  %9863 = landingpad { ptr, i32 }
          cleanup
  %9864 = extractvalue { ptr, i32 } %9863, 0
  store ptr %9864, ptr %11, align 8
  %9865 = extractvalue { ptr, i32 } %9863, 1
  store i32 %9865, ptr %12, align 4
  br label %9955

9866:                                             ; preds = %9814
  %9867 = landingpad { ptr, i32 }
          cleanup
  %9868 = extractvalue { ptr, i32 } %9867, 0
  store ptr %9868, ptr %11, align 8
  %9869 = extractvalue { ptr, i32 } %9867, 1
  store i32 %9869, ptr %12, align 4
  br label %9954

9870:                                             ; preds = %9816
  %9871 = landingpad { ptr, i32 }
          cleanup
  %9872 = extractvalue { ptr, i32 } %9871, 0
  store ptr %9872, ptr %11, align 8
  %9873 = extractvalue { ptr, i32 } %9871, 1
  store i32 %9873, ptr %12, align 4
  br label %9953

9874:                                             ; preds = %9817
  %9875 = landingpad { ptr, i32 }
          cleanup
  %9876 = extractvalue { ptr, i32 } %9875, 0
  store ptr %9876, ptr %11, align 8
  %9877 = extractvalue { ptr, i32 } %9875, 1
  store i32 %9877, ptr %12, align 4
  br label %9952

9878:                                             ; preds = %9818
  %9879 = landingpad { ptr, i32 }
          cleanup
  %9880 = extractvalue { ptr, i32 } %9879, 0
  store ptr %9880, ptr %11, align 8
  %9881 = extractvalue { ptr, i32 } %9879, 1
  store i32 %9881, ptr %12, align 4
  br label %9951

9882:                                             ; preds = %9819
  %9883 = landingpad { ptr, i32 }
          cleanup
  %9884 = extractvalue { ptr, i32 } %9883, 0
  store ptr %9884, ptr %11, align 8
  %9885 = extractvalue { ptr, i32 } %9883, 1
  store i32 %9885, ptr %12, align 4
  br label %9950

9886:                                             ; preds = %9820
  %9887 = landingpad { ptr, i32 }
          cleanup
  %9888 = extractvalue { ptr, i32 } %9887, 0
  store ptr %9888, ptr %11, align 8
  %9889 = extractvalue { ptr, i32 } %9887, 1
  store i32 %9889, ptr %12, align 4
  br label %9949

9890:                                             ; preds = %9825
  %9891 = landingpad { ptr, i32 }
          cleanup
  %9892 = extractvalue { ptr, i32 } %9891, 0
  store ptr %9892, ptr %11, align 8
  %9893 = extractvalue { ptr, i32 } %9891, 1
  store i32 %9893, ptr %12, align 4
  br label %9948

9894:                                             ; preds = %9826
  %9895 = landingpad { ptr, i32 }
          cleanup
  %9896 = extractvalue { ptr, i32 } %9895, 0
  store ptr %9896, ptr %11, align 8
  %9897 = extractvalue { ptr, i32 } %9895, 1
  store i32 %9897, ptr %12, align 4
  br label %9947

9898:                                             ; preds = %9827
  %9899 = landingpad { ptr, i32 }
          cleanup
  %9900 = extractvalue { ptr, i32 } %9899, 0
  store ptr %9900, ptr %11, align 8
  %9901 = extractvalue { ptr, i32 } %9899, 1
  store i32 %9901, ptr %12, align 4
  br label %9946

9902:                                             ; preds = %9828
  %9903 = landingpad { ptr, i32 }
          cleanup
  %9904 = extractvalue { ptr, i32 } %9903, 0
  store ptr %9904, ptr %11, align 8
  %9905 = extractvalue { ptr, i32 } %9903, 1
  store i32 %9905, ptr %12, align 4
  br label %9945

9906:                                             ; preds = %9829
  %9907 = landingpad { ptr, i32 }
          cleanup
  %9908 = extractvalue { ptr, i32 } %9907, 0
  store ptr %9908, ptr %11, align 8
  %9909 = extractvalue { ptr, i32 } %9907, 1
  store i32 %9909, ptr %12, align 4
  br label %9944

9910:                                             ; preds = %9830
  %9911 = landingpad { ptr, i32 }
          cleanup
  %9912 = extractvalue { ptr, i32 } %9911, 0
  store ptr %9912, ptr %11, align 8
  %9913 = extractvalue { ptr, i32 } %9911, 1
  store i32 %9913, ptr %12, align 4
  br label %9943

9914:                                             ; preds = %9831
  %9915 = landingpad { ptr, i32 }
          cleanup
  %9916 = extractvalue { ptr, i32 } %9915, 0
  store ptr %9916, ptr %11, align 8
  %9917 = extractvalue { ptr, i32 } %9915, 1
  store i32 %9917, ptr %12, align 4
  br label %9942

9918:                                             ; preds = %9832
  %9919 = landingpad { ptr, i32 }
          cleanup
  %9920 = extractvalue { ptr, i32 } %9919, 0
  store ptr %9920, ptr %11, align 8
  %9921 = extractvalue { ptr, i32 } %9919, 1
  store i32 %9921, ptr %12, align 4
  br label %9941

9922:                                             ; preds = %9834
  %9923 = landingpad { ptr, i32 }
          cleanup
  %9924 = extractvalue { ptr, i32 } %9923, 0
  store ptr %9924, ptr %11, align 8
  %9925 = extractvalue { ptr, i32 } %9923, 1
  store i32 %9925, ptr %12, align 4
  br label %9940

9926:                                             ; preds = %9837, %9835
  %9927 = landingpad { ptr, i32 }
          cleanup
  %9928 = extractvalue { ptr, i32 } %9927, 0
  store ptr %9928, ptr %11, align 8
  %9929 = extractvalue { ptr, i32 } %9927, 1
  store i32 %9929, ptr %12, align 4
  br label %9939

9930:                                             ; preds = %9840, %9838
  %9931 = landingpad { ptr, i32 }
          cleanup
  %9932 = extractvalue { ptr, i32 } %9931, 0
  store ptr %9932, ptr %11, align 8
  %9933 = extractvalue { ptr, i32 } %9931, 1
  store i32 %9933, ptr %12, align 4
  br label %9938

9934:                                             ; preds = %9841
  %9935 = landingpad { ptr, i32 }
          cleanup
  %9936 = extractvalue { ptr, i32 } %9935, 0
  store ptr %9936, ptr %11, align 8
  %9937 = extractvalue { ptr, i32 } %9935, 1
  store i32 %9937, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1112) #11
  br label %9938

9938:                                             ; preds = %9934, %9930
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1113) #11
  br label %9939

9939:                                             ; preds = %9938, %9926
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1131) #11
  br label %9940

9940:                                             ; preds = %9939, %9922
  call void @llvm.lifetime.end.p0(i64 16, ptr %1131) #11
  br label %9941

9941:                                             ; preds = %9940, %9918
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1121) #11
  br label %9942

9942:                                             ; preds = %9941, %9914
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1128) #11
  br label %9943

9943:                                             ; preds = %9942, %9910
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1129) #11
  br label %9944

9944:                                             ; preds = %9943, %9906
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1130) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1130) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1129) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1122) #11
  br label %9945

9945:                                             ; preds = %9944, %9902
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1123) #11
  br label %9946

9946:                                             ; preds = %9945, %9898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1126) #11
  br label %9947

9947:                                             ; preds = %9946, %9894
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1127) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1127) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1124) #11
  br label %9948

9948:                                             ; preds = %9947, %9890
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1125) #11
  br label %9949

9949:                                             ; preds = %9948, %9886
  call void @llvm.lifetime.end.p0(i64 16, ptr %1125) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1123) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1121) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1116) #11
  br label %9950

9950:                                             ; preds = %9949, %9882
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1117) #11
  br label %9951

9951:                                             ; preds = %9950, %9878
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1118) #11
  br label %9952

9952:                                             ; preds = %9951, %9874
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1120) #11
  br label %9953

9953:                                             ; preds = %9952, %9870
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1119) #11
  br label %9954

9954:                                             ; preds = %9953, %9866
  call void @llvm.lifetime.end.p0(i64 16, ptr %1118) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1117) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1116) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1115) #11
  br label %9955

9955:                                             ; preds = %9954, %9862
  call void @llvm.lifetime.end.p0(i64 16, ptr %1115) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1114) #11
  br label %9956

9956:                                             ; preds = %9955, %9858
  call void @llvm.lifetime.end.p0(i64 16, ptr %1114) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1113) #11
  br label %9957

9957:                                             ; preds = %9956, %9854
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1111) #11
  br label %9958

9958:                                             ; preds = %9957, %9850
  call void @llvm.lifetime.end.p0(i64 32, ptr %1111) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %1110) #11
  br label %9959

9959:                                             ; preds = %9958, %9846
  call void @llvm.lifetime.end.p0(i64 48, ptr %1110) #11
  br label %9960

9960:                                             ; preds = %9959, %9796
  call void @llvm.lifetime.end.p0(i64 8, ptr %1109) #11
  br label %9961

9961:                                             ; preds = %9960, %9792
  call void @llvm.lifetime.end.p0(i64 8, ptr %1108) #11
  br label %9962

9962:                                             ; preds = %9961, %9788
  call void @llvm.lifetime.end.p0(i64 8, ptr %1107) #11
  br label %9964

9963:                                             ; preds = %9659
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1080) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1080) #11
  br label %9966

9964:                                             ; preds = %9962, %9787, %9723, %9598, %9589, %9577
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1080) #11
  br label %9965

9965:                                             ; preds = %9964, %9573
  call void @llvm.lifetime.end.p0(i64 16, ptr %1080) #11
  br label %11057

9966:                                             ; preds = %9963, %9555
  %9967 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %9968 = trunc i8 %9967 to i1
  br i1 %9968, label %9969, label %10779

9969:                                             ; preds = %9966
  call void @llvm.lifetime.start.p0(i64 8, ptr %1132) #11
  %9970 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %9971 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %9970)
          to label %9972 unwind label %9995

9972:                                             ; preds = %9969
  %9973 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %9971, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %9974 unwind label %9995

9974:                                             ; preds = %9972
  %9975 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %9973)
          to label %9976 unwind label %9995

9976:                                             ; preds = %9974
  store ptr %9975, ptr %1132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %1133) #11
  %9977 = load ptr, ptr %1132, align 8, !tbaa !5
  %9978 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %9977)
          to label %9979 unwind label %9999

9979:                                             ; preds = %9976
  %9980 = getelementptr inbounds { ptr, i64 }, ptr %1133, i32 0, i32 0
  %9981 = extractvalue { ptr, i64 } %9978, 0
  store ptr %9981, ptr %9980, align 8
  %9982 = getelementptr inbounds { ptr, i64 }, ptr %1133, i32 0, i32 1
  %9983 = extractvalue { ptr, i64 } %9978, 1
  store i64 %9983, ptr %9982, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %1134) #11
  %9984 = load ptr, ptr %1132, align 8, !tbaa !5
  %9985 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %9984)
          to label %9986 unwind label %10003

9986:                                             ; preds = %9979
  %9987 = getelementptr inbounds { ptr, i64 }, ptr %1134, i32 0, i32 0
  %9988 = extractvalue { ptr, i64 } %9985, 0
  store ptr %9988, ptr %9987, align 8
  %9989 = getelementptr inbounds { ptr, i64 }, ptr %1134, i32 0, i32 1
  %9990 = extractvalue { ptr, i64 } %9985, 1
  store i64 %9990, ptr %9989, align 8
  br label %9991

9991:                                             ; preds = %10062, %9986
  %9992 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %1133, ptr noundef nonnull align 8 dereferenceable(16) %1134)
          to label %9993 unwind label %10003

9993:                                             ; preds = %9991
  br i1 %9992, label %10007, label %9994

9994:                                             ; preds = %9993
  store i32 71, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %1134) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1133) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1132) #11
  br label %10169

9995:                                             ; preds = %9974, %9972, %9969
  %9996 = landingpad { ptr, i32 }
          cleanup
  %9997 = extractvalue { ptr, i32 } %9996, 0
  store ptr %9997, ptr %11, align 8
  %9998 = extractvalue { ptr, i32 } %9996, 1
  store i32 %9998, ptr %12, align 4
  br label %10168

9999:                                             ; preds = %9976
  %10000 = landingpad { ptr, i32 }
          cleanup
  %10001 = extractvalue { ptr, i32 } %10000, 0
  store ptr %10001, ptr %11, align 8
  %10002 = extractvalue { ptr, i32 } %10000, 1
  store i32 %10002, ptr %12, align 4
  br label %10167

10003:                                            ; preds = %10060, %9991, %9979
  %10004 = landingpad { ptr, i32 }
          cleanup
  %10005 = extractvalue { ptr, i32 } %10004, 0
  store ptr %10005, ptr %11, align 8
  %10006 = extractvalue { ptr, i32 } %10004, 1
  store i32 %10006, ptr %12, align 4
  br label %10166

10007:                                            ; preds = %9993
  call void @llvm.lifetime.start.p0(i64 8, ptr %1135) #11
  %10008 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1133)
          to label %10009 unwind label %10063

10009:                                            ; preds = %10007
  store ptr %10008, ptr %1135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1136) #11
  %10010 = load ptr, ptr %1135, align 8, !tbaa !5
  %10011 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %10010) #11
  store ptr %10011, ptr %1136, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1137) #11
  %10012 = load ptr, ptr %1135, align 8, !tbaa !5
  %10013 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %10012) #11
  store ptr %10013, ptr %1137, align 8, !tbaa !5
  %10014 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %10015 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10016 unwind label %10067

10016:                                            ; preds = %10009
  %10017 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %10015)
          to label %10018 unwind label %10067

10018:                                            ; preds = %10016
  %10019 = icmp sgt i64 %10017, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1139) #11
  %10020 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1140) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1140)
          to label %10021 unwind label %10071

10021:                                            ; preds = %10018
  call void @llvm.lifetime.start.p0(i64 16, ptr %1141) #11
  %10022 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1141, i32 noundef %10022, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10023 unwind label %10075

10023:                                            ; preds = %10021
  call void @llvm.lifetime.start.p0(i64 20, ptr %1142) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1143) #11
  %10024 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 32, ptr %1144) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %1145) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1145) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1144, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %1145)
          to label %10025 unwind label %10079

10025:                                            ; preds = %10023
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1143, ptr noundef nonnull align 8 dereferenceable(264) %10024, ptr noundef nonnull align 8 dereferenceable(32) %1144)
          to label %10026 unwind label %10083

10026:                                            ; preds = %10025
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1142, ptr noundef nonnull align 8 dereferenceable(16) %1143)
          to label %10027 unwind label %10087

10027:                                            ; preds = %10026
  call void @llvm.lifetime.start.p0(i64 16, ptr %1146) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1148) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %1149) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %1151) #11
  store ptr %1151, ptr %1152, align 8
  %10028 = load ptr, ptr %1136, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1151, ptr noundef nonnull align 8 dereferenceable(32) %10028)
          to label %10029 unwind label %10091

10029:                                            ; preds = %10027
  %10030 = getelementptr inbounds %"class.std::initializer_list", ptr %1150, i32 0, i32 0
  store ptr %1151, ptr %10030, align 8, !tbaa !11
  %10031 = getelementptr inbounds %"class.std::initializer_list", ptr %1150, i32 0, i32 1
  store i64 1, ptr %10031, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %1153) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1153) #11
  %10032 = getelementptr inbounds { ptr, i64 }, ptr %1150, i32 0, i32 0
  %10033 = load ptr, ptr %10032, align 8
  %10034 = getelementptr inbounds { ptr, i64 }, ptr %1150, i32 0, i32 1
  %10035 = load i64, ptr %10034, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %1149, ptr %10033, i64 %10035, ptr noundef nonnull align 1 dereferenceable(1) %1153)
          to label %10036 unwind label %10102

10036:                                            ; preds = %10029
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %1148, ptr noundef nonnull align 8 dereferenceable(24) %1149)
          to label %10037 unwind label %10106

10037:                                            ; preds = %10036
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1147, ptr noundef nonnull align 8 dereferenceable(16) %1148)
          to label %10038 unwind label %10110

10038:                                            ; preds = %10037
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1154, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10039 unwind label %10114

10039:                                            ; preds = %10038
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1146, i32 noundef 11, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1147, ptr noundef %1154)
          to label %10040 unwind label %10118

10040:                                            ; preds = %10039
  %10041 = load ptr, ptr %1136, align 8, !tbaa !5
  %10042 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %357, ptr noundef nonnull align 8 dereferenceable(32) %10041)
          to label %10043 unwind label %10122

10043:                                            ; preds = %10040
  call void @llvm.lifetime.start.p0(i64 16, ptr %1155) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1155)
          to label %10044 unwind label %10126

10044:                                            ; preds = %10043
  %10045 = load ptr, ptr %1136, align 8, !tbaa !5
  %10046 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %356, ptr noundef nonnull align 8 dereferenceable(32) %10045)
          to label %10047 unwind label %10130

10047:                                            ; preds = %10044
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1139, ptr noundef nonnull align 8 dereferenceable(264) %10020, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1140, ptr noundef nonnull align 8 dereferenceable(16) %1141, ptr noundef nonnull align 4 dereferenceable(20) %1142, ptr noundef nonnull align 8 dereferenceable(16) %1146, ptr noundef nonnull align 8 dereferenceable(16) %10042, ptr noundef nonnull align 8 dereferenceable(16) %1155, ptr noundef nonnull align 8 dereferenceable(16) %10046, i1 noundef zeroext false)
          to label %10048 unwind label %10130

10048:                                            ; preds = %10047
  %10049 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1139)
          to label %10050 unwind label %10134

10050:                                            ; preds = %10048
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1138, ptr noundef nonnull align 8 dereferenceable(136) %10049)
          to label %10051 unwind label %10134

10051:                                            ; preds = %10050
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %10014, i1 noundef zeroext %10019, ptr noundef %1138)
          to label %10052 unwind label %10138

10052:                                            ; preds = %10051
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1138) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1139) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1155) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1155) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1146) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1154) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1147) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1148) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1149) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1153) #11
  %10053 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1151, i32 0, i32 0
  %10054 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10053, i64 1
  br label %10055

10055:                                            ; preds = %10055, %10052
  %10056 = phi ptr [ %10054, %10052 ], [ %10057, %10055 ]
  %10057 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10056, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10057) #11
  %10058 = icmp eq ptr %10057, %10053
  br i1 %10058, label %10059, label %10055

10059:                                            ; preds = %10055
  call void @llvm.lifetime.end.p0(i64 32, ptr %1151) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1149) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1148) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1146) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1142) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1143) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1144) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1145) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1144) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1143) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1142) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1141) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1141) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1140) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1140) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1136) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1135) #11
  br label %10060

10060:                                            ; preds = %10059
  %10061 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %1133)
          to label %10062 unwind label %10003

10062:                                            ; preds = %10060
  br label %9991

10063:                                            ; preds = %10007
  %10064 = landingpad { ptr, i32 }
          cleanup
  %10065 = extractvalue { ptr, i32 } %10064, 0
  store ptr %10065, ptr %11, align 8
  %10066 = extractvalue { ptr, i32 } %10064, 1
  store i32 %10066, ptr %12, align 4
  br label %10165

10067:                                            ; preds = %10016, %10009
  %10068 = landingpad { ptr, i32 }
          cleanup
  %10069 = extractvalue { ptr, i32 } %10068, 0
  store ptr %10069, ptr %11, align 8
  %10070 = extractvalue { ptr, i32 } %10068, 1
  store i32 %10070, ptr %12, align 4
  br label %10164

10071:                                            ; preds = %10018
  %10072 = landingpad { ptr, i32 }
          cleanup
  %10073 = extractvalue { ptr, i32 } %10072, 0
  store ptr %10073, ptr %11, align 8
  %10074 = extractvalue { ptr, i32 } %10072, 1
  store i32 %10074, ptr %12, align 4
  br label %10163

10075:                                            ; preds = %10021
  %10076 = landingpad { ptr, i32 }
          cleanup
  %10077 = extractvalue { ptr, i32 } %10076, 0
  store ptr %10077, ptr %11, align 8
  %10078 = extractvalue { ptr, i32 } %10076, 1
  store i32 %10078, ptr %12, align 4
  br label %10162

10079:                                            ; preds = %10023
  %10080 = landingpad { ptr, i32 }
          cleanup
  %10081 = extractvalue { ptr, i32 } %10080, 0
  store ptr %10081, ptr %11, align 8
  %10082 = extractvalue { ptr, i32 } %10080, 1
  store i32 %10082, ptr %12, align 4
  br label %10161

10083:                                            ; preds = %10025
  %10084 = landingpad { ptr, i32 }
          cleanup
  %10085 = extractvalue { ptr, i32 } %10084, 0
  store ptr %10085, ptr %11, align 8
  %10086 = extractvalue { ptr, i32 } %10084, 1
  store i32 %10086, ptr %12, align 4
  br label %10160

10087:                                            ; preds = %10026
  %10088 = landingpad { ptr, i32 }
          cleanup
  %10089 = extractvalue { ptr, i32 } %10088, 0
  store ptr %10089, ptr %11, align 8
  %10090 = extractvalue { ptr, i32 } %10088, 1
  store i32 %10090, ptr %12, align 4
  br label %10159

10091:                                            ; preds = %10027
  %10092 = landingpad { ptr, i32 }
          cleanup
  %10093 = extractvalue { ptr, i32 } %10092, 0
  store ptr %10093, ptr %11, align 8
  %10094 = extractvalue { ptr, i32 } %10092, 1
  store i32 %10094, ptr %12, align 4
  %10095 = load ptr, ptr %1152, align 8
  %10096 = icmp eq ptr %1151, %10095
  br i1 %10096, label %10101, label %10097

10097:                                            ; preds = %10097, %10091
  %10098 = phi ptr [ %10095, %10091 ], [ %10099, %10097 ]
  %10099 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10098, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10099) #11
  %10100 = icmp eq ptr %10099, %1151
  br i1 %10100, label %10101, label %10097

10101:                                            ; preds = %10097, %10091
  br label %10158

10102:                                            ; preds = %10029
  %10103 = landingpad { ptr, i32 }
          cleanup
  %10104 = extractvalue { ptr, i32 } %10103, 0
  store ptr %10104, ptr %11, align 8
  %10105 = extractvalue { ptr, i32 } %10103, 1
  store i32 %10105, ptr %12, align 4
  br label %10150

10106:                                            ; preds = %10036
  %10107 = landingpad { ptr, i32 }
          cleanup
  %10108 = extractvalue { ptr, i32 } %10107, 0
  store ptr %10108, ptr %11, align 8
  %10109 = extractvalue { ptr, i32 } %10107, 1
  store i32 %10109, ptr %12, align 4
  br label %10149

10110:                                            ; preds = %10037
  %10111 = landingpad { ptr, i32 }
          cleanup
  %10112 = extractvalue { ptr, i32 } %10111, 0
  store ptr %10112, ptr %11, align 8
  %10113 = extractvalue { ptr, i32 } %10111, 1
  store i32 %10113, ptr %12, align 4
  br label %10148

10114:                                            ; preds = %10038
  %10115 = landingpad { ptr, i32 }
          cleanup
  %10116 = extractvalue { ptr, i32 } %10115, 0
  store ptr %10116, ptr %11, align 8
  %10117 = extractvalue { ptr, i32 } %10115, 1
  store i32 %10117, ptr %12, align 4
  br label %10147

10118:                                            ; preds = %10039
  %10119 = landingpad { ptr, i32 }
          cleanup
  %10120 = extractvalue { ptr, i32 } %10119, 0
  store ptr %10120, ptr %11, align 8
  %10121 = extractvalue { ptr, i32 } %10119, 1
  store i32 %10121, ptr %12, align 4
  br label %10146

10122:                                            ; preds = %10040
  %10123 = landingpad { ptr, i32 }
          cleanup
  %10124 = extractvalue { ptr, i32 } %10123, 0
  store ptr %10124, ptr %11, align 8
  %10125 = extractvalue { ptr, i32 } %10123, 1
  store i32 %10125, ptr %12, align 4
  br label %10145

10126:                                            ; preds = %10043
  %10127 = landingpad { ptr, i32 }
          cleanup
  %10128 = extractvalue { ptr, i32 } %10127, 0
  store ptr %10128, ptr %11, align 8
  %10129 = extractvalue { ptr, i32 } %10127, 1
  store i32 %10129, ptr %12, align 4
  br label %10144

10130:                                            ; preds = %10047, %10044
  %10131 = landingpad { ptr, i32 }
          cleanup
  %10132 = extractvalue { ptr, i32 } %10131, 0
  store ptr %10132, ptr %11, align 8
  %10133 = extractvalue { ptr, i32 } %10131, 1
  store i32 %10133, ptr %12, align 4
  br label %10143

10134:                                            ; preds = %10050, %10048
  %10135 = landingpad { ptr, i32 }
          cleanup
  %10136 = extractvalue { ptr, i32 } %10135, 0
  store ptr %10136, ptr %11, align 8
  %10137 = extractvalue { ptr, i32 } %10135, 1
  store i32 %10137, ptr %12, align 4
  br label %10142

10138:                                            ; preds = %10051
  %10139 = landingpad { ptr, i32 }
          cleanup
  %10140 = extractvalue { ptr, i32 } %10139, 0
  store ptr %10140, ptr %11, align 8
  %10141 = extractvalue { ptr, i32 } %10139, 1
  store i32 %10141, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1138) #11
  br label %10142

10142:                                            ; preds = %10138, %10134
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1139) #11
  br label %10143

10143:                                            ; preds = %10142, %10130
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1155) #11
  br label %10144

10144:                                            ; preds = %10143, %10126
  call void @llvm.lifetime.end.p0(i64 16, ptr %1155) #11
  br label %10145

10145:                                            ; preds = %10144, %10122
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1146) #11
  br label %10146

10146:                                            ; preds = %10145, %10118
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1154) #11
  br label %10147

10147:                                            ; preds = %10146, %10114
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1147) #11
  br label %10148

10148:                                            ; preds = %10147, %10110
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1148) #11
  br label %10149

10149:                                            ; preds = %10148, %10106
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1149) #11
  br label %10150

10150:                                            ; preds = %10149, %10102
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1153) #11
  %10151 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1151, i32 0, i32 0
  %10152 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10151, i64 1
  br label %10153

10153:                                            ; preds = %10153, %10150
  %10154 = phi ptr [ %10152, %10150 ], [ %10155, %10153 ]
  %10155 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10154, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10155) #11
  %10156 = icmp eq ptr %10155, %10151
  br i1 %10156, label %10157, label %10153

10157:                                            ; preds = %10153
  br label %10158

10158:                                            ; preds = %10157, %10101
  call void @llvm.lifetime.end.p0(i64 32, ptr %1151) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1149) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1148) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1146) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1142) #11
  br label %10159

10159:                                            ; preds = %10158, %10087
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1143) #11
  br label %10160

10160:                                            ; preds = %10159, %10083
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1144) #11
  br label %10161

10161:                                            ; preds = %10160, %10079
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1145) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1144) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1143) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1142) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1141) #11
  br label %10162

10162:                                            ; preds = %10161, %10075
  call void @llvm.lifetime.end.p0(i64 16, ptr %1141) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1140) #11
  br label %10163

10163:                                            ; preds = %10162, %10071
  call void @llvm.lifetime.end.p0(i64 16, ptr %1140) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1139) #11
  br label %10164

10164:                                            ; preds = %10163, %10067
  call void @llvm.lifetime.end.p0(i64 8, ptr %1137) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1136) #11
  br label %10165

10165:                                            ; preds = %10164, %10063
  call void @llvm.lifetime.end.p0(i64 8, ptr %1135) #11
  br label %10166

10166:                                            ; preds = %10165, %10003
  call void @llvm.lifetime.end.p0(i64 16, ptr %1134) #11
  br label %10167

10167:                                            ; preds = %10166, %9999
  call void @llvm.lifetime.end.p0(i64 16, ptr %1133) #11
  br label %10168

10168:                                            ; preds = %10167, %9995
  call void @llvm.lifetime.end.p0(i64 8, ptr %1132) #11
  br label %11057

10169:                                            ; preds = %9994
  call void @llvm.lifetime.start.p0(i64 8, ptr %1156) #11
  %10170 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %10171 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %10170)
          to label %10172 unwind label %10195

10172:                                            ; preds = %10169
  %10173 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %10171, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %10174 unwind label %10195

10174:                                            ; preds = %10172
  %10175 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %10173)
          to label %10176 unwind label %10195

10176:                                            ; preds = %10174
  store ptr %10175, ptr %1156, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %1157) #11
  %10177 = load ptr, ptr %1156, align 8, !tbaa !5
  %10178 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %10177)
          to label %10179 unwind label %10199

10179:                                            ; preds = %10176
  %10180 = getelementptr inbounds { ptr, i64 }, ptr %1157, i32 0, i32 0
  %10181 = extractvalue { ptr, i64 } %10178, 0
  store ptr %10181, ptr %10180, align 8
  %10182 = getelementptr inbounds { ptr, i64 }, ptr %1157, i32 0, i32 1
  %10183 = extractvalue { ptr, i64 } %10178, 1
  store i64 %10183, ptr %10182, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %1158) #11
  %10184 = load ptr, ptr %1156, align 8, !tbaa !5
  %10185 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %10184)
          to label %10186 unwind label %10203

10186:                                            ; preds = %10179
  %10187 = getelementptr inbounds { ptr, i64 }, ptr %1158, i32 0, i32 0
  %10188 = extractvalue { ptr, i64 } %10185, 0
  store ptr %10188, ptr %10187, align 8
  %10189 = getelementptr inbounds { ptr, i64 }, ptr %1158, i32 0, i32 1
  %10190 = extractvalue { ptr, i64 } %10185, 1
  store i64 %10190, ptr %10189, align 8
  br label %10191

10191:                                            ; preds = %10268, %10186
  %10192 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %1157, ptr noundef nonnull align 8 dereferenceable(16) %1158)
          to label %10193 unwind label %10203

10193:                                            ; preds = %10191
  br i1 %10192, label %10207, label %10194

10194:                                            ; preds = %10193
  store i32 73, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %1158) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1157) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1156) #11
  br label %10393

10195:                                            ; preds = %10174, %10172, %10169
  %10196 = landingpad { ptr, i32 }
          cleanup
  %10197 = extractvalue { ptr, i32 } %10196, 0
  store ptr %10197, ptr %11, align 8
  %10198 = extractvalue { ptr, i32 } %10196, 1
  store i32 %10198, ptr %12, align 4
  br label %10392

10199:                                            ; preds = %10176
  %10200 = landingpad { ptr, i32 }
          cleanup
  %10201 = extractvalue { ptr, i32 } %10200, 0
  store ptr %10201, ptr %11, align 8
  %10202 = extractvalue { ptr, i32 } %10200, 1
  store i32 %10202, ptr %12, align 4
  br label %10391

10203:                                            ; preds = %10266, %10191, %10179
  %10204 = landingpad { ptr, i32 }
          cleanup
  %10205 = extractvalue { ptr, i32 } %10204, 0
  store ptr %10205, ptr %11, align 8
  %10206 = extractvalue { ptr, i32 } %10204, 1
  store i32 %10206, ptr %12, align 4
  br label %10390

10207:                                            ; preds = %10193
  call void @llvm.lifetime.start.p0(i64 8, ptr %1159) #11
  %10208 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1157)
          to label %10209 unwind label %10269

10209:                                            ; preds = %10207
  store ptr %10208, ptr %1159, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1160) #11
  %10210 = load ptr, ptr %1159, align 8, !tbaa !5
  %10211 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %10210) #11
  store ptr %10211, ptr %1160, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1161) #11
  %10212 = load ptr, ptr %1159, align 8, !tbaa !5
  %10213 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %10212) #11
  store ptr %10213, ptr %1161, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %1162) #11
  %10214 = load ptr, ptr %1161, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1163, ptr noundef nonnull align 8 dereferenceable(16) %10214)
          to label %10215 unwind label %10273

10215:                                            ; preds = %10209
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1162, ptr noundef %1163, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10216 unwind label %10277

10216:                                            ; preds = %10215
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1163) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1164) #11
  %10217 = load ptr, ptr %1161, align 8, !tbaa !5
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1165)
          to label %10218 unwind label %10281

10218:                                            ; preds = %10216
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1166)
          to label %10219 unwind label %10285

10219:                                            ; preds = %10218
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1164, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %10217, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1165, ptr noundef %1166)
          to label %10220 unwind label %10289

10220:                                            ; preds = %10219
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1166) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1165) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1167) #11
  %10221 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1167, ptr noundef nonnull align 8 dereferenceable(264) %10221, ptr noundef nonnull align 8 dereferenceable(16) %1164, ptr noundef nonnull align 8 dereferenceable(16) %1162)
          to label %10222 unwind label %10294

10222:                                            ; preds = %10220
  %10223 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %10224 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10225 unwind label %10298

10225:                                            ; preds = %10222
  %10226 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %10224)
          to label %10227 unwind label %10298

10227:                                            ; preds = %10225
  %10228 = icmp sgt i64 %10226, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1169) #11
  %10229 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1170) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1170)
          to label %10230 unwind label %10302

10230:                                            ; preds = %10227
  call void @llvm.lifetime.start.p0(i64 16, ptr %1171) #11
  %10231 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1171, i32 noundef %10231, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10232 unwind label %10306

10232:                                            ; preds = %10230
  call void @llvm.lifetime.start.p0(i64 20, ptr %1172) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1172, ptr noundef nonnull align 8 dereferenceable(16) %1167)
          to label %10233 unwind label %10310

10233:                                            ; preds = %10232
  call void @llvm.lifetime.start.p0(i64 16, ptr %1173) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1175) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %1176) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %1178) #11
  store ptr %1178, ptr %1179, align 8
  %10234 = load ptr, ptr %1160, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1178, ptr noundef nonnull align 8 dereferenceable(32) %10234)
          to label %10235 unwind label %10314

10235:                                            ; preds = %10233
  %10236 = getelementptr inbounds %"class.std::initializer_list", ptr %1177, i32 0, i32 0
  store ptr %1178, ptr %10236, align 8, !tbaa !11
  %10237 = getelementptr inbounds %"class.std::initializer_list", ptr %1177, i32 0, i32 1
  store i64 1, ptr %10237, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %1180) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1180) #11
  %10238 = getelementptr inbounds { ptr, i64 }, ptr %1177, i32 0, i32 0
  %10239 = load ptr, ptr %10238, align 8
  %10240 = getelementptr inbounds { ptr, i64 }, ptr %1177, i32 0, i32 1
  %10241 = load i64, ptr %10240, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %1176, ptr %10239, i64 %10241, ptr noundef nonnull align 1 dereferenceable(1) %1180)
          to label %10242 unwind label %10325

10242:                                            ; preds = %10235
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %1175, ptr noundef nonnull align 8 dereferenceable(24) %1176)
          to label %10243 unwind label %10329

10243:                                            ; preds = %10242
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1174, ptr noundef nonnull align 8 dereferenceable(16) %1175)
          to label %10244 unwind label %10333

10244:                                            ; preds = %10243
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1181, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10245 unwind label %10337

10245:                                            ; preds = %10244
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1173, i32 noundef 13, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1174, ptr noundef %1181)
          to label %10246 unwind label %10341

10246:                                            ; preds = %10245
  %10247 = load ptr, ptr %1160, align 8, !tbaa !5
  %10248 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %376, ptr noundef nonnull align 8 dereferenceable(32) %10247)
          to label %10249 unwind label %10345

10249:                                            ; preds = %10246
  call void @llvm.lifetime.start.p0(i64 16, ptr %1182) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1182)
          to label %10250 unwind label %10349

10250:                                            ; preds = %10249
  %10251 = load ptr, ptr %1160, align 8, !tbaa !5
  %10252 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %375, ptr noundef nonnull align 8 dereferenceable(32) %10251)
          to label %10253 unwind label %10353

10253:                                            ; preds = %10250
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1169, ptr noundef nonnull align 8 dereferenceable(264) %10229, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1170, ptr noundef nonnull align 8 dereferenceable(16) %1171, ptr noundef nonnull align 4 dereferenceable(20) %1172, ptr noundef nonnull align 8 dereferenceable(16) %1173, ptr noundef nonnull align 8 dereferenceable(16) %10248, ptr noundef nonnull align 8 dereferenceable(16) %1182, ptr noundef nonnull align 8 dereferenceable(16) %10252, i1 noundef zeroext false)
          to label %10254 unwind label %10353

10254:                                            ; preds = %10253
  %10255 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1169)
          to label %10256 unwind label %10357

10256:                                            ; preds = %10254
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1168, ptr noundef nonnull align 8 dereferenceable(136) %10255)
          to label %10257 unwind label %10357

10257:                                            ; preds = %10256
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %10223, i1 noundef zeroext %10228, ptr noundef %1168)
          to label %10258 unwind label %10361

10258:                                            ; preds = %10257
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1168) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1169) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1182) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1182) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1173) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1181) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1174) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1175) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1176) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1180) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1180) #11
  %10259 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1178, i32 0, i32 0
  %10260 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10259, i64 1
  br label %10261

10261:                                            ; preds = %10261, %10258
  %10262 = phi ptr [ %10260, %10258 ], [ %10263, %10261 ]
  %10263 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10262, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10263) #11
  %10264 = icmp eq ptr %10263, %10259
  br i1 %10264, label %10265, label %10261

10265:                                            ; preds = %10261
  call void @llvm.lifetime.end.p0(i64 32, ptr %1178) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1176) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1175) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1173) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1172) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1172) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1171) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1171) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1170) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1170) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1169) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1167) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1167) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1164) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1164) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1162) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1162) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1161) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1160) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1159) #11
  br label %10266

10266:                                            ; preds = %10265
  %10267 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %1157)
          to label %10268 unwind label %10203

10268:                                            ; preds = %10266
  br label %10191

10269:                                            ; preds = %10207
  %10270 = landingpad { ptr, i32 }
          cleanup
  %10271 = extractvalue { ptr, i32 } %10270, 0
  store ptr %10271, ptr %11, align 8
  %10272 = extractvalue { ptr, i32 } %10270, 1
  store i32 %10272, ptr %12, align 4
  br label %10389

10273:                                            ; preds = %10209
  %10274 = landingpad { ptr, i32 }
          cleanup
  %10275 = extractvalue { ptr, i32 } %10274, 0
  store ptr %10275, ptr %11, align 8
  %10276 = extractvalue { ptr, i32 } %10274, 1
  store i32 %10276, ptr %12, align 4
  br label %10388

10277:                                            ; preds = %10215
  %10278 = landingpad { ptr, i32 }
          cleanup
  %10279 = extractvalue { ptr, i32 } %10278, 0
  store ptr %10279, ptr %11, align 8
  %10280 = extractvalue { ptr, i32 } %10278, 1
  store i32 %10280, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1163) #11
  br label %10388

10281:                                            ; preds = %10216
  %10282 = landingpad { ptr, i32 }
          cleanup
  %10283 = extractvalue { ptr, i32 } %10282, 0
  store ptr %10283, ptr %11, align 8
  %10284 = extractvalue { ptr, i32 } %10282, 1
  store i32 %10284, ptr %12, align 4
  br label %10387

10285:                                            ; preds = %10218
  %10286 = landingpad { ptr, i32 }
          cleanup
  %10287 = extractvalue { ptr, i32 } %10286, 0
  store ptr %10287, ptr %11, align 8
  %10288 = extractvalue { ptr, i32 } %10286, 1
  store i32 %10288, ptr %12, align 4
  br label %10293

10289:                                            ; preds = %10219
  %10290 = landingpad { ptr, i32 }
          cleanup
  %10291 = extractvalue { ptr, i32 } %10290, 0
  store ptr %10291, ptr %11, align 8
  %10292 = extractvalue { ptr, i32 } %10290, 1
  store i32 %10292, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1166) #11
  br label %10293

10293:                                            ; preds = %10289, %10285
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1165) #11
  br label %10387

10294:                                            ; preds = %10220
  %10295 = landingpad { ptr, i32 }
          cleanup
  %10296 = extractvalue { ptr, i32 } %10295, 0
  store ptr %10296, ptr %11, align 8
  %10297 = extractvalue { ptr, i32 } %10295, 1
  store i32 %10297, ptr %12, align 4
  br label %10386

10298:                                            ; preds = %10225, %10222
  %10299 = landingpad { ptr, i32 }
          cleanup
  %10300 = extractvalue { ptr, i32 } %10299, 0
  store ptr %10300, ptr %11, align 8
  %10301 = extractvalue { ptr, i32 } %10299, 1
  store i32 %10301, ptr %12, align 4
  br label %10385

10302:                                            ; preds = %10227
  %10303 = landingpad { ptr, i32 }
          cleanup
  %10304 = extractvalue { ptr, i32 } %10303, 0
  store ptr %10304, ptr %11, align 8
  %10305 = extractvalue { ptr, i32 } %10303, 1
  store i32 %10305, ptr %12, align 4
  br label %10384

10306:                                            ; preds = %10230
  %10307 = landingpad { ptr, i32 }
          cleanup
  %10308 = extractvalue { ptr, i32 } %10307, 0
  store ptr %10308, ptr %11, align 8
  %10309 = extractvalue { ptr, i32 } %10307, 1
  store i32 %10309, ptr %12, align 4
  br label %10383

10310:                                            ; preds = %10232
  %10311 = landingpad { ptr, i32 }
          cleanup
  %10312 = extractvalue { ptr, i32 } %10311, 0
  store ptr %10312, ptr %11, align 8
  %10313 = extractvalue { ptr, i32 } %10311, 1
  store i32 %10313, ptr %12, align 4
  br label %10382

10314:                                            ; preds = %10233
  %10315 = landingpad { ptr, i32 }
          cleanup
  %10316 = extractvalue { ptr, i32 } %10315, 0
  store ptr %10316, ptr %11, align 8
  %10317 = extractvalue { ptr, i32 } %10315, 1
  store i32 %10317, ptr %12, align 4
  %10318 = load ptr, ptr %1179, align 8
  %10319 = icmp eq ptr %1178, %10318
  br i1 %10319, label %10324, label %10320

10320:                                            ; preds = %10320, %10314
  %10321 = phi ptr [ %10318, %10314 ], [ %10322, %10320 ]
  %10322 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10321, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10322) #11
  %10323 = icmp eq ptr %10322, %1178
  br i1 %10323, label %10324, label %10320

10324:                                            ; preds = %10320, %10314
  br label %10381

10325:                                            ; preds = %10235
  %10326 = landingpad { ptr, i32 }
          cleanup
  %10327 = extractvalue { ptr, i32 } %10326, 0
  store ptr %10327, ptr %11, align 8
  %10328 = extractvalue { ptr, i32 } %10326, 1
  store i32 %10328, ptr %12, align 4
  br label %10373

10329:                                            ; preds = %10242
  %10330 = landingpad { ptr, i32 }
          cleanup
  %10331 = extractvalue { ptr, i32 } %10330, 0
  store ptr %10331, ptr %11, align 8
  %10332 = extractvalue { ptr, i32 } %10330, 1
  store i32 %10332, ptr %12, align 4
  br label %10372

10333:                                            ; preds = %10243
  %10334 = landingpad { ptr, i32 }
          cleanup
  %10335 = extractvalue { ptr, i32 } %10334, 0
  store ptr %10335, ptr %11, align 8
  %10336 = extractvalue { ptr, i32 } %10334, 1
  store i32 %10336, ptr %12, align 4
  br label %10371

10337:                                            ; preds = %10244
  %10338 = landingpad { ptr, i32 }
          cleanup
  %10339 = extractvalue { ptr, i32 } %10338, 0
  store ptr %10339, ptr %11, align 8
  %10340 = extractvalue { ptr, i32 } %10338, 1
  store i32 %10340, ptr %12, align 4
  br label %10370

10341:                                            ; preds = %10245
  %10342 = landingpad { ptr, i32 }
          cleanup
  %10343 = extractvalue { ptr, i32 } %10342, 0
  store ptr %10343, ptr %11, align 8
  %10344 = extractvalue { ptr, i32 } %10342, 1
  store i32 %10344, ptr %12, align 4
  br label %10369

10345:                                            ; preds = %10246
  %10346 = landingpad { ptr, i32 }
          cleanup
  %10347 = extractvalue { ptr, i32 } %10346, 0
  store ptr %10347, ptr %11, align 8
  %10348 = extractvalue { ptr, i32 } %10346, 1
  store i32 %10348, ptr %12, align 4
  br label %10368

10349:                                            ; preds = %10249
  %10350 = landingpad { ptr, i32 }
          cleanup
  %10351 = extractvalue { ptr, i32 } %10350, 0
  store ptr %10351, ptr %11, align 8
  %10352 = extractvalue { ptr, i32 } %10350, 1
  store i32 %10352, ptr %12, align 4
  br label %10367

10353:                                            ; preds = %10253, %10250
  %10354 = landingpad { ptr, i32 }
          cleanup
  %10355 = extractvalue { ptr, i32 } %10354, 0
  store ptr %10355, ptr %11, align 8
  %10356 = extractvalue { ptr, i32 } %10354, 1
  store i32 %10356, ptr %12, align 4
  br label %10366

10357:                                            ; preds = %10256, %10254
  %10358 = landingpad { ptr, i32 }
          cleanup
  %10359 = extractvalue { ptr, i32 } %10358, 0
  store ptr %10359, ptr %11, align 8
  %10360 = extractvalue { ptr, i32 } %10358, 1
  store i32 %10360, ptr %12, align 4
  br label %10365

10361:                                            ; preds = %10257
  %10362 = landingpad { ptr, i32 }
          cleanup
  %10363 = extractvalue { ptr, i32 } %10362, 0
  store ptr %10363, ptr %11, align 8
  %10364 = extractvalue { ptr, i32 } %10362, 1
  store i32 %10364, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1168) #11
  br label %10365

10365:                                            ; preds = %10361, %10357
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1169) #11
  br label %10366

10366:                                            ; preds = %10365, %10353
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1182) #11
  br label %10367

10367:                                            ; preds = %10366, %10349
  call void @llvm.lifetime.end.p0(i64 16, ptr %1182) #11
  br label %10368

10368:                                            ; preds = %10367, %10345
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1173) #11
  br label %10369

10369:                                            ; preds = %10368, %10341
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1181) #11
  br label %10370

10370:                                            ; preds = %10369, %10337
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1174) #11
  br label %10371

10371:                                            ; preds = %10370, %10333
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1175) #11
  br label %10372

10372:                                            ; preds = %10371, %10329
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1176) #11
  br label %10373

10373:                                            ; preds = %10372, %10325
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1180) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1180) #11
  %10374 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1178, i32 0, i32 0
  %10375 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10374, i64 1
  br label %10376

10376:                                            ; preds = %10376, %10373
  %10377 = phi ptr [ %10375, %10373 ], [ %10378, %10376 ]
  %10378 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10377, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10378) #11
  %10379 = icmp eq ptr %10378, %10374
  br i1 %10379, label %10380, label %10376

10380:                                            ; preds = %10376
  br label %10381

10381:                                            ; preds = %10380, %10324
  call void @llvm.lifetime.end.p0(i64 32, ptr %1178) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1176) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1175) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1173) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1172) #11
  br label %10382

10382:                                            ; preds = %10381, %10310
  call void @llvm.lifetime.end.p0(i64 20, ptr %1172) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1171) #11
  br label %10383

10383:                                            ; preds = %10382, %10306
  call void @llvm.lifetime.end.p0(i64 16, ptr %1171) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1170) #11
  br label %10384

10384:                                            ; preds = %10383, %10302
  call void @llvm.lifetime.end.p0(i64 16, ptr %1170) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1169) #11
  br label %10385

10385:                                            ; preds = %10384, %10298
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1167) #11
  br label %10386

10386:                                            ; preds = %10385, %10294
  call void @llvm.lifetime.end.p0(i64 16, ptr %1167) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1164) #11
  br label %10387

10387:                                            ; preds = %10386, %10293, %10281
  call void @llvm.lifetime.end.p0(i64 16, ptr %1164) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1162) #11
  br label %10388

10388:                                            ; preds = %10387, %10277, %10273
  call void @llvm.lifetime.end.p0(i64 16, ptr %1162) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1161) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1160) #11
  br label %10389

10389:                                            ; preds = %10388, %10269
  call void @llvm.lifetime.end.p0(i64 8, ptr %1159) #11
  br label %10390

10390:                                            ; preds = %10389, %10203
  call void @llvm.lifetime.end.p0(i64 16, ptr %1158) #11
  br label %10391

10391:                                            ; preds = %10390, %10199
  call void @llvm.lifetime.end.p0(i64 16, ptr %1157) #11
  br label %10392

10392:                                            ; preds = %10391, %10195
  call void @llvm.lifetime.end.p0(i64 8, ptr %1156) #11
  br label %11057

10393:                                            ; preds = %10194
  call void @llvm.lifetime.start.p0(i64 8, ptr %1183) #11
  %10394 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 1
  %10395 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %10394)
          to label %10396 unwind label %10419

10396:                                            ; preds = %10393
  %10397 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %10395, ptr noundef nonnull align 8 dereferenceable(16) %251)
          to label %10398 unwind label %10419

10398:                                            ; preds = %10396
  %10399 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %10397)
          to label %10400 unwind label %10419

10400:                                            ; preds = %10398
  store ptr %10399, ptr %1183, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %1184) #11
  %10401 = load ptr, ptr %1183, align 8, !tbaa !5
  %10402 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %10401)
          to label %10403 unwind label %10423

10403:                                            ; preds = %10400
  %10404 = getelementptr inbounds { ptr, i64 }, ptr %1184, i32 0, i32 0
  %10405 = extractvalue { ptr, i64 } %10402, 0
  store ptr %10405, ptr %10404, align 8
  %10406 = getelementptr inbounds { ptr, i64 }, ptr %1184, i32 0, i32 1
  %10407 = extractvalue { ptr, i64 } %10402, 1
  store i64 %10407, ptr %10406, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %1185) #11
  %10408 = load ptr, ptr %1183, align 8, !tbaa !5
  %10409 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %10408)
          to label %10410 unwind label %10427

10410:                                            ; preds = %10403
  %10411 = getelementptr inbounds { ptr, i64 }, ptr %1185, i32 0, i32 0
  %10412 = extractvalue { ptr, i64 } %10409, 0
  store ptr %10412, ptr %10411, align 8
  %10413 = getelementptr inbounds { ptr, i64 }, ptr %1185, i32 0, i32 1
  %10414 = extractvalue { ptr, i64 } %10409, 1
  store i64 %10414, ptr %10413, align 8
  br label %10415

10415:                                            ; preds = %10494, %10410
  %10416 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %1184, ptr noundef nonnull align 8 dereferenceable(16) %1185)
          to label %10417 unwind label %10427

10417:                                            ; preds = %10415
  br i1 %10416, label %10431, label %10418

10418:                                            ; preds = %10417
  store i32 75, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %1185) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1184) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1183) #11
  br label %10624

10419:                                            ; preds = %10398, %10396, %10393
  %10420 = landingpad { ptr, i32 }
          cleanup
  %10421 = extractvalue { ptr, i32 } %10420, 0
  store ptr %10421, ptr %11, align 8
  %10422 = extractvalue { ptr, i32 } %10420, 1
  store i32 %10422, ptr %12, align 4
  br label %10623

10423:                                            ; preds = %10400
  %10424 = landingpad { ptr, i32 }
          cleanup
  %10425 = extractvalue { ptr, i32 } %10424, 0
  store ptr %10425, ptr %11, align 8
  %10426 = extractvalue { ptr, i32 } %10424, 1
  store i32 %10426, ptr %12, align 4
  br label %10622

10427:                                            ; preds = %10492, %10415, %10403
  %10428 = landingpad { ptr, i32 }
          cleanup
  %10429 = extractvalue { ptr, i32 } %10428, 0
  store ptr %10429, ptr %11, align 8
  %10430 = extractvalue { ptr, i32 } %10428, 1
  store i32 %10430, ptr %12, align 4
  br label %10621

10431:                                            ; preds = %10417
  call void @llvm.lifetime.start.p0(i64 8, ptr %1186) #11
  %10432 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1184)
          to label %10433 unwind label %10495

10433:                                            ; preds = %10431
  store ptr %10432, ptr %1186, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1187) #11
  %10434 = load ptr, ptr %1186, align 8, !tbaa !5
  %10435 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %10434) #11
  store ptr %10435, ptr %1187, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1188) #11
  %10436 = load ptr, ptr %1186, align 8, !tbaa !5
  %10437 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %10436) #11
  store ptr %10437, ptr %1188, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %1189) #11
  %10438 = load ptr, ptr %1188, align 8, !tbaa !5
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1190, ptr noundef nonnull align 8 dereferenceable(16) %10438)
          to label %10439 unwind label %10499

10439:                                            ; preds = %10433
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1189, ptr noundef %1190, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10440 unwind label %10503

10440:                                            ; preds = %10439
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1190) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1191) #11
  %10441 = load ptr, ptr %1188, align 8, !tbaa !5
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1192)
          to label %10442 unwind label %10507

10442:                                            ; preds = %10440
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1193)
          to label %10443 unwind label %10511

10443:                                            ; preds = %10442
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1191, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %10441, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1192, ptr noundef %1193)
          to label %10444 unwind label %10515

10444:                                            ; preds = %10443
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1193) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1192) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1194) #11
  %10445 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1194, ptr noundef nonnull align 8 dereferenceable(264) %10445, ptr noundef nonnull align 8 dereferenceable(16) %1191, ptr noundef nonnull align 8 dereferenceable(16) %1189)
          to label %10446 unwind label %10520

10446:                                            ; preds = %10444
  call void @llvm.lifetime.start.p0(i64 16, ptr %1195) #11
  %10447 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA13_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1195, ptr noundef nonnull align 8 dereferenceable(264) %10447, ptr noundef nonnull align 1 dereferenceable(13) @.str.167, ptr noundef nonnull align 8 dereferenceable(16) %1194, ptr noundef nonnull align 1 dereferenceable(2) @.str.45)
          to label %10448 unwind label %10524

10448:                                            ; preds = %10446
  %10449 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %10450 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10451 unwind label %10528

10451:                                            ; preds = %10448
  %10452 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %10450)
          to label %10453 unwind label %10528

10453:                                            ; preds = %10451
  %10454 = icmp sgt i64 %10452, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1197) #11
  %10455 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1198) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1198)
          to label %10456 unwind label %10532

10456:                                            ; preds = %10453
  call void @llvm.lifetime.start.p0(i64 16, ptr %1199) #11
  %10457 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1199, i32 noundef %10457, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10458 unwind label %10536

10458:                                            ; preds = %10456
  call void @llvm.lifetime.start.p0(i64 20, ptr %1200) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1200, ptr noundef nonnull align 8 dereferenceable(16) %1195)
          to label %10459 unwind label %10540

10459:                                            ; preds = %10458
  call void @llvm.lifetime.start.p0(i64 16, ptr %1201) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1203) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %1204) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %1206) #11
  store ptr %1206, ptr %1207, align 8
  %10460 = load ptr, ptr %1187, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1206, ptr noundef nonnull align 8 dereferenceable(32) %10460)
          to label %10461 unwind label %10544

10461:                                            ; preds = %10459
  %10462 = getelementptr inbounds %"class.std::initializer_list", ptr %1205, i32 0, i32 0
  store ptr %1206, ptr %10462, align 8, !tbaa !11
  %10463 = getelementptr inbounds %"class.std::initializer_list", ptr %1205, i32 0, i32 1
  store i64 1, ptr %10463, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %1208) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1208) #11
  %10464 = getelementptr inbounds { ptr, i64 }, ptr %1205, i32 0, i32 0
  %10465 = load ptr, ptr %10464, align 8
  %10466 = getelementptr inbounds { ptr, i64 }, ptr %1205, i32 0, i32 1
  %10467 = load i64, ptr %10466, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %1204, ptr %10465, i64 %10467, ptr noundef nonnull align 1 dereferenceable(1) %1208)
          to label %10468 unwind label %10555

10468:                                            ; preds = %10461
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %1203, ptr noundef nonnull align 8 dereferenceable(24) %1204)
          to label %10469 unwind label %10559

10469:                                            ; preds = %10468
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1202, ptr noundef nonnull align 8 dereferenceable(16) %1203)
          to label %10470 unwind label %10563

10470:                                            ; preds = %10469
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1209, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10471 unwind label %10567

10471:                                            ; preds = %10470
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1201, i32 noundef 15, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1202, ptr noundef %1209)
          to label %10472 unwind label %10571

10472:                                            ; preds = %10471
  %10473 = load ptr, ptr %1187, align 8, !tbaa !5
  %10474 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %395, ptr noundef nonnull align 8 dereferenceable(32) %10473)
          to label %10475 unwind label %10575

10475:                                            ; preds = %10472
  call void @llvm.lifetime.start.p0(i64 16, ptr %1210) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1210)
          to label %10476 unwind label %10579

10476:                                            ; preds = %10475
  %10477 = load ptr, ptr %1187, align 8, !tbaa !5
  %10478 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %394, ptr noundef nonnull align 8 dereferenceable(32) %10477)
          to label %10479 unwind label %10583

10479:                                            ; preds = %10476
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1197, ptr noundef nonnull align 8 dereferenceable(264) %10455, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1198, ptr noundef nonnull align 8 dereferenceable(16) %1199, ptr noundef nonnull align 4 dereferenceable(20) %1200, ptr noundef nonnull align 8 dereferenceable(16) %1201, ptr noundef nonnull align 8 dereferenceable(16) %10474, ptr noundef nonnull align 8 dereferenceable(16) %1210, ptr noundef nonnull align 8 dereferenceable(16) %10478, i1 noundef zeroext false)
          to label %10480 unwind label %10583

10480:                                            ; preds = %10479
  %10481 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1197)
          to label %10482 unwind label %10587

10482:                                            ; preds = %10480
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1196, ptr noundef nonnull align 8 dereferenceable(136) %10481)
          to label %10483 unwind label %10587

10483:                                            ; preds = %10482
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %10449, i1 noundef zeroext %10454, ptr noundef %1196)
          to label %10484 unwind label %10591

10484:                                            ; preds = %10483
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1196) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1197) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1210) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1210) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1201) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1209) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1202) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1203) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1204) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1208) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1208) #11
  %10485 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1206, i32 0, i32 0
  %10486 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10485, i64 1
  br label %10487

10487:                                            ; preds = %10487, %10484
  %10488 = phi ptr [ %10486, %10484 ], [ %10489, %10487 ]
  %10489 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10488, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10489) #11
  %10490 = icmp eq ptr %10489, %10485
  br i1 %10490, label %10491, label %10487

10491:                                            ; preds = %10487
  call void @llvm.lifetime.end.p0(i64 32, ptr %1206) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1204) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1203) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1201) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1200) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1200) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1199) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1199) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1198) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1198) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1197) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1195) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1195) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1194) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1194) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1191) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1191) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1189) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1189) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1188) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1187) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1186) #11
  br label %10492

10492:                                            ; preds = %10491
  %10493 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %1184)
          to label %10494 unwind label %10427

10494:                                            ; preds = %10492
  br label %10415

10495:                                            ; preds = %10431
  %10496 = landingpad { ptr, i32 }
          cleanup
  %10497 = extractvalue { ptr, i32 } %10496, 0
  store ptr %10497, ptr %11, align 8
  %10498 = extractvalue { ptr, i32 } %10496, 1
  store i32 %10498, ptr %12, align 4
  br label %10620

10499:                                            ; preds = %10433
  %10500 = landingpad { ptr, i32 }
          cleanup
  %10501 = extractvalue { ptr, i32 } %10500, 0
  store ptr %10501, ptr %11, align 8
  %10502 = extractvalue { ptr, i32 } %10500, 1
  store i32 %10502, ptr %12, align 4
  br label %10619

10503:                                            ; preds = %10439
  %10504 = landingpad { ptr, i32 }
          cleanup
  %10505 = extractvalue { ptr, i32 } %10504, 0
  store ptr %10505, ptr %11, align 8
  %10506 = extractvalue { ptr, i32 } %10504, 1
  store i32 %10506, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1190) #11
  br label %10619

10507:                                            ; preds = %10440
  %10508 = landingpad { ptr, i32 }
          cleanup
  %10509 = extractvalue { ptr, i32 } %10508, 0
  store ptr %10509, ptr %11, align 8
  %10510 = extractvalue { ptr, i32 } %10508, 1
  store i32 %10510, ptr %12, align 4
  br label %10618

10511:                                            ; preds = %10442
  %10512 = landingpad { ptr, i32 }
          cleanup
  %10513 = extractvalue { ptr, i32 } %10512, 0
  store ptr %10513, ptr %11, align 8
  %10514 = extractvalue { ptr, i32 } %10512, 1
  store i32 %10514, ptr %12, align 4
  br label %10519

10515:                                            ; preds = %10443
  %10516 = landingpad { ptr, i32 }
          cleanup
  %10517 = extractvalue { ptr, i32 } %10516, 0
  store ptr %10517, ptr %11, align 8
  %10518 = extractvalue { ptr, i32 } %10516, 1
  store i32 %10518, ptr %12, align 4
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1193) #11
  br label %10519

10519:                                            ; preds = %10515, %10511
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1192) #11
  br label %10618

10520:                                            ; preds = %10444
  %10521 = landingpad { ptr, i32 }
          cleanup
  %10522 = extractvalue { ptr, i32 } %10521, 0
  store ptr %10522, ptr %11, align 8
  %10523 = extractvalue { ptr, i32 } %10521, 1
  store i32 %10523, ptr %12, align 4
  br label %10617

10524:                                            ; preds = %10446
  %10525 = landingpad { ptr, i32 }
          cleanup
  %10526 = extractvalue { ptr, i32 } %10525, 0
  store ptr %10526, ptr %11, align 8
  %10527 = extractvalue { ptr, i32 } %10525, 1
  store i32 %10527, ptr %12, align 4
  br label %10616

10528:                                            ; preds = %10451, %10448
  %10529 = landingpad { ptr, i32 }
          cleanup
  %10530 = extractvalue { ptr, i32 } %10529, 0
  store ptr %10530, ptr %11, align 8
  %10531 = extractvalue { ptr, i32 } %10529, 1
  store i32 %10531, ptr %12, align 4
  br label %10615

10532:                                            ; preds = %10453
  %10533 = landingpad { ptr, i32 }
          cleanup
  %10534 = extractvalue { ptr, i32 } %10533, 0
  store ptr %10534, ptr %11, align 8
  %10535 = extractvalue { ptr, i32 } %10533, 1
  store i32 %10535, ptr %12, align 4
  br label %10614

10536:                                            ; preds = %10456
  %10537 = landingpad { ptr, i32 }
          cleanup
  %10538 = extractvalue { ptr, i32 } %10537, 0
  store ptr %10538, ptr %11, align 8
  %10539 = extractvalue { ptr, i32 } %10537, 1
  store i32 %10539, ptr %12, align 4
  br label %10613

10540:                                            ; preds = %10458
  %10541 = landingpad { ptr, i32 }
          cleanup
  %10542 = extractvalue { ptr, i32 } %10541, 0
  store ptr %10542, ptr %11, align 8
  %10543 = extractvalue { ptr, i32 } %10541, 1
  store i32 %10543, ptr %12, align 4
  br label %10612

10544:                                            ; preds = %10459
  %10545 = landingpad { ptr, i32 }
          cleanup
  %10546 = extractvalue { ptr, i32 } %10545, 0
  store ptr %10546, ptr %11, align 8
  %10547 = extractvalue { ptr, i32 } %10545, 1
  store i32 %10547, ptr %12, align 4
  %10548 = load ptr, ptr %1207, align 8
  %10549 = icmp eq ptr %1206, %10548
  br i1 %10549, label %10554, label %10550

10550:                                            ; preds = %10550, %10544
  %10551 = phi ptr [ %10548, %10544 ], [ %10552, %10550 ]
  %10552 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10551, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10552) #11
  %10553 = icmp eq ptr %10552, %1206
  br i1 %10553, label %10554, label %10550

10554:                                            ; preds = %10550, %10544
  br label %10611

10555:                                            ; preds = %10461
  %10556 = landingpad { ptr, i32 }
          cleanup
  %10557 = extractvalue { ptr, i32 } %10556, 0
  store ptr %10557, ptr %11, align 8
  %10558 = extractvalue { ptr, i32 } %10556, 1
  store i32 %10558, ptr %12, align 4
  br label %10603

10559:                                            ; preds = %10468
  %10560 = landingpad { ptr, i32 }
          cleanup
  %10561 = extractvalue { ptr, i32 } %10560, 0
  store ptr %10561, ptr %11, align 8
  %10562 = extractvalue { ptr, i32 } %10560, 1
  store i32 %10562, ptr %12, align 4
  br label %10602

10563:                                            ; preds = %10469
  %10564 = landingpad { ptr, i32 }
          cleanup
  %10565 = extractvalue { ptr, i32 } %10564, 0
  store ptr %10565, ptr %11, align 8
  %10566 = extractvalue { ptr, i32 } %10564, 1
  store i32 %10566, ptr %12, align 4
  br label %10601

10567:                                            ; preds = %10470
  %10568 = landingpad { ptr, i32 }
          cleanup
  %10569 = extractvalue { ptr, i32 } %10568, 0
  store ptr %10569, ptr %11, align 8
  %10570 = extractvalue { ptr, i32 } %10568, 1
  store i32 %10570, ptr %12, align 4
  br label %10600

10571:                                            ; preds = %10471
  %10572 = landingpad { ptr, i32 }
          cleanup
  %10573 = extractvalue { ptr, i32 } %10572, 0
  store ptr %10573, ptr %11, align 8
  %10574 = extractvalue { ptr, i32 } %10572, 1
  store i32 %10574, ptr %12, align 4
  br label %10599

10575:                                            ; preds = %10472
  %10576 = landingpad { ptr, i32 }
          cleanup
  %10577 = extractvalue { ptr, i32 } %10576, 0
  store ptr %10577, ptr %11, align 8
  %10578 = extractvalue { ptr, i32 } %10576, 1
  store i32 %10578, ptr %12, align 4
  br label %10598

10579:                                            ; preds = %10475
  %10580 = landingpad { ptr, i32 }
          cleanup
  %10581 = extractvalue { ptr, i32 } %10580, 0
  store ptr %10581, ptr %11, align 8
  %10582 = extractvalue { ptr, i32 } %10580, 1
  store i32 %10582, ptr %12, align 4
  br label %10597

10583:                                            ; preds = %10479, %10476
  %10584 = landingpad { ptr, i32 }
          cleanup
  %10585 = extractvalue { ptr, i32 } %10584, 0
  store ptr %10585, ptr %11, align 8
  %10586 = extractvalue { ptr, i32 } %10584, 1
  store i32 %10586, ptr %12, align 4
  br label %10596

10587:                                            ; preds = %10482, %10480
  %10588 = landingpad { ptr, i32 }
          cleanup
  %10589 = extractvalue { ptr, i32 } %10588, 0
  store ptr %10589, ptr %11, align 8
  %10590 = extractvalue { ptr, i32 } %10588, 1
  store i32 %10590, ptr %12, align 4
  br label %10595

10591:                                            ; preds = %10483
  %10592 = landingpad { ptr, i32 }
          cleanup
  %10593 = extractvalue { ptr, i32 } %10592, 0
  store ptr %10593, ptr %11, align 8
  %10594 = extractvalue { ptr, i32 } %10592, 1
  store i32 %10594, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1196) #11
  br label %10595

10595:                                            ; preds = %10591, %10587
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1197) #11
  br label %10596

10596:                                            ; preds = %10595, %10583
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1210) #11
  br label %10597

10597:                                            ; preds = %10596, %10579
  call void @llvm.lifetime.end.p0(i64 16, ptr %1210) #11
  br label %10598

10598:                                            ; preds = %10597, %10575
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1201) #11
  br label %10599

10599:                                            ; preds = %10598, %10571
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1209) #11
  br label %10600

10600:                                            ; preds = %10599, %10567
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1202) #11
  br label %10601

10601:                                            ; preds = %10600, %10563
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1203) #11
  br label %10602

10602:                                            ; preds = %10601, %10559
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1204) #11
  br label %10603

10603:                                            ; preds = %10602, %10555
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1208) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1208) #11
  %10604 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1206, i32 0, i32 0
  %10605 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10604, i64 1
  br label %10606

10606:                                            ; preds = %10606, %10603
  %10607 = phi ptr [ %10605, %10603 ], [ %10608, %10606 ]
  %10608 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10607, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10608) #11
  %10609 = icmp eq ptr %10608, %10604
  br i1 %10609, label %10610, label %10606

10610:                                            ; preds = %10606
  br label %10611

10611:                                            ; preds = %10610, %10554
  call void @llvm.lifetime.end.p0(i64 32, ptr %1206) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1204) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1203) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1201) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1200) #11
  br label %10612

10612:                                            ; preds = %10611, %10540
  call void @llvm.lifetime.end.p0(i64 20, ptr %1200) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1199) #11
  br label %10613

10613:                                            ; preds = %10612, %10536
  call void @llvm.lifetime.end.p0(i64 16, ptr %1199) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1198) #11
  br label %10614

10614:                                            ; preds = %10613, %10532
  call void @llvm.lifetime.end.p0(i64 16, ptr %1198) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1197) #11
  br label %10615

10615:                                            ; preds = %10614, %10528
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1195) #11
  br label %10616

10616:                                            ; preds = %10615, %10524
  call void @llvm.lifetime.end.p0(i64 16, ptr %1195) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1194) #11
  br label %10617

10617:                                            ; preds = %10616, %10520
  call void @llvm.lifetime.end.p0(i64 16, ptr %1194) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1191) #11
  br label %10618

10618:                                            ; preds = %10617, %10519, %10507
  call void @llvm.lifetime.end.p0(i64 16, ptr %1191) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1189) #11
  br label %10619

10619:                                            ; preds = %10618, %10503, %10499
  call void @llvm.lifetime.end.p0(i64 16, ptr %1189) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1188) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1187) #11
  br label %10620

10620:                                            ; preds = %10619, %10495
  call void @llvm.lifetime.end.p0(i64 8, ptr %1186) #11
  br label %10621

10621:                                            ; preds = %10620, %10427
  call void @llvm.lifetime.end.p0(i64 16, ptr %1185) #11
  br label %10622

10622:                                            ; preds = %10621, %10423
  call void @llvm.lifetime.end.p0(i64 16, ptr %1184) #11
  br label %10623

10623:                                            ; preds = %10622, %10419
  call void @llvm.lifetime.end.p0(i64 8, ptr %1183) #11
  br label %11057

10624:                                            ; preds = %10418
  %10625 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %10626 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10627 unwind label %9164

10627:                                            ; preds = %10624
  %10628 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %10626)
          to label %10629 unwind label %9164

10629:                                            ; preds = %10627
  %10630 = icmp sgt i64 %10628, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1212) #11
  %10631 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1213) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1213)
          to label %10632 unwind label %10666

10632:                                            ; preds = %10629
  call void @llvm.lifetime.start.p0(i64 16, ptr %1214) #11
  %10633 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1214, i32 noundef %10633, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10634 unwind label %10670

10634:                                            ; preds = %10632
  call void @llvm.lifetime.start.p0(i64 20, ptr %1215) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1216) #11
  %10635 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA5_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1216, ptr noundef nonnull align 8 dereferenceable(264) %10635, ptr noundef nonnull align 1 dereferenceable(5) @.str.18)
          to label %10636 unwind label %10674

10636:                                            ; preds = %10634
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1215, ptr noundef nonnull align 8 dereferenceable(16) %1216)
          to label %10637 unwind label %10678

10637:                                            ; preds = %10636
  call void @llvm.lifetime.start.p0(i64 16, ptr %1217) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1218)
          to label %10638 unwind label %10682

10638:                                            ; preds = %10637
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1219, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10639 unwind label %10686

10639:                                            ; preds = %10638
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1217, i32 noundef 19, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1218, ptr noundef %1219)
          to label %10640 unwind label %10690

10640:                                            ; preds = %10639
  call void @llvm.lifetime.start.p0(i64 16, ptr %1220) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1220)
          to label %10641 unwind label %10694

10641:                                            ; preds = %10640
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1212, ptr noundef nonnull align 8 dereferenceable(264) %10631, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1213, ptr noundef nonnull align 8 dereferenceable(16) %1214, ptr noundef nonnull align 4 dereferenceable(20) %1215, ptr noundef nonnull align 8 dereferenceable(16) %1217, ptr noundef nonnull align 8 dereferenceable(16) %426, ptr noundef nonnull align 8 dereferenceable(16) %1220, ptr noundef nonnull align 8 dereferenceable(16) %425, i1 noundef zeroext false)
          to label %10642 unwind label %10698

10642:                                            ; preds = %10641
  %10643 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1212)
          to label %10644 unwind label %10702

10644:                                            ; preds = %10642
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1211, ptr noundef nonnull align 8 dereferenceable(136) %10643)
          to label %10645 unwind label %10702

10645:                                            ; preds = %10644
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %10625, i1 noundef zeroext %10630, ptr noundef %1211)
          to label %10646 unwind label %10706

10646:                                            ; preds = %10645
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1211) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1212) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1220) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1220) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1217) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1219) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1218) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1217) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1215) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1216) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1216) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1215) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1214) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1214) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1213) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1213) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1212) #11
  %10647 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1222) #11
  %10648 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1223) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1224) #11
  %10649 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1224, ptr noundef nonnull align 8 dereferenceable(264) %10649, ptr noundef nonnull align 8 dereferenceable(32) %452)
          to label %10650 unwind label %10720

10650:                                            ; preds = %10646
  invoke void @_ZN6langcc15NodeV_singletonERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1223, ptr noundef nonnull align 8 dereferenceable(16) %1224)
          to label %10651 unwind label %10724

10651:                                            ; preds = %10650
  call void @llvm.lifetime.start.p0(i64 16, ptr %1225) #11
  %10652 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1225, i32 noundef %10652, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10653 unwind label %10728

10653:                                            ; preds = %10651
  call void @llvm.lifetime.start.p0(i64 20, ptr %1226) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1227) #11
  %10654 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1227, ptr noundef nonnull align 8 dereferenceable(264) %10654, ptr noundef nonnull align 8 dereferenceable(32) %452)
          to label %10655 unwind label %10732

10655:                                            ; preds = %10653
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1226, ptr noundef nonnull align 8 dereferenceable(16) %1227)
          to label %10656 unwind label %10736

10656:                                            ; preds = %10655
  call void @llvm.lifetime.start.p0(i64 16, ptr %1228) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1229)
          to label %10657 unwind label %10740

10657:                                            ; preds = %10656
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1230, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10658 unwind label %10744

10658:                                            ; preds = %10657
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1228, i32 noundef 17, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1229, ptr noundef %1230)
          to label %10659 unwind label %10748

10659:                                            ; preds = %10658
  call void @llvm.lifetime.start.p0(i64 16, ptr %1231) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1231)
          to label %10660 unwind label %10752

10660:                                            ; preds = %10659
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1222, ptr noundef nonnull align 8 dereferenceable(264) %10648, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1223, ptr noundef nonnull align 8 dereferenceable(16) %1225, ptr noundef nonnull align 4 dereferenceable(20) %1226, ptr noundef nonnull align 8 dereferenceable(16) %1228, ptr noundef nonnull align 8 dereferenceable(16) %459, ptr noundef nonnull align 8 dereferenceable(16) %1231, ptr noundef nonnull align 8 dereferenceable(16) %458, i1 noundef zeroext false)
          to label %10661 unwind label %10756

10661:                                            ; preds = %10660
  %10662 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1222)
          to label %10663 unwind label %10760

10663:                                            ; preds = %10661
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1221, ptr noundef nonnull align 8 dereferenceable(136) %10662)
          to label %10664 unwind label %10760

10664:                                            ; preds = %10663
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %10647, i1 noundef zeroext true, ptr noundef %1221)
          to label %10665 unwind label %10764

10665:                                            ; preds = %10664
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1221) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1222) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1231) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1231) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1228) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1230) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1229) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1228) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1226) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1227) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1227) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1226) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1225) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1225) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1223) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1224) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1224) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1223) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1222) #11
  br label %10779

10666:                                            ; preds = %10629
  %10667 = landingpad { ptr, i32 }
          cleanup
  %10668 = extractvalue { ptr, i32 } %10667, 0
  store ptr %10668, ptr %11, align 8
  %10669 = extractvalue { ptr, i32 } %10667, 1
  store i32 %10669, ptr %12, align 4
  br label %10719

10670:                                            ; preds = %10632
  %10671 = landingpad { ptr, i32 }
          cleanup
  %10672 = extractvalue { ptr, i32 } %10671, 0
  store ptr %10672, ptr %11, align 8
  %10673 = extractvalue { ptr, i32 } %10671, 1
  store i32 %10673, ptr %12, align 4
  br label %10718

10674:                                            ; preds = %10634
  %10675 = landingpad { ptr, i32 }
          cleanup
  %10676 = extractvalue { ptr, i32 } %10675, 0
  store ptr %10676, ptr %11, align 8
  %10677 = extractvalue { ptr, i32 } %10675, 1
  store i32 %10677, ptr %12, align 4
  br label %10717

10678:                                            ; preds = %10636
  %10679 = landingpad { ptr, i32 }
          cleanup
  %10680 = extractvalue { ptr, i32 } %10679, 0
  store ptr %10680, ptr %11, align 8
  %10681 = extractvalue { ptr, i32 } %10679, 1
  store i32 %10681, ptr %12, align 4
  br label %10716

10682:                                            ; preds = %10637
  %10683 = landingpad { ptr, i32 }
          cleanup
  %10684 = extractvalue { ptr, i32 } %10683, 0
  store ptr %10684, ptr %11, align 8
  %10685 = extractvalue { ptr, i32 } %10683, 1
  store i32 %10685, ptr %12, align 4
  br label %10715

10686:                                            ; preds = %10638
  %10687 = landingpad { ptr, i32 }
          cleanup
  %10688 = extractvalue { ptr, i32 } %10687, 0
  store ptr %10688, ptr %11, align 8
  %10689 = extractvalue { ptr, i32 } %10687, 1
  store i32 %10689, ptr %12, align 4
  br label %10714

10690:                                            ; preds = %10639
  %10691 = landingpad { ptr, i32 }
          cleanup
  %10692 = extractvalue { ptr, i32 } %10691, 0
  store ptr %10692, ptr %11, align 8
  %10693 = extractvalue { ptr, i32 } %10691, 1
  store i32 %10693, ptr %12, align 4
  br label %10713

10694:                                            ; preds = %10640
  %10695 = landingpad { ptr, i32 }
          cleanup
  %10696 = extractvalue { ptr, i32 } %10695, 0
  store ptr %10696, ptr %11, align 8
  %10697 = extractvalue { ptr, i32 } %10695, 1
  store i32 %10697, ptr %12, align 4
  br label %10712

10698:                                            ; preds = %10641
  %10699 = landingpad { ptr, i32 }
          cleanup
  %10700 = extractvalue { ptr, i32 } %10699, 0
  store ptr %10700, ptr %11, align 8
  %10701 = extractvalue { ptr, i32 } %10699, 1
  store i32 %10701, ptr %12, align 4
  br label %10711

10702:                                            ; preds = %10644, %10642
  %10703 = landingpad { ptr, i32 }
          cleanup
  %10704 = extractvalue { ptr, i32 } %10703, 0
  store ptr %10704, ptr %11, align 8
  %10705 = extractvalue { ptr, i32 } %10703, 1
  store i32 %10705, ptr %12, align 4
  br label %10710

10706:                                            ; preds = %10645
  %10707 = landingpad { ptr, i32 }
          cleanup
  %10708 = extractvalue { ptr, i32 } %10707, 0
  store ptr %10708, ptr %11, align 8
  %10709 = extractvalue { ptr, i32 } %10707, 1
  store i32 %10709, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1211) #11
  br label %10710

10710:                                            ; preds = %10706, %10702
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1212) #11
  br label %10711

10711:                                            ; preds = %10710, %10698
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1220) #11
  br label %10712

10712:                                            ; preds = %10711, %10694
  call void @llvm.lifetime.end.p0(i64 16, ptr %1220) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1217) #11
  br label %10713

10713:                                            ; preds = %10712, %10690
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1219) #11
  br label %10714

10714:                                            ; preds = %10713, %10686
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1218) #11
  br label %10715

10715:                                            ; preds = %10714, %10682
  call void @llvm.lifetime.end.p0(i64 16, ptr %1217) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1215) #11
  br label %10716

10716:                                            ; preds = %10715, %10678
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1216) #11
  br label %10717

10717:                                            ; preds = %10716, %10674
  call void @llvm.lifetime.end.p0(i64 16, ptr %1216) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1215) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1214) #11
  br label %10718

10718:                                            ; preds = %10717, %10670
  call void @llvm.lifetime.end.p0(i64 16, ptr %1214) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1213) #11
  br label %10719

10719:                                            ; preds = %10718, %10666
  call void @llvm.lifetime.end.p0(i64 16, ptr %1213) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1212) #11
  br label %11057

10720:                                            ; preds = %10646
  %10721 = landingpad { ptr, i32 }
          cleanup
  %10722 = extractvalue { ptr, i32 } %10721, 0
  store ptr %10722, ptr %11, align 8
  %10723 = extractvalue { ptr, i32 } %10721, 1
  store i32 %10723, ptr %12, align 4
  br label %10778

10724:                                            ; preds = %10650
  %10725 = landingpad { ptr, i32 }
          cleanup
  %10726 = extractvalue { ptr, i32 } %10725, 0
  store ptr %10726, ptr %11, align 8
  %10727 = extractvalue { ptr, i32 } %10725, 1
  store i32 %10727, ptr %12, align 4
  br label %10777

10728:                                            ; preds = %10651
  %10729 = landingpad { ptr, i32 }
          cleanup
  %10730 = extractvalue { ptr, i32 } %10729, 0
  store ptr %10730, ptr %11, align 8
  %10731 = extractvalue { ptr, i32 } %10729, 1
  store i32 %10731, ptr %12, align 4
  br label %10776

10732:                                            ; preds = %10653
  %10733 = landingpad { ptr, i32 }
          cleanup
  %10734 = extractvalue { ptr, i32 } %10733, 0
  store ptr %10734, ptr %11, align 8
  %10735 = extractvalue { ptr, i32 } %10733, 1
  store i32 %10735, ptr %12, align 4
  br label %10775

10736:                                            ; preds = %10655
  %10737 = landingpad { ptr, i32 }
          cleanup
  %10738 = extractvalue { ptr, i32 } %10737, 0
  store ptr %10738, ptr %11, align 8
  %10739 = extractvalue { ptr, i32 } %10737, 1
  store i32 %10739, ptr %12, align 4
  br label %10774

10740:                                            ; preds = %10656
  %10741 = landingpad { ptr, i32 }
          cleanup
  %10742 = extractvalue { ptr, i32 } %10741, 0
  store ptr %10742, ptr %11, align 8
  %10743 = extractvalue { ptr, i32 } %10741, 1
  store i32 %10743, ptr %12, align 4
  br label %10773

10744:                                            ; preds = %10657
  %10745 = landingpad { ptr, i32 }
          cleanup
  %10746 = extractvalue { ptr, i32 } %10745, 0
  store ptr %10746, ptr %11, align 8
  %10747 = extractvalue { ptr, i32 } %10745, 1
  store i32 %10747, ptr %12, align 4
  br label %10772

10748:                                            ; preds = %10658
  %10749 = landingpad { ptr, i32 }
          cleanup
  %10750 = extractvalue { ptr, i32 } %10749, 0
  store ptr %10750, ptr %11, align 8
  %10751 = extractvalue { ptr, i32 } %10749, 1
  store i32 %10751, ptr %12, align 4
  br label %10771

10752:                                            ; preds = %10659
  %10753 = landingpad { ptr, i32 }
          cleanup
  %10754 = extractvalue { ptr, i32 } %10753, 0
  store ptr %10754, ptr %11, align 8
  %10755 = extractvalue { ptr, i32 } %10753, 1
  store i32 %10755, ptr %12, align 4
  br label %10770

10756:                                            ; preds = %10660
  %10757 = landingpad { ptr, i32 }
          cleanup
  %10758 = extractvalue { ptr, i32 } %10757, 0
  store ptr %10758, ptr %11, align 8
  %10759 = extractvalue { ptr, i32 } %10757, 1
  store i32 %10759, ptr %12, align 4
  br label %10769

10760:                                            ; preds = %10663, %10661
  %10761 = landingpad { ptr, i32 }
          cleanup
  %10762 = extractvalue { ptr, i32 } %10761, 0
  store ptr %10762, ptr %11, align 8
  %10763 = extractvalue { ptr, i32 } %10761, 1
  store i32 %10763, ptr %12, align 4
  br label %10768

10764:                                            ; preds = %10664
  %10765 = landingpad { ptr, i32 }
          cleanup
  %10766 = extractvalue { ptr, i32 } %10765, 0
  store ptr %10766, ptr %11, align 8
  %10767 = extractvalue { ptr, i32 } %10765, 1
  store i32 %10767, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1221) #11
  br label %10768

10768:                                            ; preds = %10764, %10760
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1222) #11
  br label %10769

10769:                                            ; preds = %10768, %10756
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1231) #11
  br label %10770

10770:                                            ; preds = %10769, %10752
  call void @llvm.lifetime.end.p0(i64 16, ptr %1231) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1228) #11
  br label %10771

10771:                                            ; preds = %10770, %10748
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1230) #11
  br label %10772

10772:                                            ; preds = %10771, %10744
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1229) #11
  br label %10773

10773:                                            ; preds = %10772, %10740
  call void @llvm.lifetime.end.p0(i64 16, ptr %1228) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1226) #11
  br label %10774

10774:                                            ; preds = %10773, %10736
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1227) #11
  br label %10775

10775:                                            ; preds = %10774, %10732
  call void @llvm.lifetime.end.p0(i64 16, ptr %1227) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1226) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1225) #11
  br label %10776

10776:                                            ; preds = %10775, %10728
  call void @llvm.lifetime.end.p0(i64 16, ptr %1225) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1223) #11
  br label %10777

10777:                                            ; preds = %10776, %10724
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1224) #11
  br label %10778

10778:                                            ; preds = %10777, %10720
  call void @llvm.lifetime.end.p0(i64 16, ptr %1224) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1223) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1222) #11
  br label %11057

10779:                                            ; preds = %10665, %9966
  %10780 = getelementptr inbounds %"struct.std::pair.131", ptr %250, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %1232, ptr noundef nonnull align 8 dereferenceable(16) %10780)
          to label %10781 unwind label %9164

10781:                                            ; preds = %10779
  %10782 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef %1232)
          to label %10783 unwind label %10867

10783:                                            ; preds = %10781
  %10784 = xor i1 %10782, true
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1232) #11
  br i1 %10784, label %10785, label %11054

10785:                                            ; preds = %10783
  %10786 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %10787 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10788 unwind label %9164

10788:                                            ; preds = %10785
  %10789 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %10787)
          to label %10790 unwind label %9164

10790:                                            ; preds = %10788
  %10791 = icmp sgt i64 %10789, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1234) #11
  %10792 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1235) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1235)
          to label %10793 unwind label %10871

10793:                                            ; preds = %10790
  call void @llvm.lifetime.start.p0(i64 16, ptr %1236) #11
  %10794 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1236, i32 noundef %10794, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10795 unwind label %10875

10795:                                            ; preds = %10793
  call void @llvm.lifetime.start.p0(i64 20, ptr %1237) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1238) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1239) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1240) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %1241) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %1243) #11
  store i1 true, ptr %1246, align 1
  store ptr %1243, ptr %1244, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %1245) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1245) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1243, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %1245)
          to label %10796 unwind label %10879

10796:                                            ; preds = %10795
  store i1 false, ptr %1246, align 1
  %10797 = getelementptr inbounds %"class.std::initializer_list", ptr %1242, i32 0, i32 0
  store ptr %1243, ptr %10797, align 8, !tbaa !11
  %10798 = getelementptr inbounds %"class.std::initializer_list", ptr %1242, i32 0, i32 1
  store i64 1, ptr %10798, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %1247) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1247) #11
  %10799 = getelementptr inbounds { ptr, i64 }, ptr %1242, i32 0, i32 0
  %10800 = load ptr, ptr %10799, align 8
  %10801 = getelementptr inbounds { ptr, i64 }, ptr %1242, i32 0, i32 1
  %10802 = load i64, ptr %10801, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %1241, ptr %10800, i64 %10802, ptr noundef nonnull align 1 dereferenceable(1) %1247)
          to label %10803 unwind label %10883

10803:                                            ; preds = %10796
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %1240, ptr noundef nonnull align 8 dereferenceable(24) %1241)
          to label %10804 unwind label %10887

10804:                                            ; preds = %10803
  %10805 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %1239, ptr noundef nonnull align 8 dereferenceable(16) %1240, ptr noundef nonnull align 8 dereferenceable(264) %10805)
          to label %10806 unwind label %10891

10806:                                            ; preds = %10804
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1238, ptr noundef nonnull align 8 dereferenceable(16) %1239)
          to label %10807 unwind label %10895

10807:                                            ; preds = %10806
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1237, ptr noundef nonnull align 8 dereferenceable(16) %1238)
          to label %10808 unwind label %10899

10808:                                            ; preds = %10807
  call void @llvm.lifetime.start.p0(i64 16, ptr %1248) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1249)
          to label %10809 unwind label %10903

10809:                                            ; preds = %10808
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1250, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10810 unwind label %10907

10810:                                            ; preds = %10809
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1248, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1249, ptr noundef %1250)
          to label %10811 unwind label %10911

10811:                                            ; preds = %10810
  call void @llvm.lifetime.start.p0(i64 16, ptr %1251) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1251)
          to label %10812 unwind label %10915

10812:                                            ; preds = %10811
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1234, ptr noundef nonnull align 8 dereferenceable(264) %10792, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1235, ptr noundef nonnull align 8 dereferenceable(16) %1236, ptr noundef nonnull align 4 dereferenceable(20) %1237, ptr noundef nonnull align 8 dereferenceable(16) %1248, ptr noundef nonnull align 8 dereferenceable(16) %657, ptr noundef nonnull align 8 dereferenceable(16) %1251, ptr noundef nonnull align 8 dereferenceable(16) %656, i1 noundef zeroext true)
          to label %10813 unwind label %10919

10813:                                            ; preds = %10812
  %10814 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1234)
          to label %10815 unwind label %10923

10815:                                            ; preds = %10813
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1233, ptr noundef nonnull align 8 dereferenceable(136) %10814)
          to label %10816 unwind label %10923

10816:                                            ; preds = %10815
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %10786, i1 noundef zeroext %10791, ptr noundef %1233)
          to label %10817 unwind label %10927

10817:                                            ; preds = %10816
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1233) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1234) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1251) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1251) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1248) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1250) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1249) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1248) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1237) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1238) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1239) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1240) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1241) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1247) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1247) #11
  %10818 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1243, i32 0, i32 0
  %10819 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10818, i64 1
  br label %10820

10820:                                            ; preds = %10820, %10817
  %10821 = phi ptr [ %10819, %10817 ], [ %10822, %10820 ]
  %10822 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10821, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10822) #11
  %10823 = icmp eq ptr %10822, %10818
  br i1 %10823, label %10824, label %10820

10824:                                            ; preds = %10820
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1245) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1245) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1243) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1241) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1240) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1239) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1238) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1237) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1236) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1236) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1235) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1235) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1234) #11
  %10825 = load i8, ptr %263, align 1, !tbaa !18, !range !20, !noundef !21
  %10826 = trunc i8 %10825 to i1
  br i1 %10826, label %11053, label %10827

10827:                                            ; preds = %10824
  %10828 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %10829 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10830 unwind label %9164

10830:                                            ; preds = %10827
  %10831 = invoke noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %10829)
          to label %10832 unwind label %9164

10832:                                            ; preds = %10830
  %10833 = icmp sgt i64 %10831, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1253) #11
  %10834 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %1254) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1254)
          to label %10835 unwind label %10962

10835:                                            ; preds = %10832
  call void @llvm.lifetime.start.p0(i64 16, ptr %1255) #11
  %10836 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1255, i32 noundef %10836, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %10837 unwind label %10966

10837:                                            ; preds = %10835
  call void @llvm.lifetime.start.p0(i64 20, ptr %1256) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1257) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1258) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %1259) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %1260) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %1262) #11
  store i1 true, ptr %1265, align 1
  store ptr %1262, ptr %1263, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %1264) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1264) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1262, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %1264)
          to label %10838 unwind label %10970

10838:                                            ; preds = %10837
  store i1 false, ptr %1265, align 1
  %10839 = getelementptr inbounds %"class.std::initializer_list", ptr %1261, i32 0, i32 0
  store ptr %1262, ptr %10839, align 8, !tbaa !11
  %10840 = getelementptr inbounds %"class.std::initializer_list", ptr %1261, i32 0, i32 1
  store i64 1, ptr %10840, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %1266) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1266) #11
  %10841 = getelementptr inbounds { ptr, i64 }, ptr %1261, i32 0, i32 0
  %10842 = load ptr, ptr %10841, align 8
  %10843 = getelementptr inbounds { ptr, i64 }, ptr %1261, i32 0, i32 1
  %10844 = load i64, ptr %10843, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %1260, ptr %10842, i64 %10844, ptr noundef nonnull align 1 dereferenceable(1) %1266)
          to label %10845 unwind label %10974

10845:                                            ; preds = %10838
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.0") align 8 %1259, ptr noundef nonnull align 8 dereferenceable(24) %1260)
          to label %10846 unwind label %10978

10846:                                            ; preds = %10845
  %10847 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.78") align 8 %1258, ptr noundef nonnull align 8 dereferenceable(16) %1259, ptr noundef nonnull align 8 dereferenceable(264) %10847)
          to label %10848 unwind label %10982

10848:                                            ; preds = %10846
  invoke void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1257, ptr noundef nonnull align 8 dereferenceable(16) %1258)
          to label %10849 unwind label %10986

10849:                                            ; preds = %10848
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.117") align 4 %1256, ptr noundef nonnull align 8 dereferenceable(16) %1257)
          to label %10850 unwind label %10990

10850:                                            ; preds = %10849
  call void @llvm.lifetime.start.p0(i64 16, ptr %1267) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.72") align 4 %1268)
          to label %10851 unwind label %10994

10851:                                            ; preds = %10850
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind writable sret(%"struct.langcc::Option::_T.77") align 4 %1269, ptr noundef nonnull align 8 dereferenceable(16) %260)
          to label %10852 unwind label %10998

10852:                                            ; preds = %10851
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1267, i32 noundef 23, ptr noundef nonnull align 8 dereferenceable(16) %251, ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1268, ptr noundef %1269)
          to label %10853 unwind label %11002

10853:                                            ; preds = %10852
  call void @llvm.lifetime.start.p0(i64 16, ptr %1270) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.12") align 8 %1270)
          to label %10854 unwind label %11006

10854:                                            ; preds = %10853
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.76") align 8 %1253, ptr noundef nonnull align 8 dereferenceable(264) %10834, ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull align 8 dereferenceable(16) %1254, ptr noundef nonnull align 8 dereferenceable(16) %1255, ptr noundef nonnull align 4 dereferenceable(20) %1256, ptr noundef nonnull align 8 dereferenceable(16) %1267, ptr noundef nonnull align 8 dereferenceable(16) %627, ptr noundef nonnull align 8 dereferenceable(16) %1270, ptr noundef nonnull align 8 dereferenceable(16) %626, i1 noundef zeroext true)
          to label %10855 unwind label %11010

10855:                                            ; preds = %10854
  %10856 = invoke noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1253)
          to label %10857 unwind label %11014

10857:                                            ; preds = %10855
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8 %1252, ptr noundef nonnull align 8 dereferenceable(136) %10856)
          to label %10858 unwind label %11014

10858:                                            ; preds = %10857
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %10828, i1 noundef zeroext %10833, ptr noundef %1252)
          to label %10859 unwind label %11018

10859:                                            ; preds = %10858
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1252) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1253) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1270) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1270) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1267) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1269) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1268) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1267) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1256) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1257) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1258) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1259) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1260) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1266) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1266) #11
  %10860 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1262, i32 0, i32 0
  %10861 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10860, i64 1
  br label %10862

10862:                                            ; preds = %10862, %10859
  %10863 = phi ptr [ %10861, %10859 ], [ %10864, %10862 ]
  %10864 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10863, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10864) #11
  %10865 = icmp eq ptr %10864, %10860
  br i1 %10865, label %10866, label %10862

10866:                                            ; preds = %10862
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1264) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1264) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1262) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1260) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1259) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1258) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1257) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1256) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1255) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1255) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1254) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1254) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1253) #11
  br label %11053

10867:                                            ; preds = %10781
  %10868 = landingpad { ptr, i32 }
          cleanup
  %10869 = extractvalue { ptr, i32 } %10868, 0
  store ptr %10869, ptr %11, align 8
  %10870 = extractvalue { ptr, i32 } %10868, 1
  store i32 %10870, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1232) #11
  br label %11057

10871:                                            ; preds = %10790
  %10872 = landingpad { ptr, i32 }
          cleanup
  %10873 = extractvalue { ptr, i32 } %10872, 0
  store ptr %10873, ptr %11, align 8
  %10874 = extractvalue { ptr, i32 } %10872, 1
  store i32 %10874, ptr %12, align 4
  br label %10961

10875:                                            ; preds = %10793
  %10876 = landingpad { ptr, i32 }
          cleanup
  %10877 = extractvalue { ptr, i32 } %10876, 0
  store ptr %10877, ptr %11, align 8
  %10878 = extractvalue { ptr, i32 } %10876, 1
  store i32 %10878, ptr %12, align 4
  br label %10960

10879:                                            ; preds = %10795
  %10880 = landingpad { ptr, i32 }
          cleanup
  %10881 = extractvalue { ptr, i32 } %10880, 0
  store ptr %10881, ptr %11, align 8
  %10882 = extractvalue { ptr, i32 } %10880, 1
  store i32 %10882, ptr %12, align 4
  br label %10949

10883:                                            ; preds = %10796
  %10884 = landingpad { ptr, i32 }
          cleanup
  %10885 = extractvalue { ptr, i32 } %10884, 0
  store ptr %10885, ptr %11, align 8
  %10886 = extractvalue { ptr, i32 } %10884, 1
  store i32 %10886, ptr %12, align 4
  br label %10941

10887:                                            ; preds = %10803
  %10888 = landingpad { ptr, i32 }
          cleanup
  %10889 = extractvalue { ptr, i32 } %10888, 0
  store ptr %10889, ptr %11, align 8
  %10890 = extractvalue { ptr, i32 } %10888, 1
  store i32 %10890, ptr %12, align 4
  br label %10940

10891:                                            ; preds = %10804
  %10892 = landingpad { ptr, i32 }
          cleanup
  %10893 = extractvalue { ptr, i32 } %10892, 0
  store ptr %10893, ptr %11, align 8
  %10894 = extractvalue { ptr, i32 } %10892, 1
  store i32 %10894, ptr %12, align 4
  br label %10939

10895:                                            ; preds = %10806
  %10896 = landingpad { ptr, i32 }
          cleanup
  %10897 = extractvalue { ptr, i32 } %10896, 0
  store ptr %10897, ptr %11, align 8
  %10898 = extractvalue { ptr, i32 } %10896, 1
  store i32 %10898, ptr %12, align 4
  br label %10938

10899:                                            ; preds = %10807
  %10900 = landingpad { ptr, i32 }
          cleanup
  %10901 = extractvalue { ptr, i32 } %10900, 0
  store ptr %10901, ptr %11, align 8
  %10902 = extractvalue { ptr, i32 } %10900, 1
  store i32 %10902, ptr %12, align 4
  br label %10937

10903:                                            ; preds = %10808
  %10904 = landingpad { ptr, i32 }
          cleanup
  %10905 = extractvalue { ptr, i32 } %10904, 0
  store ptr %10905, ptr %11, align 8
  %10906 = extractvalue { ptr, i32 } %10904, 1
  store i32 %10906, ptr %12, align 4
  br label %10936

10907:                                            ; preds = %10809
  %10908 = landingpad { ptr, i32 }
          cleanup
  %10909 = extractvalue { ptr, i32 } %10908, 0
  store ptr %10909, ptr %11, align 8
  %10910 = extractvalue { ptr, i32 } %10908, 1
  store i32 %10910, ptr %12, align 4
  br label %10935

10911:                                            ; preds = %10810
  %10912 = landingpad { ptr, i32 }
          cleanup
  %10913 = extractvalue { ptr, i32 } %10912, 0
  store ptr %10913, ptr %11, align 8
  %10914 = extractvalue { ptr, i32 } %10912, 1
  store i32 %10914, ptr %12, align 4
  br label %10934

10915:                                            ; preds = %10811
  %10916 = landingpad { ptr, i32 }
          cleanup
  %10917 = extractvalue { ptr, i32 } %10916, 0
  store ptr %10917, ptr %11, align 8
  %10918 = extractvalue { ptr, i32 } %10916, 1
  store i32 %10918, ptr %12, align 4
  br label %10933

10919:                                            ; preds = %10812
  %10920 = landingpad { ptr, i32 }
          cleanup
  %10921 = extractvalue { ptr, i32 } %10920, 0
  store ptr %10921, ptr %11, align 8
  %10922 = extractvalue { ptr, i32 } %10920, 1
  store i32 %10922, ptr %12, align 4
  br label %10932

10923:                                            ; preds = %10815, %10813
  %10924 = landingpad { ptr, i32 }
          cleanup
  %10925 = extractvalue { ptr, i32 } %10924, 0
  store ptr %10925, ptr %11, align 8
  %10926 = extractvalue { ptr, i32 } %10924, 1
  store i32 %10926, ptr %12, align 4
  br label %10931

10927:                                            ; preds = %10816
  %10928 = landingpad { ptr, i32 }
          cleanup
  %10929 = extractvalue { ptr, i32 } %10928, 0
  store ptr %10929, ptr %11, align 8
  %10930 = extractvalue { ptr, i32 } %10928, 1
  store i32 %10930, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1233) #11
  br label %10931

10931:                                            ; preds = %10927, %10923
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1234) #11
  br label %10932

10932:                                            ; preds = %10931, %10919
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1251) #11
  br label %10933

10933:                                            ; preds = %10932, %10915
  call void @llvm.lifetime.end.p0(i64 16, ptr %1251) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1248) #11
  br label %10934

10934:                                            ; preds = %10933, %10911
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1250) #11
  br label %10935

10935:                                            ; preds = %10934, %10907
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1249) #11
  br label %10936

10936:                                            ; preds = %10935, %10903
  call void @llvm.lifetime.end.p0(i64 16, ptr %1248) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1237) #11
  br label %10937

10937:                                            ; preds = %10936, %10899
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1238) #11
  br label %10938

10938:                                            ; preds = %10937, %10895
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1239) #11
  br label %10939

10939:                                            ; preds = %10938, %10891
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1240) #11
  br label %10940

10940:                                            ; preds = %10939, %10887
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1241) #11
  br label %10941

10941:                                            ; preds = %10940, %10883
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1247) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1247) #11
  %10942 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1243, i32 0, i32 0
  %10943 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10942, i64 1
  br label %10944

10944:                                            ; preds = %10944, %10941
  %10945 = phi ptr [ %10943, %10941 ], [ %10946, %10944 ]
  %10946 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10945, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10946) #11
  %10947 = icmp eq ptr %10946, %10942
  br i1 %10947, label %10948, label %10944

10948:                                            ; preds = %10944
  br label %10949

10949:                                            ; preds = %10948, %10879
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1245) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1245) #11
  %10950 = load i1, ptr %1246, align 1
  br i1 %10950, label %10951, label %10959

10951:                                            ; preds = %10949
  %10952 = load ptr, ptr %1244, align 8
  %10953 = icmp eq ptr %1243, %10952
  br i1 %10953, label %10958, label %10954

10954:                                            ; preds = %10954, %10951
  %10955 = phi ptr [ %10952, %10951 ], [ %10956, %10954 ]
  %10956 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10955, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10956) #11
  %10957 = icmp eq ptr %10956, %1243
  br i1 %10957, label %10958, label %10954

10958:                                            ; preds = %10954, %10951
  br label %10959

10959:                                            ; preds = %10958, %10949
  call void @llvm.lifetime.end.p0(i64 32, ptr %1243) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1241) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1240) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1239) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1238) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1237) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1236) #11
  br label %10960

10960:                                            ; preds = %10959, %10875
  call void @llvm.lifetime.end.p0(i64 16, ptr %1236) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1235) #11
  br label %10961

10961:                                            ; preds = %10960, %10871
  call void @llvm.lifetime.end.p0(i64 16, ptr %1235) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1234) #11
  br label %11057

10962:                                            ; preds = %10832
  %10963 = landingpad { ptr, i32 }
          cleanup
  %10964 = extractvalue { ptr, i32 } %10963, 0
  store ptr %10964, ptr %11, align 8
  %10965 = extractvalue { ptr, i32 } %10963, 1
  store i32 %10965, ptr %12, align 4
  br label %11052

10966:                                            ; preds = %10835
  %10967 = landingpad { ptr, i32 }
          cleanup
  %10968 = extractvalue { ptr, i32 } %10967, 0
  store ptr %10968, ptr %11, align 8
  %10969 = extractvalue { ptr, i32 } %10967, 1
  store i32 %10969, ptr %12, align 4
  br label %11051

10970:                                            ; preds = %10837
  %10971 = landingpad { ptr, i32 }
          cleanup
  %10972 = extractvalue { ptr, i32 } %10971, 0
  store ptr %10972, ptr %11, align 8
  %10973 = extractvalue { ptr, i32 } %10971, 1
  store i32 %10973, ptr %12, align 4
  br label %11040

10974:                                            ; preds = %10838
  %10975 = landingpad { ptr, i32 }
          cleanup
  %10976 = extractvalue { ptr, i32 } %10975, 0
  store ptr %10976, ptr %11, align 8
  %10977 = extractvalue { ptr, i32 } %10975, 1
  store i32 %10977, ptr %12, align 4
  br label %11032

10978:                                            ; preds = %10845
  %10979 = landingpad { ptr, i32 }
          cleanup
  %10980 = extractvalue { ptr, i32 } %10979, 0
  store ptr %10980, ptr %11, align 8
  %10981 = extractvalue { ptr, i32 } %10979, 1
  store i32 %10981, ptr %12, align 4
  br label %11031

10982:                                            ; preds = %10846
  %10983 = landingpad { ptr, i32 }
          cleanup
  %10984 = extractvalue { ptr, i32 } %10983, 0
  store ptr %10984, ptr %11, align 8
  %10985 = extractvalue { ptr, i32 } %10983, 1
  store i32 %10985, ptr %12, align 4
  br label %11030

10986:                                            ; preds = %10848
  %10987 = landingpad { ptr, i32 }
          cleanup
  %10988 = extractvalue { ptr, i32 } %10987, 0
  store ptr %10988, ptr %11, align 8
  %10989 = extractvalue { ptr, i32 } %10987, 1
  store i32 %10989, ptr %12, align 4
  br label %11029

10990:                                            ; preds = %10849
  %10991 = landingpad { ptr, i32 }
          cleanup
  %10992 = extractvalue { ptr, i32 } %10991, 0
  store ptr %10992, ptr %11, align 8
  %10993 = extractvalue { ptr, i32 } %10991, 1
  store i32 %10993, ptr %12, align 4
  br label %11028

10994:                                            ; preds = %10850
  %10995 = landingpad { ptr, i32 }
          cleanup
  %10996 = extractvalue { ptr, i32 } %10995, 0
  store ptr %10996, ptr %11, align 8
  %10997 = extractvalue { ptr, i32 } %10995, 1
  store i32 %10997, ptr %12, align 4
  br label %11027

10998:                                            ; preds = %10851
  %10999 = landingpad { ptr, i32 }
          cleanup
  %11000 = extractvalue { ptr, i32 } %10999, 0
  store ptr %11000, ptr %11, align 8
  %11001 = extractvalue { ptr, i32 } %10999, 1
  store i32 %11001, ptr %12, align 4
  br label %11026

11002:                                            ; preds = %10852
  %11003 = landingpad { ptr, i32 }
          cleanup
  %11004 = extractvalue { ptr, i32 } %11003, 0
  store ptr %11004, ptr %11, align 8
  %11005 = extractvalue { ptr, i32 } %11003, 1
  store i32 %11005, ptr %12, align 4
  br label %11025

11006:                                            ; preds = %10853
  %11007 = landingpad { ptr, i32 }
          cleanup
  %11008 = extractvalue { ptr, i32 } %11007, 0
  store ptr %11008, ptr %11, align 8
  %11009 = extractvalue { ptr, i32 } %11007, 1
  store i32 %11009, ptr %12, align 4
  br label %11024

11010:                                            ; preds = %10854
  %11011 = landingpad { ptr, i32 }
          cleanup
  %11012 = extractvalue { ptr, i32 } %11011, 0
  store ptr %11012, ptr %11, align 8
  %11013 = extractvalue { ptr, i32 } %11011, 1
  store i32 %11013, ptr %12, align 4
  br label %11023

11014:                                            ; preds = %10857, %10855
  %11015 = landingpad { ptr, i32 }
          cleanup
  %11016 = extractvalue { ptr, i32 } %11015, 0
  store ptr %11016, ptr %11, align 8
  %11017 = extractvalue { ptr, i32 } %11015, 1
  store i32 %11017, ptr %12, align 4
  br label %11022

11018:                                            ; preds = %10858
  %11019 = landingpad { ptr, i32 }
          cleanup
  %11020 = extractvalue { ptr, i32 } %11019, 0
  store ptr %11020, ptr %11, align 8
  %11021 = extractvalue { ptr, i32 } %11019, 1
  store i32 %11021, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1252) #11
  br label %11022

11022:                                            ; preds = %11018, %11014
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1253) #11
  br label %11023

11023:                                            ; preds = %11022, %11010
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1270) #11
  br label %11024

11024:                                            ; preds = %11023, %11006
  call void @llvm.lifetime.end.p0(i64 16, ptr %1270) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1267) #11
  br label %11025

11025:                                            ; preds = %11024, %11002
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1269) #11
  br label %11026

11026:                                            ; preds = %11025, %10998
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1268) #11
  br label %11027

11027:                                            ; preds = %11026, %10994
  call void @llvm.lifetime.end.p0(i64 16, ptr %1267) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1256) #11
  br label %11028

11028:                                            ; preds = %11027, %10990
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1257) #11
  br label %11029

11029:                                            ; preds = %11028, %10986
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1258) #11
  br label %11030

11030:                                            ; preds = %11029, %10982
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1259) #11
  br label %11031

11031:                                            ; preds = %11030, %10978
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1260) #11
  br label %11032

11032:                                            ; preds = %11031, %10974
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1266) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1266) #11
  %11033 = getelementptr inbounds [1 x %"class.std::__cxx11::basic_string"], ptr %1262, i32 0, i32 0
  %11034 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %11033, i64 1
  br label %11035

11035:                                            ; preds = %11035, %11032
  %11036 = phi ptr [ %11034, %11032 ], [ %11037, %11035 ]
  %11037 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %11036, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11037) #11
  %11038 = icmp eq ptr %11037, %11033
  br i1 %11038, label %11039, label %11035

11039:                                            ; preds = %11035
  br label %11040

11040:                                            ; preds = %11039, %10970
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1264) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %1264) #11
  %11041 = load i1, ptr %1265, align 1
  br i1 %11041, label %11042, label %11050

11042:                                            ; preds = %11040
  %11043 = load ptr, ptr %1263, align 8
  %11044 = icmp eq ptr %1262, %11043
  br i1 %11044, label %11049, label %11045

11045:                                            ; preds = %11045, %11042
  %11046 = phi ptr [ %11043, %11042 ], [ %11047, %11045 ]
  %11047 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %11046, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11047) #11
  %11048 = icmp eq ptr %11047, %1262
  br i1 %11048, label %11049, label %11045

11049:                                            ; preds = %11045, %11042
  br label %11050

11050:                                            ; preds = %11049, %11040
  call void @llvm.lifetime.end.p0(i64 32, ptr %1262) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %1260) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1259) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1258) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1257) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %1256) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1255) #11
  br label %11051

11051:                                            ; preds = %11050, %10966
  call void @llvm.lifetime.end.p0(i64 16, ptr %1255) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1254) #11
  br label %11052

11052:                                            ; preds = %11051, %10962
  call void @llvm.lifetime.end.p0(i64 16, ptr %1254) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1253) #11
  br label %11057

11053:                                            ; preds = %10866, %10824
  br label %11054

11054:                                            ; preds = %11053, %10783
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1030) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1030) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %658) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %658) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %657) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %657) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %656) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %656) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %653) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %653) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %650) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %650) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %647) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %647) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %645) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %645) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %634) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %634) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %628) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %628) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %627) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %627) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %626) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %626) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %623) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %623) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %620) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %620) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %618) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %618) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %607) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %607) #11
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry6Method2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %572) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %572) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %507) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %507) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %502) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %502) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %497) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %497) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %496) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %496) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %495) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %495) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %494) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %494) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %485) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %485) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %474) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %474) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %460) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %460) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %459) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %459) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %458) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %458) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %456) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %456) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %452) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %441) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %441) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %427) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %427) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %426) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %426) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %425) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %425) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %423) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %423) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %412) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %412) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %395) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %395) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %394) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %394) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %393) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %393) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %376) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %376) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %375) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %375) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %374) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %374) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %357) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %357) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %356) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %356) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %355) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %355) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %334) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %334) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %333) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %333) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %332) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %332) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %331) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %331) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %330) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr %330) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %326) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %326) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %325) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %325) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %321) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %320) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %320) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %318) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %318) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %307) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %307) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %303) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %302) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %302) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %301) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %301) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %299) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %299) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %273) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %273) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %272) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %272) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %271) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %271) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %269) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %269) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %268) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESI_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %264) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %264) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %262) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %262) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %260) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %260) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %257) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %257) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %254) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %254) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %252) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %252) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %251) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %251) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %247) #11
  br label %11055

11055:                                            ; preds = %11054
  %11056 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %245) #11
  br label %3046

11057:                                            ; preds = %11052, %10961, %10867, %10778, %10719, %10623, %10392, %10168, %9965, %9554, %9474, %9425, %9361, %9220, %9211, %9185, %9164
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1030) #11
  br label %11058

11058:                                            ; preds = %11057, %9160
  call void @llvm.lifetime.end.p0(i64 16, ptr %1030) #11
  br label %11059

11059:                                            ; preds = %11058, %9136, %9101, %9092, %9065, %9041, %8992, %8919, %8740, %8568, %8392, %8051, %8007, %7998, %7953, %7390, %7262, %7224, %7186, %7135, %7131, %7095
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %658) #11
  br label %11060

11060:                                            ; preds = %11059, %6019
  call void @llvm.lifetime.end.p0(i64 16, ptr %658) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %657) #11
  br label %11061

11061:                                            ; preds = %11060, %5992
  call void @llvm.lifetime.end.p0(i64 16, ptr %657) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %656) #11
  br label %11062

11062:                                            ; preds = %11061, %5988
  call void @llvm.lifetime.end.p0(i64 16, ptr %656) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %653) #11
  br label %11063

11063:                                            ; preds = %11062, %5987, %5975
  call void @llvm.lifetime.end.p0(i64 16, ptr %653) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %650) #11
  br label %11064

11064:                                            ; preds = %11063, %5974, %5962
  call void @llvm.lifetime.end.p0(i64 16, ptr %650) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %647) #11
  br label %11065

11065:                                            ; preds = %11064, %5961, %5949
  call void @llvm.lifetime.end.p0(i64 16, ptr %647) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %645) #11
  br label %11066

11066:                                            ; preds = %11065, %5945, %5941
  call void @llvm.lifetime.end.p0(i64 16, ptr %645) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %634) #11
  br label %11067

11067:                                            ; preds = %11066, %5940
  call void @llvm.lifetime.end.p0(i64 16, ptr %634) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %628) #11
  br label %11068

11068:                                            ; preds = %11067, %5899
  call void @llvm.lifetime.end.p0(i64 16, ptr %628) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %627) #11
  br label %11069

11069:                                            ; preds = %11068, %5872
  call void @llvm.lifetime.end.p0(i64 16, ptr %627) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %626) #11
  br label %11070

11070:                                            ; preds = %11069, %5868
  call void @llvm.lifetime.end.p0(i64 16, ptr %626) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %623) #11
  br label %11071

11071:                                            ; preds = %11070, %5867, %5855
  call void @llvm.lifetime.end.p0(i64 16, ptr %623) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %620) #11
  br label %11072

11072:                                            ; preds = %11071, %5854, %5842
  call void @llvm.lifetime.end.p0(i64 16, ptr %620) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %618) #11
  br label %11073

11073:                                            ; preds = %11072, %5838, %5834
  call void @llvm.lifetime.end.p0(i64 16, ptr %618) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %607) #11
  br label %11074

11074:                                            ; preds = %11073, %5833
  call void @llvm.lifetime.end.p0(i64 16, ptr %607) #11
  br label %11075

11075:                                            ; preds = %11074, %5683
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry6Method2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %572) #11
  br label %11076

11076:                                            ; preds = %11075, %5342, %5338
  call void @llvm.lifetime.end.p0(i64 16, ptr %572) #11
  br label %11077

11077:                                            ; preds = %11076, %5337, %5265, %5096, %5087, %5055, %5032
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %507) #11
  br label %11078

11078:                                            ; preds = %11077, %4845
  call void @llvm.lifetime.end.p0(i64 16, ptr %507) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %502) #11
  br label %11079

11079:                                            ; preds = %11078, %4816
  call void @llvm.lifetime.end.p0(i64 16, ptr %502) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %497) #11
  br label %11080

11080:                                            ; preds = %11079, %4802
  call void @llvm.lifetime.end.p0(i64 16, ptr %497) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %496) #11
  br label %11081

11081:                                            ; preds = %11080, %4785
  call void @llvm.lifetime.end.p0(i64 16, ptr %496) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %495) #11
  br label %11082

11082:                                            ; preds = %11081, %4781
  call void @llvm.lifetime.end.p0(i64 16, ptr %495) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %494) #11
  br label %11083

11083:                                            ; preds = %11082, %4777
  call void @llvm.lifetime.end.p0(i64 16, ptr %494) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %485) #11
  br label %11084

11084:                                            ; preds = %11083, %4776
  call void @llvm.lifetime.end.p0(i64 16, ptr %485) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %474) #11
  br label %11085

11085:                                            ; preds = %11084, %4740
  call void @llvm.lifetime.end.p0(i64 16, ptr %474) #11
  br label %11086

11086:                                            ; preds = %11085, %4611
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %460) #11
  br label %11087

11087:                                            ; preds = %11086, %4532
  call void @llvm.lifetime.end.p0(i64 16, ptr %460) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %459) #11
  br label %11088

11088:                                            ; preds = %11087, %4528
  call void @llvm.lifetime.end.p0(i64 16, ptr %459) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %458) #11
  br label %11089

11089:                                            ; preds = %11088, %4524
  call void @llvm.lifetime.end.p0(i64 16, ptr %458) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %456) #11
  br label %11090

11090:                                            ; preds = %11089, %4520, %4516
  call void @llvm.lifetime.end.p0(i64 16, ptr %456) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #11
  br label %11091

11091:                                            ; preds = %11090, %4515, %4503
  call void @llvm.lifetime.end.p0(i64 32, ptr %452) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %441) #11
  br label %11092

11092:                                            ; preds = %11091, %4502
  call void @llvm.lifetime.end.p0(i64 16, ptr %441) #11
  br label %11093

11093:                                            ; preds = %11092, %4403
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %427) #11
  br label %11094

11094:                                            ; preds = %11093, %4324
  call void @llvm.lifetime.end.p0(i64 16, ptr %427) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %426) #11
  br label %11095

11095:                                            ; preds = %11094, %4320
  call void @llvm.lifetime.end.p0(i64 16, ptr %426) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %425) #11
  br label %11096

11096:                                            ; preds = %11095, %4316
  call void @llvm.lifetime.end.p0(i64 16, ptr %425) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %423) #11
  br label %11097

11097:                                            ; preds = %11096, %4312, %4308
  call void @llvm.lifetime.end.p0(i64 16, ptr %423) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %412) #11
  br label %11098

11098:                                            ; preds = %11097, %4307
  call void @llvm.lifetime.end.p0(i64 16, ptr %412) #11
  br label %11099

11099:                                            ; preds = %11098, %4212
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %395) #11
  br label %11100

11100:                                            ; preds = %11099, %4090
  call void @llvm.lifetime.end.p0(i64 200, ptr %395) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %394) #11
  br label %11101

11101:                                            ; preds = %11100, %4086
  call void @llvm.lifetime.end.p0(i64 200, ptr %394) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %393) #11
  br label %11102

11102:                                            ; preds = %11101, %4082
  call void @llvm.lifetime.end.p0(i64 200, ptr %393) #11
  br label %11103

11103:                                            ; preds = %11102, %4048
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %376) #11
  br label %11104

11104:                                            ; preds = %11103, %3926
  call void @llvm.lifetime.end.p0(i64 200, ptr %376) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %375) #11
  br label %11105

11105:                                            ; preds = %11104, %3922
  call void @llvm.lifetime.end.p0(i64 200, ptr %375) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %374) #11
  br label %11106

11106:                                            ; preds = %11105, %3918
  call void @llvm.lifetime.end.p0(i64 200, ptr %374) #11
  br label %11107

11107:                                            ; preds = %11106, %3884
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %357) #11
  br label %11108

11108:                                            ; preds = %11107, %3762
  call void @llvm.lifetime.end.p0(i64 200, ptr %357) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %356) #11
  br label %11109

11109:                                            ; preds = %11108, %3758
  call void @llvm.lifetime.end.p0(i64 200, ptr %356) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %355) #11
  br label %11110

11110:                                            ; preds = %11109, %3754
  call void @llvm.lifetime.end.p0(i64 200, ptr %355) #11
  br label %11111

11111:                                            ; preds = %11110, %3721
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %334) #11
  br label %11112

11112:                                            ; preds = %11111, %3561
  call void @llvm.lifetime.end.p0(i64 200, ptr %334) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %333) #11
  br label %11113

11113:                                            ; preds = %11112, %3557
  call void @llvm.lifetime.end.p0(i64 200, ptr %333) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %332) #11
  br label %11114

11114:                                            ; preds = %11113, %3553
  call void @llvm.lifetime.end.p0(i64 200, ptr %332) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %331) #11
  br label %11115

11115:                                            ; preds = %11114, %3549
  call void @llvm.lifetime.end.p0(i64 200, ptr %331) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %330) #11
  br label %11116

11116:                                            ; preds = %11115, %3545
  call void @llvm.lifetime.end.p0(i64 200, ptr %330) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %326) #11
  br label %11117

11117:                                            ; preds = %11116, %3544, %3532
  call void @llvm.lifetime.end.p0(i64 16, ptr %326) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %325) #11
  br label %11118

11118:                                            ; preds = %11117, %3528
  call void @llvm.lifetime.end.p0(i64 16, ptr %325) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #11
  br label %11119

11119:                                            ; preds = %11118, %3527
  call void @llvm.lifetime.end.p0(i64 16, ptr %321) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %320) #11
  br label %11120

11120:                                            ; preds = %11119, %3510
  call void @llvm.lifetime.end.p0(i64 16, ptr %320) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %318) #11
  br label %11121

11121:                                            ; preds = %11120, %3506, %3502
  call void @llvm.lifetime.end.p0(i64 16, ptr %318) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %307) #11
  br label %11122

11122:                                            ; preds = %11121, %3501
  call void @llvm.lifetime.end.p0(i64 16, ptr %307) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #11
  br label %11123

11123:                                            ; preds = %11122, %3460, %3448
  call void @llvm.lifetime.end.p0(i64 16, ptr %303) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %302) #11
  br label %11124

11124:                                            ; preds = %11123, %3444
  call void @llvm.lifetime.end.p0(i64 16, ptr %302) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %301) #11
  br label %11125

11125:                                            ; preds = %11124, %3440
  call void @llvm.lifetime.end.p0(i64 16, ptr %301) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %299) #11
  br label %11126

11126:                                            ; preds = %11125, %3436, %3432
  call void @llvm.lifetime.end.p0(i64 16, ptr %299) #11
  br label %11127

11127:                                            ; preds = %11126, %3371, %3326, %3297
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %273) #11
  br label %11128

11128:                                            ; preds = %11127, %3213
  call void @llvm.lifetime.end.p0(i64 16, ptr %273) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %272) #11
  br label %11129

11129:                                            ; preds = %11128, %3209
  call void @llvm.lifetime.end.p0(i64 16, ptr %272) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %271) #11
  br label %11130

11130:                                            ; preds = %11129, %3205
  call void @llvm.lifetime.end.p0(i64 16, ptr %271) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %269) #11
  br label %11131

11131:                                            ; preds = %11130, %3201, %3197
  call void @llvm.lifetime.end.p0(i64 16, ptr %269) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %268) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESI_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #11
  br label %11132

11132:                                            ; preds = %11131, %3193, %3189
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %264) #11
  br label %11133

11133:                                            ; preds = %11132, %3185
  call void @llvm.lifetime.end.p0(i64 16, ptr %264) #11
  br label %11134

11134:                                            ; preds = %11133, %3181
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %262) #11
  br label %11135

11135:                                            ; preds = %11134, %3177
  call void @llvm.lifetime.end.p0(i64 16, ptr %262) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %260) #11
  br label %11136

11136:                                            ; preds = %11135, %3173, %3169
  call void @llvm.lifetime.end.p0(i64 16, ptr %260) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %257) #11
  br label %11137

11137:                                            ; preds = %11136, %3168, %3156
  call void @llvm.lifetime.end.p0(i64 16, ptr %257) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %254) #11
  br label %11138

11138:                                            ; preds = %11137, %3155, %3143
  call void @llvm.lifetime.end.p0(i64 16, ptr %254) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %252) #11
  br label %11139

11139:                                            ; preds = %11138, %3139, %3135
  call void @llvm.lifetime.end.p0(i64 16, ptr %252) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %251) #11
  br label %11140

11140:                                            ; preds = %11139, %3131
  call void @llvm.lifetime.end.p0(i64 16, ptr %251) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #11
  br label %11141

11141:                                            ; preds = %11140, %3127
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %247) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #11
  br label %11362

11142:                                            ; preds = %3048
  call void @llvm.lifetime.start.p0(i64 8, ptr %1271) #11
  store ptr %238, ptr %1271, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1272) #11
  %11143 = load ptr, ptr %1271, align 8, !tbaa !5
  %11144 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %11143) #11
  %11145 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %1272, i32 0, i32 0
  store ptr %11144, ptr %11145, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %1273) #11
  %11146 = load ptr, ptr %1271, align 8, !tbaa !5
  %11147 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %11146) #11
  %11148 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %1273, i32 0, i32 0
  store ptr %11147, ptr %11148, align 8
  br label %11149

11149:                                            ; preds = %11326, %11142
  %11150 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIllESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %1272, ptr noundef nonnull align 8 dereferenceable(8) %1273) #11
  br i1 %11150, label %11152, label %11151

11151:                                            ; preds = %11149
  store i32 77, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %1273) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1272) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1271) #11
  br label %11330

11152:                                            ; preds = %11149
  call void @llvm.lifetime.start.p0(i64 16, ptr %1274) #11
  %11153 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1272) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1274, ptr align 8 %11153, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %1275) #11
  %11154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %1274) #11
  store ptr %11154, ptr %1275, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1276) #11
  %11155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %1274) #11
  store ptr %11155, ptr %1276, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %1277) #11
  %11156 = invoke noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %233)
          to label %11157 unwind label %11175

11157:                                            ; preds = %11152
  %11158 = load ptr, ptr %1276, align 8, !tbaa !5
  %11159 = load i64, ptr %11158, align 8, !tbaa !15
  %11160 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %11156, i64 noundef %11159)
          to label %11161 unwind label %11175

11161:                                            ; preds = %11157
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEC2ERKSI_(ptr noundef nonnull align 8 dereferenceable(32) %1277, ptr noundef nonnull align 8 dereferenceable(32) %11160)
          to label %11162 unwind label %11175

11162:                                            ; preds = %11161
  %11163 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %1278, ptr noundef nonnull align 8 dereferenceable(16) %11163)
          to label %11164 unwind label %11179

11164:                                            ; preds = %11162
  %11165 = invoke noundef zeroext i1 @_ZN6langcc13has_mod_visitENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef %1278)
          to label %11166 unwind label %11183

11166:                                            ; preds = %11164
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1278) #11
  br i1 %11165, label %11167, label %11206

11167:                                            ; preds = %11166
  call void @llvm.lifetime.start.p0(i64 16, ptr %1279) #11
  invoke void @_ZN6langcc7make_rcINS_3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.118") align 8 %1279)
          to label %11168 unwind label %11187

11168:                                            ; preds = %11167
  %11169 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1280, ptr noundef nonnull align 8 dereferenceable(16) %11169)
          to label %11170 unwind label %11191

11170:                                            ; preds = %11168
  %11171 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1281, ptr noundef nonnull align 8 dereferenceable(16) %11171)
          to label %11172 unwind label %11195

11172:                                            ; preds = %11170
  %11173 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17data_gen_xform_fnENS_7XformTyENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_RNS1_INS_3SetISA_EEEENS_10HeaderModeERNS_18DataCompileContextE(i32 noundef 1, ptr noundef %1280, ptr noundef %1281, ptr noundef nonnull align 8 dereferenceable(16) %1279, i32 noundef %11173, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %11174 unwind label %11199

11174:                                            ; preds = %11172
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1281) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1280) #11
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1279) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1279) #11
  br label %11206

11175:                                            ; preds = %11161, %11157, %11152
  %11176 = landingpad { ptr, i32 }
          cleanup
  %11177 = extractvalue { ptr, i32 } %11176, 0
  store ptr %11177, ptr %11, align 8
  %11178 = extractvalue { ptr, i32 } %11176, 1
  store i32 %11178, ptr %12, align 4
  br label %11329

11179:                                            ; preds = %11206, %11162
  %11180 = landingpad { ptr, i32 }
          cleanup
  %11181 = extractvalue { ptr, i32 } %11180, 0
  store ptr %11181, ptr %11, align 8
  %11182 = extractvalue { ptr, i32 } %11180, 1
  store i32 %11182, ptr %12, align 4
  br label %11328

11183:                                            ; preds = %11164
  %11184 = landingpad { ptr, i32 }
          cleanup
  %11185 = extractvalue { ptr, i32 } %11184, 0
  store ptr %11185, ptr %11, align 8
  %11186 = extractvalue { ptr, i32 } %11184, 1
  store i32 %11186, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1278) #11
  br label %11328

11187:                                            ; preds = %11167
  %11188 = landingpad { ptr, i32 }
          cleanup
  %11189 = extractvalue { ptr, i32 } %11188, 0
  store ptr %11189, ptr %11, align 8
  %11190 = extractvalue { ptr, i32 } %11188, 1
  store i32 %11190, ptr %12, align 4
  br label %11205

11191:                                            ; preds = %11168
  %11192 = landingpad { ptr, i32 }
          cleanup
  %11193 = extractvalue { ptr, i32 } %11192, 0
  store ptr %11193, ptr %11, align 8
  %11194 = extractvalue { ptr, i32 } %11192, 1
  store i32 %11194, ptr %12, align 4
  br label %11204

11195:                                            ; preds = %11170
  %11196 = landingpad { ptr, i32 }
          cleanup
  %11197 = extractvalue { ptr, i32 } %11196, 0
  store ptr %11197, ptr %11, align 8
  %11198 = extractvalue { ptr, i32 } %11196, 1
  store i32 %11198, ptr %12, align 4
  br label %11203

11199:                                            ; preds = %11172
  %11200 = landingpad { ptr, i32 }
          cleanup
  %11201 = extractvalue { ptr, i32 } %11200, 0
  store ptr %11201, ptr %11, align 8
  %11202 = extractvalue { ptr, i32 } %11200, 1
  store i32 %11202, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1281) #11
  br label %11203

11203:                                            ; preds = %11199, %11195
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1280) #11
  br label %11204

11204:                                            ; preds = %11203, %11191
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1279) #11
  br label %11205

11205:                                            ; preds = %11204, %11187
  call void @llvm.lifetime.end.p0(i64 16, ptr %1279) #11
  br label %11328

11206:                                            ; preds = %11174, %11166
  %11207 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 1
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %1282, ptr noundef nonnull align 8 dereferenceable(16) %11207)
          to label %11208 unwind label %11179

11208:                                            ; preds = %11206
  %11209 = invoke noundef zeroext i1 @_ZN6langcc13has_mod_xformENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef %1282)
          to label %11210 unwind label %11239

11210:                                            ; preds = %11208
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1282) #11
  br i1 %11209, label %11211, label %11325

11211:                                            ; preds = %11210
  call void @llvm.lifetime.start.p0(i64 16, ptr %1283) #11
  invoke void @_ZN6langcc7make_rcINS_3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.118") align 8 %1283)
          to label %11212 unwind label %11243

11212:                                            ; preds = %11211
  %11213 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1284, ptr noundef nonnull align 8 dereferenceable(16) %11213)
          to label %11214 unwind label %11247

11214:                                            ; preds = %11212
  %11215 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1285, ptr noundef nonnull align 8 dereferenceable(16) %11215)
          to label %11216 unwind label %11251

11216:                                            ; preds = %11214
  %11217 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc17data_gen_xform_fnENS_7XformTyENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_RNS1_INS_3SetISA_EEEENS_10HeaderModeERNS_18DataCompileContextE(i32 noundef 0, ptr noundef %1284, ptr noundef %1285, ptr noundef nonnull align 8 dereferenceable(16) %1283, i32 noundef %11217, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %11218 unwind label %11255

11218:                                            ; preds = %11216
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1285) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1284) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %1286) #11
  %11219 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1283)
          to label %11220 unwind label %11260

11220:                                            ; preds = %11218
  store ptr %11219, ptr %1286, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %1287) #11
  %11221 = load ptr, ptr %1286, align 8, !tbaa !5
  %11222 = invoke { ptr, i64 } @_ZNK6langcc3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %11221)
          to label %11223 unwind label %11264

11223:                                            ; preds = %11220
  %11224 = getelementptr inbounds { ptr, i64 }, ptr %1287, i32 0, i32 0
  %11225 = extractvalue { ptr, i64 } %11222, 0
  store ptr %11225, ptr %11224, align 8
  %11226 = getelementptr inbounds { ptr, i64 }, ptr %1287, i32 0, i32 1
  %11227 = extractvalue { ptr, i64 } %11222, 1
  store i64 %11227, ptr %11226, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %1288) #11
  %11228 = load ptr, ptr %1286, align 8, !tbaa !5
  %11229 = invoke { ptr, i64 } @_ZNK6langcc3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %11228)
          to label %11230 unwind label %11268

11230:                                            ; preds = %11223
  %11231 = getelementptr inbounds { ptr, i64 }, ptr %1288, i32 0, i32 0
  %11232 = extractvalue { ptr, i64 } %11229, 0
  store ptr %11232, ptr %11231, align 8
  %11233 = getelementptr inbounds { ptr, i64 }, ptr %1288, i32 0, i32 1
  %11234 = extractvalue { ptr, i64 } %11229, 1
  store i64 %11234, ptr %11233, align 8
  br label %11235

11235:                                            ; preds = %11316, %11230
  %11236 = invoke noundef zeroext i1 @_ZN6langcc11SetIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %1287, ptr noundef nonnull align 8 dereferenceable(16) %1288)
          to label %11237 unwind label %11268

11237:                                            ; preds = %11235
  br i1 %11236, label %11272, label %11238

11238:                                            ; preds = %11237
  store i32 79, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %1288) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1287) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1286) #11
  br label %11322

11239:                                            ; preds = %11208
  %11240 = landingpad { ptr, i32 }
          cleanup
  %11241 = extractvalue { ptr, i32 } %11240, 0
  store ptr %11241, ptr %11, align 8
  %11242 = extractvalue { ptr, i32 } %11240, 1
  store i32 %11242, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1282) #11
  br label %11328

11243:                                            ; preds = %11211
  %11244 = landingpad { ptr, i32 }
          cleanup
  %11245 = extractvalue { ptr, i32 } %11244, 0
  store ptr %11245, ptr %11, align 8
  %11246 = extractvalue { ptr, i32 } %11244, 1
  store i32 %11246, ptr %12, align 4
  br label %11324

11247:                                            ; preds = %11212
  %11248 = landingpad { ptr, i32 }
          cleanup
  %11249 = extractvalue { ptr, i32 } %11248, 0
  store ptr %11249, ptr %11, align 8
  %11250 = extractvalue { ptr, i32 } %11248, 1
  store i32 %11250, ptr %12, align 4
  br label %11323

11251:                                            ; preds = %11214
  %11252 = landingpad { ptr, i32 }
          cleanup
  %11253 = extractvalue { ptr, i32 } %11252, 0
  store ptr %11253, ptr %11, align 8
  %11254 = extractvalue { ptr, i32 } %11252, 1
  store i32 %11254, ptr %12, align 4
  br label %11259

11255:                                            ; preds = %11216
  %11256 = landingpad { ptr, i32 }
          cleanup
  %11257 = extractvalue { ptr, i32 } %11256, 0
  store ptr %11257, ptr %11, align 8
  %11258 = extractvalue { ptr, i32 } %11256, 1
  store i32 %11258, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1285) #11
  br label %11259

11259:                                            ; preds = %11255, %11251
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1284) #11
  br label %11323

11260:                                            ; preds = %11218
  %11261 = landingpad { ptr, i32 }
          cleanup
  %11262 = extractvalue { ptr, i32 } %11261, 0
  store ptr %11262, ptr %11, align 8
  %11263 = extractvalue { ptr, i32 } %11261, 1
  store i32 %11263, ptr %12, align 4
  br label %11321

11264:                                            ; preds = %11220
  %11265 = landingpad { ptr, i32 }
          cleanup
  %11266 = extractvalue { ptr, i32 } %11265, 0
  store ptr %11266, ptr %11, align 8
  %11267 = extractvalue { ptr, i32 } %11265, 1
  store i32 %11267, ptr %12, align 4
  br label %11320

11268:                                            ; preds = %11314, %11235, %11223
  %11269 = landingpad { ptr, i32 }
          cleanup
  %11270 = extractvalue { ptr, i32 } %11269, 0
  store ptr %11270, ptr %11, align 8
  %11271 = extractvalue { ptr, i32 } %11269, 1
  store i32 %11271, ptr %12, align 4
  br label %11319

11272:                                            ; preds = %11237
  call void @llvm.lifetime.start.p0(i64 16, ptr %1289) #11
  %11273 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11SetIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1287)
          to label %11274 unwind label %11287

11274:                                            ; preds = %11272
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1289, ptr noundef nonnull align 8 dereferenceable(16) %11273)
          to label %11275 unwind label %11287

11275:                                            ; preds = %11274
  %11276 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1290, ptr noundef nonnull align 8 dereferenceable(16) %11276)
          to label %11277 unwind label %11291

11277:                                            ; preds = %11275
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1291, ptr noundef nonnull align 8 dereferenceable(16) %1289)
          to label %11278 unwind label %11295

11278:                                            ; preds = %11277
  %11279 = invoke noundef zeroext i1 @_ZN6langcc18DataCompileContext11is_ancestorENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_(ptr noundef nonnull align 8 dereferenceable(376) %9, ptr noundef %1290, ptr noundef %1291)
          to label %11280 unwind label %11299

11280:                                            ; preds = %11278
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1291) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1290) #11
  br i1 %11279, label %11281, label %11313

11281:                                            ; preds = %11280
  %11282 = getelementptr inbounds %"struct.std::pair.131", ptr %1277, i32 0, i32 0
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1292, ptr noundef nonnull align 8 dereferenceable(16) %11282)
          to label %11283 unwind label %11291

11283:                                            ; preds = %11281
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1293, ptr noundef nonnull align 8 dereferenceable(16) %1289)
          to label %11284 unwind label %11304

11284:                                            ; preds = %11283
  %11285 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc20data_gen_xform_id_fnENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES9_NS_10HeaderModeERNS_18DataCompileContextE(ptr noundef %1292, ptr noundef %1293, i32 noundef %11285, ptr noundef nonnull align 8 dereferenceable(376) %9)
          to label %11286 unwind label %11308

11286:                                            ; preds = %11284
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1293) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1292) #11
  br label %11313

11287:                                            ; preds = %11274, %11272
  %11288 = landingpad { ptr, i32 }
          cleanup
  %11289 = extractvalue { ptr, i32 } %11288, 0
  store ptr %11289, ptr %11, align 8
  %11290 = extractvalue { ptr, i32 } %11288, 1
  store i32 %11290, ptr %12, align 4
  br label %11318

11291:                                            ; preds = %11281, %11275
  %11292 = landingpad { ptr, i32 }
          cleanup
  %11293 = extractvalue { ptr, i32 } %11292, 0
  store ptr %11293, ptr %11, align 8
  %11294 = extractvalue { ptr, i32 } %11292, 1
  store i32 %11294, ptr %12, align 4
  br label %11317

11295:                                            ; preds = %11277
  %11296 = landingpad { ptr, i32 }
          cleanup
  %11297 = extractvalue { ptr, i32 } %11296, 0
  store ptr %11297, ptr %11, align 8
  %11298 = extractvalue { ptr, i32 } %11296, 1
  store i32 %11298, ptr %12, align 4
  br label %11303

11299:                                            ; preds = %11278
  %11300 = landingpad { ptr, i32 }
          cleanup
  %11301 = extractvalue { ptr, i32 } %11300, 0
  store ptr %11301, ptr %11, align 8
  %11302 = extractvalue { ptr, i32 } %11300, 1
  store i32 %11302, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1291) #11
  br label %11303

11303:                                            ; preds = %11299, %11295
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1290) #11
  br label %11317

11304:                                            ; preds = %11283
  %11305 = landingpad { ptr, i32 }
          cleanup
  %11306 = extractvalue { ptr, i32 } %11305, 0
  store ptr %11306, ptr %11, align 8
  %11307 = extractvalue { ptr, i32 } %11305, 1
  store i32 %11307, ptr %12, align 4
  br label %11312

11308:                                            ; preds = %11284
  %11309 = landingpad { ptr, i32 }
          cleanup
  %11310 = extractvalue { ptr, i32 } %11309, 0
  store ptr %11310, ptr %11, align 8
  %11311 = extractvalue { ptr, i32 } %11309, 1
  store i32 %11311, ptr %12, align 4
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1293) #11
  br label %11312

11312:                                            ; preds = %11308, %11304
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1292) #11
  br label %11317

11313:                                            ; preds = %11286, %11280
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1289) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1289) #11
  br label %11314

11314:                                            ; preds = %11313
  %11315 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11SetIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %1287)
          to label %11316 unwind label %11268

11316:                                            ; preds = %11314
  br label %11235

11317:                                            ; preds = %11312, %11303, %11291
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1289) #11
  br label %11318

11318:                                            ; preds = %11317, %11287
  call void @llvm.lifetime.end.p0(i64 16, ptr %1289) #11
  br label %11319

11319:                                            ; preds = %11318, %11268
  call void @llvm.lifetime.end.p0(i64 16, ptr %1288) #11
  br label %11320

11320:                                            ; preds = %11319, %11264
  call void @llvm.lifetime.end.p0(i64 16, ptr %1287) #11
  br label %11321

11321:                                            ; preds = %11320, %11260
  call void @llvm.lifetime.end.p0(i64 8, ptr %1286) #11
  br label %11323

11322:                                            ; preds = %11238
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1283) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1283) #11
  br label %11325

11323:                                            ; preds = %11321, %11259, %11247
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1283) #11
  br label %11324

11324:                                            ; preds = %11323, %11243
  call void @llvm.lifetime.end.p0(i64 16, ptr %1283) #11
  br label %11328

11325:                                            ; preds = %11322, %11210
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1277) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %1277) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1276) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1275) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1274) #11
  br label %11326

11326:                                            ; preds = %11325
  %11327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %1272) #11
  br label %11149

11328:                                            ; preds = %11324, %11239, %11205, %11183, %11179
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1277) #11
  br label %11329

11329:                                            ; preds = %11328, %11175
  call void @llvm.lifetime.end.p0(i64 32, ptr %1277) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1276) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1275) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %1274) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1273) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1272) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1271) #11
  br label %11362

11330:                                            ; preds = %11151
  call void @llvm.lifetime.start.p0(i64 40, ptr %1294) #11
  %11331 = getelementptr inbounds %"struct.langcc::DataCompileContext", ptr %9, i32 0, i32 0
  %11332 = load i32, ptr %8, align 4, !tbaa !9
  invoke void @_ZN6langcc13CppGenContext12extract_modsENS_10HeaderModeE(ptr dead_on_unwind writable sret(%"struct.std::pair.149") align 4 %1294, ptr noundef nonnull align 8 dereferenceable(264) %11331, i32 noundef %11332)
          to label %11333 unwind label %11346

11333:                                            ; preds = %11330
  call void @llvm.lifetime.start.p0(i64 8, ptr %1295) #11
  %11334 = call noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm0EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40) %1294) #11
  store ptr %11334, ptr %1295, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %1296) #11
  %11335 = call noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm1EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40) %1294) #11
  store ptr %11335, ptr %1296, align 8, !tbaa !5
  store i1 false, ptr %1297, align 1
  invoke void @_ZN6langcc14DataDefsResultC2Ev(ptr noundef nonnull align 4 dereferenceable(40) %0)
          to label %11336 unwind label %11350

11336:                                            ; preds = %11333
  %11337 = load ptr, ptr %1295, align 8, !tbaa !5
  %11338 = getelementptr inbounds %"struct.langcc::DataDefsResult", ptr %0, i32 0, i32 0
  %11339 = invoke noundef nonnull align 4 dereferenceable(20) ptr @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEEaSERKS8_(ptr noundef nonnull align 4 dereferenceable(20) %11338, ptr noundef nonnull align 4 dereferenceable(20) %11337)
          to label %11340 unwind label %11354

11340:                                            ; preds = %11336
  %11341 = load ptr, ptr %1296, align 8, !tbaa !5
  %11342 = getelementptr inbounds %"struct.langcc::DataDefsResult", ptr %0, i32 0, i32 1
  %11343 = invoke noundef nonnull align 4 dereferenceable(20) ptr @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEEaSERKS8_(ptr noundef nonnull align 4 dereferenceable(20) %11342, ptr noundef nonnull align 4 dereferenceable(20) %11341)
          to label %11344 unwind label %11354

11344:                                            ; preds = %11340
  store i1 true, ptr %1297, align 1
  store i32 1, ptr %56, align 4
  %11345 = load i1, ptr %1297, align 1
  br i1 %11345, label %11359, label %11358

11346:                                            ; preds = %11330
  %11347 = landingpad { ptr, i32 }
          cleanup
  %11348 = extractvalue { ptr, i32 } %11347, 0
  store ptr %11348, ptr %11, align 8
  %11349 = extractvalue { ptr, i32 } %11347, 1
  store i32 %11349, ptr %12, align 4
  br label %11361

11350:                                            ; preds = %11333
  %11351 = landingpad { ptr, i32 }
          cleanup
  %11352 = extractvalue { ptr, i32 } %11351, 0
  store ptr %11352, ptr %11, align 8
  %11353 = extractvalue { ptr, i32 } %11351, 1
  store i32 %11353, ptr %12, align 4
  br label %11360

11354:                                            ; preds = %11340, %11336
  %11355 = landingpad { ptr, i32 }
          cleanup
  %11356 = extractvalue { ptr, i32 } %11355, 0
  store ptr %11356, ptr %11, align 8
  %11357 = extractvalue { ptr, i32 } %11355, 1
  store i32 %11357, ptr %12, align 4
  call void @_ZN6langcc14DataDefsResultD2Ev(ptr noundef nonnull align 4 dereferenceable(40) %0) #11
  br label %11360

11358:                                            ; preds = %11344
  call void @_ZN6langcc14DataDefsResultD2Ev(ptr noundef nonnull align 4 dereferenceable(40) %0) #11
  br label %11359

11359:                                            ; preds = %11358, %11344
  call void @llvm.lifetime.end.p0(i64 8, ptr %1296) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1295) #11
  call void @_ZNSt4pairIN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_ED2Ev(ptr noundef nonnull align 4 dereferenceable(40) %1294) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %1294) #11
  call void @_ZNSt6vectorISt4pairIllESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %238) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %238) #11
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %233) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #11
  call void @_ZN6langcc18DataCompileContextD2Ev(ptr noundef nonnull align 8 dereferenceable(376) %9) #11
  call void @llvm.lifetime.end.p0(i64 376, ptr %9) #11
  ret void

11360:                                            ; preds = %11354, %11350
  call void @llvm.lifetime.end.p0(i64 8, ptr %1296) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %1295) #11
  call void @_ZNSt4pairIN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_ED2Ev(ptr noundef nonnull align 4 dereferenceable(40) %1294) #11
  br label %11361

11361:                                            ; preds = %11360, %11346
  call void @llvm.lifetime.end.p0(i64 40, ptr %1294) #11
  br label %11362

11362:                                            ; preds = %11361, %11329, %11141, %3049, %3029
  call void @_ZNSt6vectorISt4pairIllESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %238) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %238) #11
  br label %11363

11363:                                            ; preds = %11362, %2985
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %233) #11
  br label %11364

11364:                                            ; preds = %11363, %2953
  call void @llvm.lifetime.end.p0(i64 16, ptr %233) #11
  br label %11365

11365:                                            ; preds = %11364, %2929, %2737, %1646, %1575, %1482, %1448, %1411, %1363
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #11
  br label %11366

11366:                                            ; preds = %11365, %1318
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #11
  call void @_ZN6langcc18DataCompileContextD2Ev(ptr noundef nonnull align 8 dereferenceable(376) %9) #11
  call void @llvm.lifetime.end.p0(i64 376, ptr %9) #11
  br label %11367

11367:                                            ; preds = %11366
  %11368 = load ptr, ptr %11, align 8
  %11369 = load i32, ptr %12, align 4
  %11370 = insertvalue { ptr, i32 } poison, ptr %11368, 0
  %11371 = insertvalue { ptr, i32 } %11370, i32 %11369, 1
  resume { ptr, i32 } %11371
}

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

declare void @_ZN4lang4data4Node2_T9as_ModuleEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.126") align 8, ptr noundef nonnull align 8 dereferenceable(136)) #9

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA13_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(13)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA27_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(27)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIS4_EENS_6Option2_TISF_EEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7is_someEv(ptr noundef nonnull align 4 dereferenceable(36)) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7as_someEv(ptr noundef nonnull align 4 dereferenceable(36)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200)) #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext17gen_cpp_decl_enumENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA16_cNS_6rc_ptrIS4_EEEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrINS3_4Expr2_TEEENSA_IS4_EEEEESE_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA2_cA26_cSC_A4_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 1 dereferenceable(26), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA14_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(14)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(17)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node4Expr2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cSH_A2_cA9_cEEENS4_INS7_2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 1 dereferenceable(9)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(376)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext23gen_cpp_decl_struct_fwdENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext18gen_cpp_decl_usingENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_IN4lang2cc4Node2_TEEERKNS1_INS2_ISF_EEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext14gen_cpp_rc_ptrERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3VecISt4pairINS_6rc_ptrINS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS3_IN4lang4data4Node4Decl4Data2_TEEEEEEJEEENS3_IT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.133") align 8) #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE9push_backERKSI_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZSt9make_pairIRlS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #0

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA6_cNS_6rc_ptrIS4_EEA2_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS8_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA17_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSC_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SL_DpRKT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA21_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cSA_A2_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSD_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SM_DpRKT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEE6insertERKS6_RKSC_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA15_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEESF_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext17gen_cpp_param_accINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEERNS8_INS_3VecISD_EEEERKNS8_INSE_IS7_EEEERKT_RKS7_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA18_cS9_A2_cS9_SJ_S9_SA_S9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(11)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA19_cS8_A3_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA18_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS9_SA_S9_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_EEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc9log_innerIJA51_cNS_8StrSliceEEEEvlDpRKT_(i64 noundef, ptr noundef nonnull align 1 dereferenceable(51), ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJNS_6rc_ptrIS4_EEA2_cEEEvRNSA_INS_9LexOutputEEERKSB_DpRKT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE2qqIJA16_cEEENS_6rc_ptrIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(16)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.77") align 4, ptr noundef nonnull align 8 dereferenceable(16)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cA2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEES6_RKS6_DpRKT_(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), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_stmtIJA32_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA5_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_stmtIJA37_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(37), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cS3_A4_cNS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEA2_cEEESB_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA6_cA15_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 1 dereferenceable(15)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA2_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA33_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(33)) #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4onlyEv(ptr noundef nonnull align 8 dereferenceable(64)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A10_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA9_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA4_cA31_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(31)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA13_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(13), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc15NodeV_singletonERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA6_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA18_cS9_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA6_cA43_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 1 dereferenceable(43), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA43_cNS_6rc_ptrIS4_EEA13_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(43), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(13)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA33_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(33)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext19gen_cpp_decl_structENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEESJ_SJ_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext27gen_cpp_template_params_accERNS_6rc_ptrINS_9LexOutputEEERKNS1_INS_3VecINS1_IN4lang2cc4Node2_TEEEEEEE(ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA4_cA7_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(7)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.118") align 8) #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK6langcc3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZNK6langcc3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200)) #5 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext12extract_modsENS_10HeaderModeE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.149") align 4, ptr noundef nonnull align 8 dereferenceable(264), i32 noundef) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm0EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm1EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc14DataDefsResultC2Ev(ptr noundef nonnull align 4 dereferenceable(40)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc14DataDefsResultD2Ev(ptr noundef nonnull align 4 dereferenceable(40)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_ED2Ev(ptr noundef nonnull align 4 dereferenceable(40)) unnamed_addr #5 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc18DataCompileContextD2Ev(ptr noundef nonnull align 8 dereferenceable(376)) unnamed_addr #5 align 2

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

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

!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 = !{!"_ZTSN6langcc10HeaderModeE", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSSt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE", !6, i64 0, !13, i64 8}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !13, i64 8}
!15 = !{!13, !13, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = !{!19, !19, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!23, !19, i64 140}
!23 = !{!"_ZTSN4lang4data4Node5Entry6Method2_TE", !24, i64 0, !19, i64 140, !19, i64 141, !36, i64 144, !38, i64 176, !39, i64 192}
!24 = !{!"_ZTSN4lang4data4Node5Entry2_TE", !25, i64 0, !35, i64 136}
!25 = !{!"_ZTSN4lang4data4Node2_TE", !26, i64 8, !29, i64 48, !30, i64 64, !13, i64 72, !31, i64 80, !19, i64 88, !13, i64 96, !33, i64 104, !34, i64 120}
!26 = !{!"_ZTSN6langcc8hash_objE", !27, i64 0}
!27 = !{!"_ZTSN6langcc6Option2_TINS_7HashValEEE", !28, i64 0, !7, i64 4}
!28 = !{!"_ZTSN6langcc6Option2_WE", !7, i64 0}
!29 = !{!"_ZTSN6langcc24enable_rc_from_this_polyE", !6, i64 0, !6, i64 8}
!30 = !{!"_ZTSN4lang4data4Node2_WE", !7, i64 0}
!31 = !{!"_ZTSN6langcc11TokenBoundsE", !32, i64 0, !32, i64 4}
!32 = !{!"int", !7, i64 0}
!33 = !{!"_ZTSN6langcc14ParserAttrMaskE", !7, i64 0}
!34 = !{!"_ZTSN6langcc15ParserLookaheadE", !7, i64 0}
!35 = !{!"_ZTSN4lang4data4Node5Entry2_WE", !7, i64 0}
!36 = !{!"_ZTSN6langcc8StrSliceE", !37, i64 0, !13, i64 16, !13, i64 24}
!37 = !{!"_ZTSN6langcc6rc_ptrINS_3VecIcEEEE", !6, i64 0, !6, i64 8}
!38 = !{!"_ZTSN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node5Param2_TEEEEEEE", !6, i64 0, !6, i64 8}
!39 = !{!"_ZTSN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEE", !6, i64 0, !6, i64 8}
!40 = !{!23, !19, i64 141}
!41 = !{!42, !19, i64 176}
!42 = !{!"_ZTSN4lang4data4Node5Entry5Field2_TE", !24, i64 0, !36, i64 144, !19, i64 176, !19, i64 177, !39, i64 184}


; 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"

%"struct.langcc::rc_ptr.0" = type { ptr, ptr }
%"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] }
%"struct.langcc::rc_ptr.76" = type { ptr, ptr }
%"struct.langcc::rc_ptr.78" = type { ptr, ptr }
%"struct.langcc::Option::_T.72" = type { i32, [16 x i8] }
%"struct.langcc::Option::_T.77" = type { i32, [16 x i8] }
%"struct.langcc::rc_ptr.83" = type { ptr, ptr }
%"struct.langcc::Option::_T.88" = type { i32, [32 x i8] }
%"struct.std::pair.91" = type { %"struct.langcc::rc_ptr.93", %"struct.langcc::rc_ptr.93" }
%"struct.langcc::rc_ptr.93" = type { ptr, ptr }
%"struct.langcc::rc_ptr.111" = type { ptr, ptr }
%"struct.langcc::Option::_T.117" = type { i32, [16 x i8] }
%"struct.langcc::rc_ptr.12" = type { ptr, ptr }
%"struct.langcc::rc_ptr.124" = type { ptr, ptr }
%"struct.langcc::rc_ptr.125" = type { ptr, ptr }
%"struct.langcc::DataDefsResult" = type { %"struct.langcc::Option::_T.117", %"struct.langcc::Option::_T.117" }
%"struct.langcc::DataCompileContext" = type { %"struct.langcc::CppGenContext", %"struct.langcc::rc_ptr.23", %"struct.langcc::rc_ptr.24", %"struct.langcc::rc_ptr.25", %"struct.langcc::rc_ptr.26", %"struct.langcc::rc_ptr.27", %"struct.langcc::rc_ptr.27", %"struct.langcc::rc_ptr.0" }
%"struct.langcc::CppGenContext" = type { %"struct.langcc::rc_ptr.10", %"struct.langcc::rc_ptr.11", %"struct.langcc::rc_ptr.12", %"struct.langcc::rc_ptr.12", %"struct.langcc::Set" }
%"struct.langcc::rc_ptr.10" = type { ptr, ptr }
%"struct.langcc::rc_ptr.11" = type { ptr, ptr }
%"struct.langcc::Set" = type { %"struct.langcc::enable_rc_from_this.13", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.21" }
%"struct.langcc::enable_rc_from_this.13" = type { ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.langcc::Vec.19" = type { %"struct.langcc::enable_rc_from_this.20", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.20" = type { ptr, ptr }
%"struct.langcc::Vec.21" = type { %"struct.langcc::enable_rc_from_this.22", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.22" = type { ptr, ptr }
%"struct.langcc::rc_ptr.23" = type { ptr, ptr }
%"struct.langcc::rc_ptr.24" = type { ptr, ptr }
%"struct.langcc::rc_ptr.25" = type { ptr, ptr }
%"struct.langcc::rc_ptr.26" = type { ptr, ptr }
%"struct.langcc::rc_ptr.27" = type { ptr, ptr }
%"struct.langcc::rc_ptr.126" = type { ptr, ptr }
%"struct.langcc::rc_ptr.9" = type { ptr, ptr }
%"struct.langcc::rc_ptr.8" = type { ptr, ptr }
%"class.std::allocator" = type { i8 }
%"struct.langcc::MapIterator.127" = type { ptr, i64 }
%"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.std::allocator.73" = type { i8 }
%"struct.langcc::MapIterator.130" = type { ptr, i64 }
%"struct.langcc::rc_ptr.133" = type { ptr, ptr }
%"class.std::vector.134" = type { %"struct.std::_Vector_base.135" }
%"struct.std::_Vector_base.135" = type { %"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<long, long>, std::allocator<std::pair<long, long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.139" = type { i64, i64 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.std::pair.131" = type { %"struct.langcc::rc_ptr.0", %"struct.langcc::rc_ptr.33" }
%"struct.langcc::rc_ptr.33" = type { ptr, ptr }
%"struct.std::pair" = type { %"struct.langcc::rc_ptr.0", %"class.std::__cxx11::basic_string" }
%"struct.langcc::Map.52" = type { %"struct.langcc::enable_rc_from_this.53", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.54" }
%"struct.langcc::enable_rc_from_this.53" = type { ptr, ptr }
%"struct.langcc::Vec.54" = type { %"struct.langcc::enable_rc_from_this.55", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.55" = type { ptr, ptr }
%"struct.langcc::Map.141" = type { %"struct.langcc::enable_rc_from_this.142", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.143" }
%"struct.langcc::enable_rc_from_this.142" = type { ptr, ptr }
%"struct.langcc::Vec.143" = type { %"struct.langcc::enable_rc_from_this.144", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.144" = type { ptr, ptr }
%"struct.langcc::Map.145" = type { %"struct.langcc::enable_rc_from_this.146", %"class.std::unordered_map", %"struct.langcc::Vec.19", %"struct.langcc::Vec.147" }
%"struct.langcc::enable_rc_from_this.146" = type { ptr, ptr }
%"struct.langcc::Vec.147" = type { %"struct.langcc::enable_rc_from_this.148", ptr, ptr, i64, i64, i64, i64 }
%"struct.langcc::enable_rc_from_this.148" = type { ptr, ptr }
%"struct.std::pair.109" = type { %"class.std::__cxx11::basic_string", %"struct.langcc::rc_ptr.104" }
%"struct.langcc::rc_ptr.104" = type { ptr, ptr }
%"struct.langcc::MapIterator.121" = type { ptr, i64 }
%"struct.std::pair.115" = type { %"class.std::__cxx11::basic_string", %"struct.langcc::rc_ptr.112" }
%"struct.langcc::rc_ptr.112" = type { ptr, ptr }
%"struct.langcc::rc_ptr.46" = type { ptr, ptr }
%"struct.langcc::rc_ptr.42" = type { ptr, ptr }
%"struct.langcc::rc_ptr.118" = type { ptr, ptr }
%"struct.langcc::SetIterator" = type { ptr, i64 }
%"struct.std::pair.149" = type { %"struct.langcc::Option::_T.117", %"struct.langcc::Option::_T.117" }

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [6 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEJEEENS_6rc_ptrIT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.0") align 8) local_unnamed_addr #0

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK6langcc6rc_ptrINS_3VecINS_8StrSliceEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc22tabulate_data_decl_accENS_6rc_ptrIN4lang4data4Node2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #0

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node4Decl2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress noreturn uwtable
declare dso_local void @_ZN6langcc2AXEv() local_unnamed_addr #7

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node5Param2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.0") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_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 #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.0") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(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 #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(376), ptr noundef, ptr noundef) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.78") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.72") align 4) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.77") align 4) local_unnamed_addr #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE16make_lex_builderEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.83") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE8qq_innerENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_6rc_ptrINS_9LexOutputEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.88") align 4, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc26dt_extract_def_fields_fullENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.91") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #0

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc22dt_extract_def_methodsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.111") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc17data_gen_xform_fnENS_7XformTyENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_RNS1_INS_3SetISA_EEEENS_10HeaderModeERNS_18DataCompileContextE(i32 noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.117") align 4, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4NoneINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.117") align 4) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(20) ptr @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEEaSERKS8_(ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 4 dereferenceable(20)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8) local_unnamed_addr #0

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA20_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA5_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.72") align 4, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0

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

declare void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.124") align 8, ptr noundef nonnull align 8 dereferenceable(136)) local_unnamed_addr #9

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(27)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEES2_A4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8) local_unnamed_addr #4

declare void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.125") align 8, ptr noundef nonnull align 8 dereferenceable(136)) local_unnamed_addr #9

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264), i1 noundef zeroext, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8, i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc20data_gen_xform_id_fnENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES9_NS_10HeaderModeERNS_18DataCompileContextE(ptr noundef, ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #0

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6langcc17compile_data_defsENS_6rc_ptrIN4lang4data4Node2_TEEENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_10HeaderModeE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::DataDefsResult") align 4 %0, ptr noundef %1, ptr noundef %2, i32 noundef %3) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"struct.langcc::DataCompileContext", align 8
  %6 = alloca %"struct.langcc::rc_ptr.0", align 8
  %7 = alloca %"struct.langcc::rc_ptr.126", align 8
  %8 = alloca %"struct.langcc::rc_ptr.9", align 8
  %9 = alloca %"struct.langcc::rc_ptr.8", align 8
  %10 = alloca %"struct.langcc::rc_ptr.76", align 8
  %11 = alloca %"struct.langcc::rc_ptr.125", align 8
  %12 = alloca %"struct.langcc::rc_ptr.76", align 8
  %13 = alloca %"struct.langcc::Option::_T.88", align 4
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"struct.langcc::rc_ptr.76", align 8
  %17 = alloca %"struct.langcc::rc_ptr.125", align 8
  %18 = alloca %"struct.langcc::rc_ptr.76", align 8
  %19 = alloca %"struct.langcc::Option::_T.88", align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"struct.langcc::rc_ptr.76", align 8
  %24 = alloca %"struct.langcc::rc_ptr.125", align 8
  %25 = alloca %"struct.langcc::rc_ptr.76", align 8
  %26 = alloca %"struct.langcc::Option::_T.88", align 4
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"struct.langcc::rc_ptr.76", align 8
  %33 = alloca %"struct.langcc::rc_ptr.125", align 8
  %34 = alloca %"struct.langcc::rc_ptr.76", align 8
  %35 = alloca %"struct.langcc::Option::_T.88", align 4
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"struct.langcc::MapIterator.127", align 8
  %42 = alloca %"struct.langcc::MapIterator.127", align 8
  %43 = alloca %"struct.langcc::rc_ptr.0", align 8
  %44 = alloca %"struct.langcc::rc_ptr.12", align 8
  %45 = alloca %"struct.langcc::rc_ptr.76", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"struct.langcc::rc_ptr.76", align 8
  %48 = alloca %"struct.langcc::rc_ptr.125", align 8
  %49 = alloca %"struct.langcc::rc_ptr.76", align 8
  %50 = alloca %"struct.langcc::rc_ptr.0", align 8
  %51 = alloca %"struct.langcc::rc_ptr.0", align 8
  %52 = alloca %"class.std::vector", align 8
  %53 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %54 = alloca %"struct.langcc::rc_ptr.0", align 8
  %55 = alloca %"class.std::vector", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca %"class.std::allocator.73", align 1
  %59 = alloca %"struct.langcc::rc_ptr.0", align 8
  %60 = alloca %"class.std::vector", align 8
  %61 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::allocator.73", align 1
  %65 = alloca %"struct.langcc::rc_ptr.78", align 8
  %66 = alloca %"struct.langcc::rc_ptr.12", align 8
  %67 = alloca %"struct.langcc::rc_ptr.12", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"struct.langcc::rc_ptr.0", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"struct.langcc::rc_ptr.76", align 8
  %73 = alloca %"struct.langcc::rc_ptr.76", align 8
  %74 = alloca %"struct.langcc::Option::_T.88", align 4
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"struct.langcc::rc_ptr.0", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca %"struct.langcc::rc_ptr.76", align 8
  %82 = alloca %"struct.langcc::rc_ptr.76", align 8
  %83 = alloca %"struct.langcc::Option::_T.88", align 4
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %"struct.langcc::rc_ptr.78", align 8
  %87 = alloca %"struct.langcc::rc_ptr.76", align 8
  %88 = alloca %"struct.langcc::Option::_T.88", align 4
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator", align 1
  %91 = alloca %"struct.langcc::rc_ptr.76", align 8
  %92 = alloca %"struct.langcc::rc_ptr.125", align 8
  %93 = alloca %"struct.langcc::rc_ptr.76", align 8
  %94 = alloca %"struct.langcc::rc_ptr.12", align 8
  %95 = alloca %"struct.langcc::rc_ptr.12", align 8
  %96 = alloca %"struct.langcc::Option::_T.117", align 4
  %97 = alloca %"struct.langcc::rc_ptr.76", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca %"struct.langcc::rc_ptr.76", align 8
  %101 = alloca %"struct.langcc::rc_ptr.125", align 8
  %102 = alloca %"struct.langcc::rc_ptr.76", align 8
  %103 = alloca %"struct.langcc::rc_ptr.12", align 8
  %104 = alloca %"struct.langcc::rc_ptr.12", align 8
  %105 = alloca %"struct.langcc::rc_ptr.12", align 8
  %106 = alloca %"struct.langcc::Option::_T.117", align 4
  %107 = alloca %"struct.langcc::rc_ptr.76", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator", align 1
  %110 = alloca %"struct.langcc::rc_ptr.76", align 8
  %111 = alloca %"struct.langcc::rc_ptr.12", align 8
  %112 = alloca %"struct.langcc::rc_ptr.0", align 8
  %113 = alloca %"class.std::vector", align 8
  %114 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %115 = alloca %"struct.langcc::rc_ptr.0", align 8
  %116 = alloca %"class.std::vector", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator", align 1
  %119 = alloca %"class.std::allocator.73", align 1
  %120 = alloca %"struct.langcc::rc_ptr.0", align 8
  %121 = alloca %"class.std::vector", align 8
  %122 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %123 = alloca %"class.std::allocator", align 1
  %124 = alloca %"class.std::allocator", align 1
  %125 = alloca %"class.std::allocator.73", align 1
  %126 = alloca %"struct.langcc::rc_ptr.78", align 8
  %127 = alloca %"struct.langcc::rc_ptr.12", align 8
  %128 = alloca %"struct.langcc::rc_ptr.12", align 8
  %129 = alloca %"struct.langcc::rc_ptr.76", align 8
  %130 = alloca %"struct.langcc::rc_ptr.76", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::allocator", align 1
  %133 = alloca %"struct.langcc::rc_ptr.76", align 8
  %134 = alloca %"struct.langcc::rc_ptr.76", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::allocator", align 1
  %137 = alloca %"struct.langcc::rc_ptr.76", align 8
  %138 = alloca %"struct.langcc::rc_ptr.76", align 8
  %139 = alloca %"struct.langcc::rc_ptr.78", align 8
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::allocator", align 1
  %142 = alloca %"struct.langcc::rc_ptr.12", align 8
  %143 = alloca %"struct.langcc::rc_ptr.76", align 8
  %144 = alloca %"struct.langcc::rc_ptr.124", align 8
  %145 = alloca %"struct.langcc::rc_ptr.76", align 8
  %146 = alloca %"struct.langcc::rc_ptr.78", align 8
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::allocator", align 1
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"struct.langcc::rc_ptr.76", align 8
  %153 = alloca %"struct.langcc::rc_ptr.76", align 8
  %154 = alloca %"struct.langcc::rc_ptr.76", align 8
  %155 = alloca %"struct.langcc::rc_ptr.125", align 8
  %156 = alloca %"struct.langcc::rc_ptr.76", align 8
  %157 = alloca %"struct.langcc::rc_ptr.12", align 8
  %158 = alloca %"struct.langcc::rc_ptr.12", align 8
  %159 = alloca %"struct.langcc::Option::_T.117", align 4
  %160 = alloca %"struct.langcc::rc_ptr.76", align 8
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator", align 1
  %163 = alloca %"struct.langcc::rc_ptr.76", align 8
  %164 = alloca %"struct.langcc::rc_ptr.125", align 8
  %165 = alloca %"struct.langcc::rc_ptr.76", align 8
  %166 = alloca %"struct.langcc::rc_ptr.12", align 8
  %167 = alloca %"struct.langcc::rc_ptr.12", align 8
  %168 = alloca %"struct.langcc::rc_ptr.12", align 8
  %169 = alloca %"struct.langcc::Option::_T.117", align 4
  %170 = alloca %"struct.langcc::rc_ptr.76", align 8
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::allocator", align 1
  %173 = alloca %"struct.langcc::rc_ptr.76", align 8
  %174 = alloca %"struct.langcc::rc_ptr.12", align 8
  %175 = alloca %"struct.langcc::MapIterator.130", align 8
  %176 = alloca %"struct.langcc::MapIterator.130", align 8
  %177 = alloca %"struct.langcc::rc_ptr.0", align 8
  %178 = alloca %"struct.langcc::rc_ptr.0", align 8
  %179 = alloca %"struct.langcc::Option::_T.72", align 4
  %180 = alloca %"struct.langcc::rc_ptr.76", align 8
  %181 = alloca %"struct.langcc::Option::_T.72", align 4
  %182 = alloca %"struct.langcc::Option::_T.77", align 4
  %183 = alloca %"struct.langcc::rc_ptr.12", align 8
  %184 = alloca %"struct.langcc::rc_ptr.0", align 8
  %185 = alloca %"struct.langcc::rc_ptr.76", align 8
  %186 = alloca %"struct.langcc::rc_ptr.76", align 8
  %187 = alloca %"struct.langcc::rc_ptr.125", align 8
  %188 = alloca %"struct.langcc::rc_ptr.76", align 8
  %189 = alloca %"struct.langcc::rc_ptr.0", align 8
  %190 = alloca %"struct.langcc::rc_ptr.76", align 8
  %191 = alloca %"struct.langcc::rc_ptr.125", align 8
  %192 = alloca %"struct.langcc::rc_ptr.76", align 8
  %193 = alloca %"struct.langcc::rc_ptr.0", align 8
  %194 = alloca %"struct.langcc::Option::_T.72", align 4
  %195 = alloca %"struct.langcc::rc_ptr.76", align 8
  %196 = alloca %"struct.langcc::rc_ptr.133", align 8
  %197 = alloca %"struct.langcc::MapIterator.130", align 8
  %198 = alloca %"struct.langcc::MapIterator.130", align 8
  %199 = alloca %"class.std::vector.134", align 8
  %200 = alloca i64, align 8
  %201 = alloca i64, align 8
  %202 = alloca %"struct.std::pair.139", align 8
  %203 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %204 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %205 = alloca %"struct.std::pair.139", align 8
  %206 = alloca %"struct.std::pair.131", align 8
  %207 = alloca %"struct.langcc::rc_ptr.0", align 8
  %208 = alloca %"struct.langcc::rc_ptr.0", align 8
  %209 = alloca %"struct.langcc::Option::_T.72", align 4
  %210 = alloca %"struct.langcc::rc_ptr.76", align 8
  %211 = alloca %"struct.langcc::Option::_T.72", align 4
  %212 = alloca %"struct.langcc::Option::_T.77", align 4
  %213 = alloca %"struct.langcc::rc_ptr.76", align 8
  %214 = alloca %"struct.langcc::Option::_T.72", align 4
  %215 = alloca %"struct.langcc::Option::_T.77", align 4
  %216 = alloca %"struct.langcc::rc_ptr.12", align 8
  %217 = alloca %"struct.langcc::rc_ptr.0", align 8
  %218 = alloca %"struct.langcc::rc_ptr.76", align 8
  %219 = alloca %"struct.langcc::rc_ptr.12", align 8
  %220 = alloca %"struct.std::pair.91", align 8
  %221 = alloca %"struct.langcc::rc_ptr.0", align 8
  %222 = alloca %"struct.langcc::rc_ptr.0", align 8
  %223 = alloca %"struct.langcc::Option::_T.72", align 4
  %224 = alloca %"struct.langcc::rc_ptr.12", align 8
  %225 = alloca %"struct.langcc::rc_ptr.12", align 8
  %226 = alloca %"struct.langcc::rc_ptr.12", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"struct.langcc::rc_ptr.0", align 8
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::allocator", align 1
  %231 = alloca %"struct.langcc::rc_ptr.76", align 8
  %232 = alloca %"struct.langcc::rc_ptr.76", align 8
  %233 = alloca %"struct.langcc::Option::_T.72", align 4
  %234 = alloca %"struct.langcc::Option::_T.77", align 4
  %235 = alloca %"struct.langcc::rc_ptr.76", align 8
  %236 = alloca %"struct.langcc::Option::_T.88", align 4
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::allocator", align 1
  %239 = alloca %"struct.langcc::rc_ptr.76", align 8
  %240 = alloca %"struct.langcc::Option::_T.88", align 4
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::allocator", align 1
  %243 = alloca %"struct.std::pair", align 8
  %244 = alloca %"struct.langcc::rc_ptr.76", align 8
  %245 = alloca %"struct.langcc::Option::_T.72", align 4
  %246 = alloca %"struct.langcc::Option::_T.77", align 4
  %247 = alloca %"struct.langcc::rc_ptr.76", align 8
  %248 = alloca %"struct.langcc::rc_ptr.0", align 8
  %249 = alloca %"struct.langcc::rc_ptr.76", align 8
  %250 = alloca %"struct.langcc::rc_ptr.0", align 8
  %251 = alloca %"struct.langcc::Option::_T.72", align 4
  %252 = alloca %"struct.langcc::rc_ptr.12", align 8
  %253 = alloca %"struct.langcc::rc_ptr.12", align 8
  %254 = alloca %"struct.langcc::rc_ptr.76", align 8
  %255 = alloca %"struct.langcc::rc_ptr.0", align 8
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::allocator", align 1
  %258 = alloca %"struct.langcc::rc_ptr.0", align 8
  %259 = alloca %"class.std::vector", align 8
  %260 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %261 = alloca %"struct.langcc::rc_ptr.0", align 8
  %262 = alloca %"class.std::vector", align 8
  %263 = alloca %"class.std::__cxx11::basic_string", align 8
  %264 = alloca %"class.std::allocator", align 1
  %265 = alloca %"class.std::allocator.73", align 1
  %266 = alloca %"struct.langcc::rc_ptr.0", align 8
  %267 = alloca %"struct.langcc::Option::_T.72", align 4
  %268 = alloca %"struct.langcc::rc_ptr.12", align 8
  %269 = alloca %"struct.langcc::rc_ptr.76", align 8
  %270 = alloca %"struct.langcc::rc_ptr.76", align 8
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::allocator", align 1
  %273 = alloca %"struct.langcc::rc_ptr.12", align 8
  %274 = alloca %"struct.langcc::rc_ptr.76", align 8
  %275 = alloca %"struct.langcc::rc_ptr.0", align 8
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::allocator", align 1
  %278 = alloca %"struct.langcc::Map.52", align 8
  %279 = alloca %"struct.langcc::Map.141", align 8
  %280 = alloca %"struct.langcc::Map.141", align 8
  %281 = alloca %"struct.langcc::Map.141", align 8
  %282 = alloca %"struct.langcc::Map.145", align 8
  %283 = alloca %"struct.std::pair.109", align 8
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"struct.langcc::rc_ptr.0", align 8
  %286 = alloca %"struct.langcc::Option::_T.72", align 4
  %287 = alloca %"struct.langcc::rc_ptr.0", align 8
  %288 = alloca %"class.std::vector", align 8
  %289 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %290 = alloca %"class.std::allocator.73", align 1
  %291 = alloca %"struct.langcc::rc_ptr.12", align 8
  %292 = alloca %"struct.langcc::rc_ptr.12", align 8
  %293 = alloca %"struct.langcc::rc_ptr.12", align 8
  %294 = alloca %"struct.langcc::rc_ptr.76", align 8
  %295 = alloca %"struct.langcc::rc_ptr.0", align 8
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::allocator", align 1
  %298 = alloca %"struct.langcc::Map.52", align 8
  %299 = alloca %"struct.langcc::Map.141", align 8
  %300 = alloca %"struct.langcc::Map.141", align 8
  %301 = alloca %"struct.langcc::MapIterator.121", align 8
  %302 = alloca %"struct.langcc::MapIterator.121", align 8
  %303 = alloca %"struct.langcc::rc_ptr.0", align 8
  %304 = alloca %"struct.langcc::Option::_T.72", align 4
  %305 = alloca %"struct.langcc::rc_ptr.0", align 8
  %306 = alloca %"class.std::vector", align 8
  %307 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %308 = alloca %"class.std::allocator.73", align 1
  %309 = alloca %"struct.langcc::rc_ptr.12", align 8
  %310 = alloca %"struct.langcc::rc_ptr.12", align 8
  %311 = alloca %"struct.langcc::Map.52", align 8
  %312 = alloca %"struct.langcc::Map.141", align 8
  %313 = alloca %"struct.langcc::Map.141", align 8
  %314 = alloca %"struct.langcc::MapIterator.121", align 8
  %315 = alloca %"struct.langcc::MapIterator.121", align 8
  %316 = alloca %"struct.langcc::rc_ptr.0", align 8
  %317 = alloca %"struct.langcc::Option::_T.72", align 4
  %318 = alloca %"struct.langcc::rc_ptr.0", align 8
  %319 = alloca %"class.std::vector", align 8
  %320 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %321 = alloca %"class.std::allocator.73", align 1
  %322 = alloca %"struct.langcc::rc_ptr.12", align 8
  %323 = alloca %"struct.langcc::rc_ptr.12", align 8
  %324 = alloca %"struct.langcc::Map.52", align 8
  %325 = alloca %"struct.langcc::Map.141", align 8
  %326 = alloca %"struct.langcc::Map.141", align 8
  %327 = alloca %"struct.langcc::MapIterator.121", align 8
  %328 = alloca %"struct.langcc::MapIterator.121", align 8
  %329 = alloca %"struct.langcc::rc_ptr.0", align 8
  %330 = alloca %"struct.langcc::Option::_T.72", align 4
  %331 = alloca %"struct.langcc::rc_ptr.0", align 8
  %332 = alloca %"class.std::vector", align 8
  %333 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %334 = alloca %"class.std::allocator.73", align 1
  %335 = alloca %"struct.langcc::rc_ptr.12", align 8
  %336 = alloca %"struct.langcc::rc_ptr.12", align 8
  %337 = alloca %"struct.langcc::rc_ptr.0", align 8
  %338 = alloca %"class.std::vector", align 8
  %339 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %340 = alloca %"struct.langcc::rc_ptr.0", align 8
  %341 = alloca %"class.std::vector", align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator", align 1
  %344 = alloca %"class.std::allocator.73", align 1
  %345 = alloca %"struct.langcc::rc_ptr.0", align 8
  %346 = alloca %"struct.langcc::Option::_T.72", align 4
  %347 = alloca %"struct.langcc::rc_ptr.12", align 8
  %348 = alloca %"struct.langcc::rc_ptr.12", align 8
  %349 = alloca %"struct.langcc::rc_ptr.12", align 8
  %350 = alloca %"struct.langcc::MapIterator.121", align 8
  %351 = alloca %"struct.langcc::MapIterator.121", align 8
  %352 = alloca %"struct.langcc::rc_ptr.76", align 8
  %353 = alloca %"struct.langcc::rc_ptr.0", align 8
  %354 = alloca %"struct.langcc::rc_ptr.76", align 8
  %355 = alloca %"struct.langcc::rc_ptr.76", align 8
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca %"class.std::__cxx11::basic_string", align 8
  %358 = alloca %"class.std::allocator", align 1
  %359 = alloca %"struct.langcc::rc_ptr.0", align 8
  %360 = alloca %"class.std::vector", align 8
  %361 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %362 = alloca %"struct.langcc::rc_ptr.0", align 8
  %363 = alloca %"class.std::vector", align 8
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::allocator", align 1
  %366 = alloca %"class.std::allocator.73", align 1
  %367 = alloca %"class.std::__cxx11::basic_string", align 8
  %368 = alloca %"struct.langcc::rc_ptr.0", align 8
  %369 = alloca %"class.std::__cxx11::basic_string", align 8
  %370 = alloca %"class.std::allocator", align 1
  %371 = alloca %"struct.langcc::rc_ptr.0", align 8
  %372 = alloca %"struct.langcc::Option::_T.72", align 4
  %373 = alloca %"struct.langcc::rc_ptr.12", align 8
  %374 = alloca %"struct.langcc::rc_ptr.12", align 8
  %375 = alloca %"struct.langcc::rc_ptr.12", align 8
  %376 = alloca %"struct.langcc::MapIterator.121", align 8
  %377 = alloca %"struct.langcc::MapIterator.121", align 8
  %378 = alloca %"struct.langcc::rc_ptr.76", align 8
  %379 = alloca %"struct.langcc::rc_ptr.0", align 8
  %380 = alloca %"struct.langcc::rc_ptr.76", align 8
  %381 = alloca %"struct.langcc::rc_ptr.76", align 8
  %382 = alloca %"class.std::__cxx11::basic_string", align 8
  %383 = alloca %"class.std::__cxx11::basic_string", align 8
  %384 = alloca %"class.std::allocator", align 1
  %385 = alloca %"struct.langcc::rc_ptr.0", align 8
  %386 = alloca %"class.std::vector", align 8
  %387 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %388 = alloca %"struct.langcc::rc_ptr.0", align 8
  %389 = alloca %"class.std::vector", align 8
  %390 = alloca %"class.std::__cxx11::basic_string", align 8
  %391 = alloca %"class.std::allocator", align 1
  %392 = alloca %"class.std::allocator.73", align 1
  %393 = alloca %"struct.langcc::rc_ptr.0", align 8
  %394 = alloca %"class.std::vector", align 8
  %395 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %396 = alloca %"class.std::allocator", align 1
  %397 = alloca %"class.std::allocator", align 1
  %398 = alloca %"class.std::allocator.73", align 1
  %399 = alloca %"struct.langcc::rc_ptr.78", align 8
  %400 = alloca %"struct.langcc::rc_ptr.12", align 8
  %401 = alloca %"struct.langcc::rc_ptr.12", align 8
  %402 = alloca %"struct.langcc::rc_ptr.76", align 8
  %403 = alloca %"class.std::__cxx11::basic_string", align 8
  %404 = alloca %"class.std::allocator", align 1
  %405 = alloca %"class.std::__cxx11::basic_string", align 8
  %406 = alloca %"class.std::allocator", align 1
  %407 = alloca %"struct.langcc::rc_ptr.76", align 8
  %408 = alloca %"class.std::__cxx11::basic_string", align 8
  %409 = alloca %"class.std::allocator", align 1
  %410 = alloca %"class.std::__cxx11::basic_string", align 8
  %411 = alloca %"class.std::allocator", align 1
  %412 = alloca %"struct.langcc::rc_ptr.76", align 8
  %413 = alloca %"struct.langcc::rc_ptr.76", align 8
  %414 = alloca %"struct.langcc::rc_ptr.76", align 8
  %415 = alloca %"struct.langcc::Option::_T.72", align 4
  %416 = alloca %"struct.langcc::Option::_T.77", align 4
  %417 = alloca %"class.std::__cxx11::basic_string", align 8
  %418 = alloca %"class.std::allocator", align 1
  %419 = alloca %"struct.langcc::rc_ptr.12", align 8
  %420 = alloca %"struct.langcc::MapIterator.121", align 8
  %421 = alloca %"struct.langcc::MapIterator.121", align 8
  %422 = alloca %"struct.langcc::rc_ptr.76", align 8
  %423 = alloca %"struct.langcc::rc_ptr.124", align 8
  %424 = alloca %"struct.langcc::rc_ptr.76", align 8
  %425 = alloca %"struct.langcc::rc_ptr.76", align 8
  %426 = alloca %"struct.langcc::Option::_T.72", align 4
  %427 = alloca %"struct.langcc::Option::_T.77", align 4
  %428 = alloca %"struct.langcc::rc_ptr.76", align 8
  %429 = alloca %"struct.langcc::Option::_T.72", align 4
  %430 = alloca %"struct.langcc::rc_ptr.0", align 8
  %431 = alloca %"class.std::vector", align 8
  %432 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %433 = alloca %"class.std::allocator.73", align 1
  %434 = alloca %"struct.langcc::Option::_T.77", align 4
  %435 = alloca %"struct.langcc::rc_ptr.76", align 8
  %436 = alloca %"struct.langcc::rc_ptr.76", align 8
  %437 = alloca %"struct.langcc::rc_ptr.76", align 8
  %438 = alloca %"class.std::__cxx11::basic_string", align 8
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::allocator", align 1
  %441 = alloca %"class.std::__cxx11::basic_string", align 8
  %442 = alloca %"class.std::__cxx11::basic_string", align 8
  %443 = alloca %"class.std::allocator", align 1
  %444 = alloca %"struct.langcc::rc_ptr.76", align 8
  %445 = alloca %"struct.langcc::rc_ptr.76", align 8
  %446 = alloca %"class.std::__cxx11::basic_string", align 8
  %447 = alloca %"struct.langcc::rc_ptr.76", align 8
  %448 = alloca %"struct.langcc::rc_ptr.76", align 8
  %449 = alloca %"class.std::__cxx11::basic_string", align 8
  %450 = alloca %"class.std::__cxx11::basic_string", align 8
  %451 = alloca %"class.std::allocator", align 1
  %452 = alloca %"struct.langcc::rc_ptr.76", align 8
  %453 = alloca %"class.std::__cxx11::basic_string", align 8
  %454 = alloca %"class.std::__cxx11::basic_string", align 8
  %455 = alloca %"class.std::allocator", align 1
  %456 = alloca %"struct.langcc::rc_ptr.76", align 8
  %457 = alloca %"struct.langcc::rc_ptr.76", align 8
  %458 = alloca %"struct.langcc::rc_ptr.76", align 8
  %459 = alloca %"struct.langcc::rc_ptr.76", align 8
  %460 = alloca %"struct.langcc::rc_ptr.125", align 8
  %461 = alloca %"struct.langcc::rc_ptr.76", align 8
  %462 = alloca %"struct.langcc::rc_ptr.12", align 8
  %463 = alloca %"struct.langcc::Option::_T.117", align 4
  %464 = alloca %"struct.langcc::rc_ptr.76", align 8
  %465 = alloca %"class.std::__cxx11::basic_string", align 8
  %466 = alloca %"class.std::allocator", align 1
  %467 = alloca %"struct.langcc::rc_ptr.111", align 8
  %468 = alloca %"struct.langcc::rc_ptr.0", align 8
  %469 = alloca %"struct.std::pair.115", align 8
  %470 = alloca %"struct.langcc::rc_ptr.0", align 8
  %471 = alloca %"struct.langcc::rc_ptr.76", align 8
  %472 = alloca %"class.std::__cxx11::basic_string", align 8
  %473 = alloca %"struct.langcc::rc_ptr.76", align 8
  %474 = alloca %"struct.langcc::rc_ptr.46", align 8
  %475 = alloca %"struct.langcc::rc_ptr.83", align 8
  %476 = alloca %"class.std::__cxx11::basic_string", align 8
  %477 = alloca %"class.std::allocator", align 1
  %478 = alloca %"struct.langcc::rc_ptr.42", align 8
  %479 = alloca %"class.std::__cxx11::basic_string", align 8
  %480 = alloca %"class.std::allocator", align 1
  %481 = alloca %"struct.langcc::rc_ptr.76", align 8
  %482 = alloca %"struct.langcc::rc_ptr.46", align 8
  %483 = alloca %"struct.langcc::rc_ptr.76", align 8
  %484 = alloca %"class.std::__cxx11::basic_string", align 8
  %485 = alloca %"class.std::__cxx11::basic_string", align 8
  %486 = alloca %"class.std::allocator", align 1
  %487 = alloca %"class.std::__cxx11::basic_string", align 8
  %488 = alloca %"class.std::allocator", align 1
  %489 = alloca %"struct.langcc::rc_ptr.76", align 8
  %490 = alloca %"struct.langcc::Option::_T.88", align 4
  %491 = alloca %"class.std::__cxx11::basic_string", align 8
  %492 = alloca %"class.std::allocator", align 1
  %493 = alloca %"struct.langcc::rc_ptr.0", align 8
  %494 = alloca %"class.std::vector", align 8
  %495 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %496 = alloca %"struct.langcc::rc_ptr.0", align 8
  %497 = alloca %"class.std::vector", align 8
  %498 = alloca %"class.std::__cxx11::basic_string", align 8
  %499 = alloca %"class.std::allocator", align 1
  %500 = alloca %"class.std::allocator.73", align 1
  %501 = alloca %"struct.langcc::rc_ptr.0", align 8
  %502 = alloca %"struct.langcc::Option::_T.72", align 4
  %503 = alloca %"struct.langcc::rc_ptr.76", align 8
  %504 = alloca %"struct.langcc::Option::_T.72", align 4
  %505 = alloca %"struct.langcc::Option::_T.77", align 4
  %506 = alloca %"struct.langcc::rc_ptr.76", align 8
  %507 = alloca %"struct.langcc::Option::_T.72", align 4
  %508 = alloca %"struct.langcc::Option::_T.77", align 4
  %509 = alloca %"struct.langcc::rc_ptr.12", align 8
  %510 = alloca %"struct.langcc::rc_ptr.12", align 8
  %511 = alloca %"struct.langcc::rc_ptr.76", align 8
  %512 = alloca %"struct.langcc::rc_ptr.76", align 8
  %513 = alloca %"class.std::__cxx11::basic_string", align 8
  %514 = alloca %"class.std::allocator", align 1
  %515 = alloca %"class.std::__cxx11::basic_string", align 8
  %516 = alloca %"class.std::allocator", align 1
  %517 = alloca %"struct.langcc::rc_ptr.0", align 8
  %518 = alloca %"class.std::vector", align 8
  %519 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %520 = alloca %"struct.langcc::rc_ptr.0", align 8
  %521 = alloca %"class.std::vector", align 8
  %522 = alloca %"class.std::__cxx11::basic_string", align 8
  %523 = alloca %"class.std::allocator", align 1
  %524 = alloca %"class.std::allocator.73", align 1
  %525 = alloca %"struct.langcc::rc_ptr.0", align 8
  %526 = alloca %"struct.langcc::Option::_T.72", align 4
  %527 = alloca %"struct.langcc::rc_ptr.76", align 8
  %528 = alloca %"struct.langcc::Option::_T.72", align 4
  %529 = alloca %"struct.langcc::Option::_T.77", align 4
  %530 = alloca %"struct.langcc::rc_ptr.76", align 8
  %531 = alloca %"struct.langcc::Option::_T.72", align 4
  %532 = alloca %"struct.langcc::Option::_T.77", align 4
  %533 = alloca %"struct.langcc::rc_ptr.76", align 8
  %534 = alloca %"struct.langcc::Option::_T.72", align 4
  %535 = alloca %"struct.langcc::Option::_T.77", align 4
  %536 = alloca %"struct.langcc::rc_ptr.12", align 8
  %537 = alloca %"struct.langcc::rc_ptr.12", align 8
  %538 = alloca %"struct.langcc::rc_ptr.76", align 8
  %539 = alloca %"struct.langcc::rc_ptr.76", align 8
  %540 = alloca %"class.std::__cxx11::basic_string", align 8
  %541 = alloca %"class.std::allocator", align 1
  %542 = alloca %"class.std::__cxx11::basic_string", align 8
  %543 = alloca %"class.std::allocator", align 1
  %544 = alloca %"struct.langcc::rc_ptr.12", align 8
  %545 = alloca %"struct.langcc::MapIterator.121", align 8
  %546 = alloca %"struct.langcc::MapIterator.121", align 8
  %547 = alloca %"struct.langcc::rc_ptr.76", align 8
  %548 = alloca %"struct.langcc::rc_ptr.76", align 8
  %549 = alloca %"struct.langcc::rc_ptr.125", align 8
  %550 = alloca %"struct.langcc::rc_ptr.76", align 8
  %551 = alloca %"struct.langcc::rc_ptr.0", align 8
  %552 = alloca %"struct.langcc::Option::_T.72", align 4
  %553 = alloca %"struct.langcc::rc_ptr.76", align 8
  %554 = alloca %"struct.langcc::Option::_T.72", align 4
  %555 = alloca %"struct.langcc::Option::_T.77", align 4
  %556 = alloca %"struct.langcc::rc_ptr.76", align 8
  %557 = alloca %"struct.langcc::Option::_T.88", align 4
  %558 = alloca %"class.std::__cxx11::basic_string", align 8
  %559 = alloca %"class.std::allocator", align 1
  %560 = alloca %"struct.langcc::MapIterator.121", align 8
  %561 = alloca %"struct.langcc::MapIterator.121", align 8
  %562 = alloca %"struct.langcc::rc_ptr.76", align 8
  %563 = alloca %"struct.langcc::rc_ptr.76", align 8
  %564 = alloca %"struct.langcc::Option::_T.88", align 4
  %565 = alloca %"class.std::__cxx11::basic_string", align 8
  %566 = alloca %"class.std::allocator", align 1
  %567 = alloca %"struct.langcc::MapIterator.121", align 8
  %568 = alloca %"struct.langcc::MapIterator.121", align 8
  %569 = alloca %"struct.langcc::rc_ptr.76", align 8
  %570 = alloca %"struct.langcc::rc_ptr.0", align 8
  %571 = alloca %"struct.langcc::rc_ptr.76", align 8
  %572 = alloca %"struct.langcc::Option::_T.72", align 4
  %573 = alloca %"struct.langcc::rc_ptr.0", align 8
  %574 = alloca %"class.std::vector", align 8
  %575 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %576 = alloca %"class.std::allocator.73", align 1
  %577 = alloca %"struct.langcc::Option::_T.77", align 4
  %578 = alloca %"class.std::__cxx11::basic_string", align 8
  %579 = alloca %"class.std::__cxx11::basic_string", align 8
  %580 = alloca %"class.std::__cxx11::basic_string", align 8
  %581 = alloca %"class.std::__cxx11::basic_string", align 8
  %582 = alloca %"class.std::allocator", align 1
  %583 = alloca %"struct.langcc::rc_ptr.76", align 8
  %584 = alloca %"struct.langcc::Option::_T.88", align 4
  %585 = alloca %"class.std::__cxx11::basic_string", align 8
  %586 = alloca %"class.std::allocator", align 1
  %587 = alloca %"struct.langcc::rc_ptr.76", align 8
  %588 = alloca %"struct.langcc::MapIterator.121", align 8
  %589 = alloca %"struct.langcc::MapIterator.121", align 8
  %590 = alloca %"struct.langcc::rc_ptr.76", align 8
  %591 = alloca %"struct.langcc::rc_ptr.0", align 8
  %592 = alloca %"struct.langcc::rc_ptr.76", align 8
  %593 = alloca %"struct.langcc::rc_ptr.12", align 8
  %594 = alloca %"struct.langcc::MapIterator.121", align 8
  %595 = alloca %"struct.langcc::MapIterator.121", align 8
  %596 = alloca %"struct.langcc::rc_ptr.76", align 8
  %597 = alloca %"struct.langcc::rc_ptr.124", align 8
  %598 = alloca %"struct.langcc::rc_ptr.76", align 8
  %599 = alloca %"struct.langcc::rc_ptr.76", align 8
  %600 = alloca %"struct.langcc::Option::_T.72", align 4
  %601 = alloca %"struct.langcc::Option::_T.77", align 4
  %602 = alloca %"struct.langcc::rc_ptr.76", align 8
  %603 = alloca %"struct.langcc::Option::_T.72", align 4
  %604 = alloca %"struct.langcc::rc_ptr.0", align 8
  %605 = alloca %"class.std::vector", align 8
  %606 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %607 = alloca %"class.std::allocator.73", align 1
  %608 = alloca %"struct.langcc::Option::_T.77", align 4
  %609 = alloca %"struct.langcc::rc_ptr.76", align 8
  %610 = alloca %"struct.langcc::rc_ptr.76", align 8
  %611 = alloca %"struct.langcc::rc_ptr.12", align 8
  %612 = alloca %"struct.langcc::MapIterator.121", align 8
  %613 = alloca %"struct.langcc::MapIterator.121", align 8
  %614 = alloca %"struct.langcc::rc_ptr.76", align 8
  %615 = alloca %"struct.langcc::rc_ptr.124", align 8
  %616 = alloca %"struct.langcc::rc_ptr.76", align 8
  %617 = alloca %"struct.langcc::rc_ptr.76", align 8
  %618 = alloca %"struct.langcc::Option::_T.72", align 4
  %619 = alloca %"struct.langcc::Option::_T.77", align 4
  %620 = alloca %"struct.langcc::rc_ptr.76", align 8
  %621 = alloca %"struct.langcc::Option::_T.72", align 4
  %622 = alloca %"struct.langcc::rc_ptr.0", align 8
  %623 = alloca %"class.std::vector", align 8
  %624 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %625 = alloca %"class.std::allocator.73", align 1
  %626 = alloca %"struct.langcc::Option::_T.77", align 4
  %627 = alloca %"struct.langcc::rc_ptr.76", align 8
  %628 = alloca %"struct.langcc::rc_ptr.76", align 8
  %629 = alloca %"struct.langcc::rc_ptr.76", align 8
  %630 = alloca %"struct.langcc::rc_ptr.33", align 8
  %631 = alloca %"struct.std::pair", align 8
  %632 = alloca %"struct.langcc::rc_ptr.76", align 8
  %633 = alloca %"struct.langcc::Option::_T.72", align 4
  %634 = alloca %"struct.langcc::Option::_T.77", align 4
  %635 = alloca %"struct.langcc::rc_ptr.76", align 8
  %636 = alloca %"struct.langcc::Option::_T.88", align 4
  %637 = alloca %"class.std::__cxx11::basic_string", align 8
  %638 = alloca %"class.std::allocator", align 1
  %639 = alloca %"struct.langcc::rc_ptr.76", align 8
  %640 = alloca %"struct.langcc::Option::_T.88", align 4
  %641 = alloca %"class.std::__cxx11::basic_string", align 8
  %642 = alloca %"class.std::allocator", align 1
  %643 = alloca %"struct.langcc::rc_ptr.76", align 8
  %644 = alloca %"struct.langcc::Option::_T.88", align 4
  %645 = alloca %"class.std::__cxx11::basic_string", align 8
  %646 = alloca %"class.std::allocator", align 1
  %647 = alloca %"struct.std::pair.109", align 8
  %648 = alloca %"class.std::__cxx11::basic_string", align 8
  %649 = alloca %"struct.langcc::rc_ptr.104", align 8
  %650 = alloca %"struct.langcc::rc_ptr.0", align 8
  %651 = alloca %"struct.langcc::rc_ptr.76", align 8
  %652 = alloca %"struct.langcc::rc_ptr.46", align 8
  %653 = alloca %"struct.langcc::rc_ptr.76", align 8
  %654 = alloca %"class.std::__cxx11::basic_string", align 8
  %655 = alloca %"struct.langcc::rc_ptr.76", align 8
  %656 = alloca %"struct.langcc::Option::_T.88", align 4
  %657 = alloca %"class.std::__cxx11::basic_string", align 8
  %658 = alloca %"class.std::allocator", align 1
  %659 = alloca %"class.std::__cxx11::basic_string", align 8
  %660 = alloca %"struct.langcc::rc_ptr.104", align 8
  %661 = alloca %"struct.langcc::rc_ptr.0", align 8
  %662 = alloca %"struct.langcc::rc_ptr.76", align 8
  %663 = alloca %"struct.langcc::rc_ptr.46", align 8
  %664 = alloca %"struct.langcc::rc_ptr.76", align 8
  %665 = alloca %"class.std::__cxx11::basic_string", align 8
  %666 = alloca %"class.std::__cxx11::basic_string", align 8
  %667 = alloca %"struct.langcc::rc_ptr.0", align 8
  %668 = alloca %"class.std::__cxx11::basic_string", align 8
  %669 = alloca %"struct.langcc::rc_ptr.76", align 8
  %670 = alloca %"struct.langcc::rc_ptr.76", align 8
  %671 = alloca %"struct.langcc::Option::_T.88", align 4
  %672 = alloca %"class.std::__cxx11::basic_string", align 8
  %673 = alloca %"class.std::allocator", align 1
  %674 = alloca %"struct.langcc::rc_ptr.76", align 8
  %675 = alloca %"struct.langcc::Option::_T.88", align 4
  %676 = alloca %"class.std::__cxx11::basic_string", align 8
  %677 = alloca %"class.std::allocator", align 1
  %678 = alloca %"class.std::__cxx11::basic_string", align 8
  %679 = alloca %"struct.langcc::rc_ptr.0", align 8
  %680 = alloca %"class.std::__cxx11::basic_string", align 8
  %681 = alloca %"struct.langcc::rc_ptr.76", align 8
  %682 = alloca %"struct.langcc::rc_ptr.76", align 8
  %683 = alloca %"struct.langcc::Option::_T.88", align 4
  %684 = alloca %"class.std::__cxx11::basic_string", align 8
  %685 = alloca %"class.std::allocator", align 1
  %686 = alloca %"struct.langcc::rc_ptr.76", align 8
  %687 = alloca %"struct.langcc::Option::_T.88", align 4
  %688 = alloca %"class.std::__cxx11::basic_string", align 8
  %689 = alloca %"class.std::allocator", align 1
  %690 = alloca %"class.std::__cxx11::basic_string", align 8
  %691 = alloca %"struct.langcc::rc_ptr.0", align 8
  %692 = alloca %"class.std::__cxx11::basic_string", align 8
  %693 = alloca %"struct.langcc::rc_ptr.76", align 8
  %694 = alloca %"struct.langcc::rc_ptr.76", align 8
  %695 = alloca %"struct.langcc::Option::_T.88", align 4
  %696 = alloca %"class.std::__cxx11::basic_string", align 8
  %697 = alloca %"class.std::allocator", align 1
  %698 = alloca %"struct.std::pair.109", align 8
  %699 = alloca %"class.std::__cxx11::basic_string", align 8
  %700 = alloca %"struct.langcc::rc_ptr.76", align 8
  %701 = alloca %"class.std::__cxx11::basic_string", align 8
  %702 = alloca %"struct.langcc::rc_ptr.76", align 8
  %703 = alloca %"struct.langcc::Option::_T.88", align 4
  %704 = alloca %"class.std::__cxx11::basic_string", align 8
  %705 = alloca %"class.std::allocator", align 1
  %706 = alloca %"struct.langcc::rc_ptr.76", align 8
  %707 = alloca %"struct.langcc::Option::_T.88", align 4
  %708 = alloca %"class.std::__cxx11::basic_string", align 8
  %709 = alloca %"class.std::allocator", align 1
  %710 = alloca %"struct.langcc::rc_ptr.76", align 8
  %711 = alloca %"struct.langcc::rc_ptr.33", align 8
  %712 = alloca %"struct.langcc::rc_ptr.76", align 8
  %713 = alloca %"struct.langcc::Option::_T.88", align 4
  %714 = alloca %"class.std::__cxx11::basic_string", align 8
  %715 = alloca %"class.std::allocator", align 1
  %716 = alloca %"struct.langcc::rc_ptr.76", align 8
  %717 = alloca %"struct.langcc::rc_ptr.76", align 8
  %718 = alloca %"struct.langcc::rc_ptr.76", align 8
  %719 = alloca %"struct.langcc::rc_ptr.12", align 8
  %720 = alloca %"struct.langcc::rc_ptr.12", align 8
  %721 = alloca %"struct.langcc::Option::_T.117", align 4
  %722 = alloca %"struct.langcc::rc_ptr.76", align 8
  %723 = alloca %"struct.langcc::rc_ptr.76", align 8
  %724 = alloca %"struct.langcc::Option::_T.72", align 4
  %725 = alloca %"struct.langcc::Option::_T.77", align 4
  %726 = alloca %"struct.langcc::rc_ptr.12", align 8
  %727 = alloca %"struct.langcc::rc_ptr.76", align 8
  %728 = alloca %"struct.langcc::rc_ptr.76", align 8
  %729 = alloca %"struct.langcc::rc_ptr.125", align 8
  %730 = alloca %"struct.langcc::rc_ptr.76", align 8
  %731 = alloca %"struct.langcc::Option::_T.117", align 4
  %732 = alloca %"struct.langcc::rc_ptr.76", align 8
  %733 = alloca %"struct.langcc::rc_ptr.76", align 8
  %734 = alloca %"struct.langcc::Option::_T.72", align 4
  %735 = alloca %"struct.langcc::Option::_T.77", align 4
  %736 = alloca %"struct.langcc::rc_ptr.0", align 8
  %737 = alloca %"struct.langcc::Option::_T.72", align 4
  %738 = alloca %"struct.langcc::rc_ptr.76", align 8
  %739 = alloca %"struct.langcc::rc_ptr.125", align 8
  %740 = alloca %"struct.langcc::rc_ptr.76", align 8
  %741 = alloca %"struct.langcc::Option::_T.117", align 4
  %742 = alloca %"struct.langcc::rc_ptr.76", align 8
  %743 = alloca %"struct.langcc::rc_ptr.76", align 8
  %744 = alloca %"struct.langcc::Option::_T.72", align 4
  %745 = alloca %"struct.langcc::Option::_T.77", align 4
  %746 = alloca %"struct.langcc::rc_ptr.0", align 8
  %747 = alloca %"struct.langcc::Option::_T.72", align 4
  %748 = alloca %"struct.std::pair.109", align 8
  %749 = alloca %"class.std::__cxx11::basic_string", align 8
  %750 = alloca %"struct.langcc::rc_ptr.76", align 8
  %751 = alloca %"struct.langcc::rc_ptr.12", align 8
  %752 = alloca %"struct.langcc::rc_ptr.12", align 8
  %753 = alloca %"struct.langcc::Option::_T.117", align 4
  %754 = alloca %"struct.langcc::rc_ptr.76", align 8
  %755 = alloca %"struct.langcc::rc_ptr.76", align 8
  %756 = alloca %"struct.langcc::Option::_T.72", align 4
  %757 = alloca %"struct.langcc::Option::_T.77", align 4
  %758 = alloca %"struct.langcc::rc_ptr.76", align 8
  %759 = alloca %"struct.langcc::Option::_T.72", align 4
  %760 = alloca %"struct.langcc::rc_ptr.0", align 8
  %761 = alloca %"class.std::vector", align 8
  %762 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %763 = alloca %"class.std::allocator.73", align 1
  %764 = alloca %"struct.langcc::Option::_T.77", align 4
  %765 = alloca %"struct.langcc::MapIterator.121", align 8
  %766 = alloca %"struct.langcc::MapIterator.121", align 8
  %767 = alloca %"struct.langcc::rc_ptr.76", align 8
  %768 = alloca %"struct.langcc::rc_ptr.12", align 8
  %769 = alloca %"struct.langcc::rc_ptr.12", align 8
  %770 = alloca %"struct.langcc::Option::_T.117", align 4
  %771 = alloca %"struct.langcc::rc_ptr.76", align 8
  %772 = alloca %"class.std::__cxx11::basic_string", align 8
  %773 = alloca %"class.std::allocator", align 1
  %774 = alloca %"struct.langcc::rc_ptr.76", align 8
  %775 = alloca %"struct.langcc::Option::_T.72", align 4
  %776 = alloca %"struct.langcc::rc_ptr.0", align 8
  %777 = alloca %"class.std::vector", align 8
  %778 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %779 = alloca %"class.std::allocator.73", align 1
  %780 = alloca %"struct.langcc::Option::_T.77", align 4
  %781 = alloca %"struct.langcc::MapIterator.121", align 8
  %782 = alloca %"struct.langcc::MapIterator.121", align 8
  %783 = alloca %"struct.langcc::rc_ptr.76", align 8
  %784 = alloca %"struct.langcc::rc_ptr.0", align 8
  %785 = alloca %"struct.langcc::rc_ptr.76", align 8
  %786 = alloca %"struct.langcc::rc_ptr.12", align 8
  %787 = alloca %"struct.langcc::rc_ptr.12", align 8
  %788 = alloca %"struct.langcc::Option::_T.117", align 4
  %789 = alloca %"struct.langcc::rc_ptr.76", align 8
  %790 = alloca %"struct.langcc::Option::_T.72", align 4
  %791 = alloca %"struct.langcc::rc_ptr.0", align 8
  %792 = alloca %"class.std::vector", align 8
  %793 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %794 = alloca %"class.std::allocator.73", align 1
  %795 = alloca %"struct.langcc::Option::_T.77", align 4
  %796 = alloca %"struct.langcc::MapIterator.121", align 8
  %797 = alloca %"struct.langcc::MapIterator.121", align 8
  %798 = alloca %"struct.langcc::rc_ptr.76", align 8
  %799 = alloca %"struct.langcc::rc_ptr.0", align 8
  %800 = alloca %"struct.langcc::rc_ptr.76", align 8
  %801 = alloca %"struct.langcc::rc_ptr.76", align 8
  %802 = alloca %"struct.langcc::rc_ptr.12", align 8
  %803 = alloca %"struct.langcc::rc_ptr.12", align 8
  %804 = alloca %"struct.langcc::Option::_T.117", align 4
  %805 = alloca %"struct.langcc::rc_ptr.76", align 8
  %806 = alloca %"struct.langcc::Option::_T.72", align 4
  %807 = alloca %"struct.langcc::rc_ptr.0", align 8
  %808 = alloca %"class.std::vector", align 8
  %809 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %810 = alloca %"class.std::allocator.73", align 1
  %811 = alloca %"struct.langcc::Option::_T.77", align 4
  %812 = alloca %"struct.langcc::rc_ptr.76", align 8
  %813 = alloca %"struct.langcc::rc_ptr.12", align 8
  %814 = alloca %"struct.langcc::rc_ptr.12", align 8
  %815 = alloca %"struct.langcc::Option::_T.117", align 4
  %816 = alloca %"struct.langcc::rc_ptr.76", align 8
  %817 = alloca %"struct.langcc::rc_ptr.76", align 8
  %818 = alloca %"struct.langcc::Option::_T.72", align 4
  %819 = alloca %"struct.langcc::Option::_T.77", align 4
  %820 = alloca %"struct.langcc::rc_ptr.76", align 8
  %821 = alloca %"struct.langcc::rc_ptr.12", align 8
  %822 = alloca %"struct.langcc::rc_ptr.76", align 8
  %823 = alloca %"struct.langcc::rc_ptr.12", align 8
  %824 = alloca %"struct.langcc::Option::_T.117", align 4
  %825 = alloca %"struct.langcc::rc_ptr.76", align 8
  %826 = alloca %"struct.langcc::rc_ptr.76", align 8
  %827 = alloca %"struct.langcc::Option::_T.72", align 4
  %828 = alloca %"struct.langcc::Option::_T.77", align 4
  %829 = alloca %"struct.langcc::rc_ptr.33", align 8
  %830 = alloca %"struct.langcc::rc_ptr.76", align 8
  %831 = alloca %"struct.langcc::rc_ptr.76", align 8
  %832 = alloca %"struct.langcc::Option::_T.72", align 4
  %833 = alloca %"struct.langcc::Option::_T.77", align 4
  %834 = alloca %"struct.langcc::rc_ptr.76", align 8
  %835 = alloca %"struct.langcc::rc_ptr.76", align 8
  %836 = alloca %"struct.langcc::Option::_T.88", align 4
  %837 = alloca %"class.std::__cxx11::basic_string", align 8
  %838 = alloca %"class.std::allocator", align 1
  %839 = alloca %"struct.langcc::rc_ptr.12", align 8
  %840 = alloca %"struct.std::pair", align 8
  %841 = alloca %"struct.langcc::rc_ptr.76", align 8
  %842 = alloca %"struct.langcc::rc_ptr.0", align 8
  %843 = alloca %"struct.langcc::rc_ptr.76", align 8
  %844 = alloca %"struct.langcc::rc_ptr.76", align 8
  %845 = alloca %"struct.langcc::rc_ptr.76", align 8
  %846 = alloca %"struct.langcc::rc_ptr.125", align 8
  %847 = alloca %"struct.langcc::rc_ptr.76", align 8
  %848 = alloca %"struct.langcc::rc_ptr.0", align 8
  %849 = alloca %"struct.langcc::rc_ptr.125", align 8
  %850 = alloca %"struct.langcc::rc_ptr.76", align 8
  %851 = alloca %"struct.langcc::rc_ptr.12", align 8
  %852 = alloca %"struct.langcc::rc_ptr.12", align 8
  %853 = alloca %"struct.langcc::Option::_T.117", align 4
  %854 = alloca %"struct.langcc::rc_ptr.76", align 8
  %855 = alloca %"struct.langcc::rc_ptr.76", align 8
  %856 = alloca %"struct.langcc::rc_ptr.76", align 8
  %857 = alloca %"struct.langcc::rc_ptr.76", align 8
  %858 = alloca %"struct.langcc::rc_ptr.78", align 8
  %859 = alloca %"class.std::__cxx11::basic_string", align 8
  %860 = alloca %"class.std::allocator", align 1
  %861 = alloca %"class.std::__cxx11::basic_string", align 8
  %862 = alloca %"class.std::allocator", align 1
  %863 = alloca %"struct.langcc::rc_ptr.125", align 8
  %864 = alloca %"struct.langcc::rc_ptr.76", align 8
  %865 = alloca %"struct.langcc::rc_ptr.12", align 8
  %866 = alloca %"struct.langcc::rc_ptr.12", align 8
  %867 = alloca %"struct.langcc::Option::_T.117", align 4
  %868 = alloca %"struct.langcc::rc_ptr.76", align 8
  %869 = alloca %"class.std::__cxx11::basic_string", align 8
  %870 = alloca %"class.std::allocator", align 1
  %871 = alloca %"struct.langcc::rc_ptr.76", align 8
  %872 = alloca %"struct.langcc::rc_ptr.12", align 8
  %873 = alloca %"struct.langcc::rc_ptr.83", align 8
  %874 = alloca %"class.std::__cxx11::basic_string", align 8
  %875 = alloca %"class.std::allocator", align 1
  %876 = alloca %"struct.langcc::rc_ptr.76", align 8
  %877 = alloca %"struct.langcc::rc_ptr.0", align 8
  %878 = alloca %"class.std::__cxx11::basic_string", align 8
  %879 = alloca %"class.std::allocator", align 1
  %880 = alloca %"class.std::__cxx11::basic_string", align 8
  %881 = alloca %"class.std::allocator", align 1
  %882 = alloca %"struct.langcc::rc_ptr.125", align 8
  %883 = alloca %"struct.langcc::rc_ptr.76", align 8
  %884 = alloca %"struct.langcc::Option::_T.88", align 4
  %885 = alloca %"class.std::__cxx11::basic_string", align 8
  %886 = alloca %"class.std::allocator", align 1
  %887 = alloca %"struct.langcc::rc_ptr.12", align 8
  %888 = alloca %"struct.langcc::rc_ptr.76", align 8
  %889 = alloca %"struct.langcc::rc_ptr.76", align 8
  %890 = alloca %"struct.langcc::rc_ptr.125", align 8
  %891 = alloca %"struct.langcc::rc_ptr.76", align 8
  %892 = alloca %"struct.langcc::rc_ptr.12", align 8
  %893 = alloca %"struct.langcc::Option::_T.117", align 4
  %894 = alloca %"struct.langcc::rc_ptr.76", align 8
  %895 = alloca %"struct.langcc::rc_ptr.76", align 8
  %896 = alloca %"struct.langcc::Option::_T.72", align 4
  %897 = alloca %"struct.langcc::Option::_T.77", align 4
  %898 = alloca %"struct.langcc::rc_ptr.76", align 8
  %899 = alloca %"struct.langcc::Option::_T.72", align 4
  %900 = alloca %"struct.langcc::Option::_T.77", align 4
  %901 = alloca %"struct.langcc::rc_ptr.12", align 8
  %902 = alloca %"struct.langcc::rc_ptr.125", align 8
  %903 = alloca %"struct.langcc::rc_ptr.76", align 8
  %904 = alloca %"struct.langcc::rc_ptr.12", align 8
  %905 = alloca %"struct.langcc::Option::_T.117", align 4
  %906 = alloca %"struct.langcc::rc_ptr.76", align 8
  %907 = alloca %"struct.langcc::rc_ptr.76", align 8
  %908 = alloca %"struct.langcc::Option::_T.72", align 4
  %909 = alloca %"struct.langcc::Option::_T.77", align 4
  %910 = alloca %"struct.langcc::rc_ptr.76", align 8
  %911 = alloca %"struct.langcc::Option::_T.72", align 4
  %912 = alloca %"struct.langcc::Option::_T.77", align 4
  %913 = alloca %"struct.langcc::rc_ptr.12", align 8
  %914 = alloca %"struct.std::pair.109", align 8
  %915 = alloca %"class.std::__cxx11::basic_string", align 8
  %916 = alloca %"struct.langcc::rc_ptr.125", align 8
  %917 = alloca %"struct.langcc::rc_ptr.76", align 8
  %918 = alloca %"struct.langcc::rc_ptr.12", align 8
  %919 = alloca %"struct.langcc::rc_ptr.12", align 8
  %920 = alloca %"struct.langcc::Option::_T.117", align 4
  %921 = alloca %"struct.langcc::rc_ptr.76", align 8
  %922 = alloca %"struct.langcc::rc_ptr.76", align 8
  %923 = alloca %"struct.langcc::Option::_T.72", align 4
  %924 = alloca %"struct.langcc::Option::_T.77", align 4
  %925 = alloca %"struct.langcc::rc_ptr.76", align 8
  %926 = alloca %"struct.langcc::rc_ptr.76", align 8
  %927 = alloca %"struct.langcc::rc_ptr.76", align 8
  %928 = alloca %"struct.langcc::rc_ptr.76", align 8
  %929 = alloca %"struct.langcc::rc_ptr.78", align 8
  %930 = alloca %"class.std::__cxx11::basic_string", align 8
  %931 = alloca %"class.std::allocator", align 1
  %932 = alloca %"class.std::__cxx11::basic_string", align 8
  %933 = alloca %"class.std::__cxx11::basic_string", align 8
  %934 = alloca %"class.std::allocator", align 1
  %935 = alloca %"struct.langcc::rc_ptr.12", align 8
  %936 = alloca %"struct.langcc::MapIterator.121", align 8
  %937 = alloca %"struct.langcc::MapIterator.121", align 8
  %938 = alloca %"struct.langcc::rc_ptr.125", align 8
  %939 = alloca %"struct.langcc::rc_ptr.76", align 8
  %940 = alloca %"struct.langcc::rc_ptr.12", align 8
  %941 = alloca %"struct.langcc::rc_ptr.12", align 8
  %942 = alloca %"struct.langcc::Option::_T.117", align 4
  %943 = alloca %"struct.langcc::rc_ptr.76", align 8
  %944 = alloca %"class.std::__cxx11::basic_string", align 8
  %945 = alloca %"class.std::allocator", align 1
  %946 = alloca %"struct.langcc::rc_ptr.76", align 8
  %947 = alloca %"struct.langcc::Option::_T.72", align 4
  %948 = alloca %"struct.langcc::rc_ptr.0", align 8
  %949 = alloca %"class.std::vector", align 8
  %950 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %951 = alloca %"class.std::allocator.73", align 1
  %952 = alloca %"struct.langcc::Option::_T.77", align 4
  %953 = alloca %"struct.langcc::rc_ptr.12", align 8
  %954 = alloca %"struct.langcc::MapIterator.121", align 8
  %955 = alloca %"struct.langcc::MapIterator.121", align 8
  %956 = alloca %"struct.langcc::rc_ptr.12", align 8
  %957 = alloca %"struct.langcc::rc_ptr.0", align 8
  %958 = alloca %"struct.langcc::rc_ptr.76", align 8
  %959 = alloca %"struct.langcc::Option::_T.72", align 4
  %960 = alloca %"struct.langcc::Option::_T.77", align 4
  %961 = alloca %"struct.langcc::rc_ptr.76", align 8
  %962 = alloca %"struct.langcc::rc_ptr.125", align 8
  %963 = alloca %"struct.langcc::rc_ptr.76", align 8
  %964 = alloca %"struct.langcc::rc_ptr.12", align 8
  %965 = alloca %"struct.langcc::rc_ptr.12", align 8
  %966 = alloca %"struct.langcc::Option::_T.117", align 4
  %967 = alloca %"struct.langcc::rc_ptr.76", align 8
  %968 = alloca %"struct.langcc::Option::_T.72", align 4
  %969 = alloca %"struct.langcc::rc_ptr.0", align 8
  %970 = alloca %"class.std::vector", align 8
  %971 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %972 = alloca %"class.std::allocator.73", align 1
  %973 = alloca %"struct.langcc::Option::_T.77", align 4
  %974 = alloca %"struct.langcc::rc_ptr.12", align 8
  %975 = alloca %"struct.langcc::MapIterator.121", align 8
  %976 = alloca %"struct.langcc::MapIterator.121", align 8
  %977 = alloca %"struct.langcc::rc_ptr.12", align 8
  %978 = alloca %"struct.langcc::rc_ptr.0", align 8
  %979 = alloca %"struct.langcc::rc_ptr.76", align 8
  %980 = alloca %"struct.langcc::Option::_T.72", align 4
  %981 = alloca %"struct.langcc::Option::_T.77", align 4
  %982 = alloca %"struct.langcc::rc_ptr.76", align 8
  %983 = alloca %"struct.langcc::rc_ptr.76", align 8
  %984 = alloca %"struct.langcc::rc_ptr.125", align 8
  %985 = alloca %"struct.langcc::rc_ptr.76", align 8
  %986 = alloca %"struct.langcc::rc_ptr.12", align 8
  %987 = alloca %"struct.langcc::rc_ptr.12", align 8
  %988 = alloca %"struct.langcc::Option::_T.117", align 4
  %989 = alloca %"struct.langcc::rc_ptr.76", align 8
  %990 = alloca %"struct.langcc::Option::_T.72", align 4
  %991 = alloca %"struct.langcc::rc_ptr.0", align 8
  %992 = alloca %"class.std::vector", align 8
  %993 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %994 = alloca %"class.std::allocator.73", align 1
  %995 = alloca %"struct.langcc::Option::_T.77", align 4
  %996 = alloca %"struct.langcc::rc_ptr.12", align 8
  %997 = alloca %"struct.langcc::rc_ptr.125", align 8
  %998 = alloca %"struct.langcc::rc_ptr.76", align 8
  %999 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1000 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1001 = alloca %"struct.langcc::Option::_T.117", align 4
  %1002 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1003 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1004 = alloca %"struct.langcc::Option::_T.72", align 4
  %1005 = alloca %"struct.langcc::Option::_T.77", align 4
  %1006 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1007 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1008 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1009 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1010 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1011 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1012 = alloca %"struct.langcc::Option::_T.117", align 4
  %1013 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1014 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1015 = alloca %"struct.langcc::Option::_T.72", align 4
  %1016 = alloca %"struct.langcc::Option::_T.77", align 4
  %1017 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1018 = alloca %"struct.langcc::rc_ptr.33", align 8
  %1019 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1020 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1021 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1022 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1023 = alloca %"struct.langcc::Option::_T.117", align 4
  %1024 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1025 = alloca %"struct.langcc::rc_ptr.78", align 8
  %1026 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1027 = alloca %"class.std::vector", align 8
  %1028 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1029 = alloca %"class.std::allocator", align 1
  %1030 = alloca %"class.std::allocator.73", align 1
  %1031 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1032 = alloca %"struct.langcc::Option::_T.72", align 4
  %1033 = alloca %"struct.langcc::Option::_T.77", align 4
  %1034 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1035 = alloca %"struct.langcc::rc_ptr.125", align 8
  %1036 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1037 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1038 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1039 = alloca %"struct.langcc::Option::_T.117", align 4
  %1040 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1041 = alloca %"struct.langcc::rc_ptr.78", align 8
  %1042 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1043 = alloca %"class.std::vector", align 8
  %1044 = alloca [1 x %"class.std::__cxx11::basic_string"], align 8
  %1045 = alloca %"class.std::allocator", align 1
  %1046 = alloca %"class.std::allocator.73", align 1
  %1047 = alloca %"struct.langcc::rc_ptr.76", align 8
  %1048 = alloca %"struct.langcc::Option::_T.72", align 4
  %1049 = alloca %"struct.langcc::Option::_T.77", align 4
  %1050 = alloca %"struct.langcc::rc_ptr.12", align 8
  %1051 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %1052 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %1053 = alloca %"struct.std::pair.139", align 8
  %1054 = alloca %"struct.std::pair.131", align 8
  %1055 = alloca %"struct.langcc::rc_ptr.33", align 8
  %1056 = alloca %"struct.langcc::rc_ptr.118", align 8
  %1057 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1058 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1059 = alloca %"struct.langcc::rc_ptr.33", align 8
  %1060 = alloca %"struct.langcc::rc_ptr.118", align 8
  %1061 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1062 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1063 = alloca %"struct.langcc::SetIterator", align 8
  %1064 = alloca %"struct.langcc::SetIterator", align 8
  %1065 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1066 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1067 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1068 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1069 = alloca %"struct.langcc::rc_ptr.0", align 8
  %1070 = alloca %"struct.std::pair.149", align 4
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %5) #11
  call void @_ZN6langcc18DataCompileContextC2Ev(ptr noundef nonnull align 8 dereferenceable(376) %5)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEJEEENS_6rc_ptrIT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %6)
          to label %1071 unwind label %1084

1071:                                             ; preds = %4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #11
  %1072 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1)
  invoke void @_ZN4lang4data4Node2_T9as_ModuleEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.126") align 8 %7, ptr noundef nonnull align 8 dereferenceable(136) %1072)
          to label %1073 unwind label %1086

1073:                                             ; preds = %1071
  %1074 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node6Module2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %1075 = getelementptr inbounds i8, ptr %1074, i64 136
  %1076 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node4Decl2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1075)
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node6Module2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #11
  %1077 = invoke noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node4Decl2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1076)
          to label %1078 unwind label %1088

1078:                                             ; preds = %1073
  %1079 = call noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node4Decl2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1076)
  %.not3557 = icmp eq ptr %1077, %1079
  br i1 %.not3557, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %1092, %1078
  %1080 = getelementptr inbounds i8, ptr %5, i64 32
  %1081 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #11
  %1082 = getelementptr inbounds i8, ptr %5, i64 16
  %1083 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %1102 unwind label %1122

1084:                                             ; preds = %4
  %1085 = landingpad { ptr, i32 }
          cleanup
  br label %6146

1086:                                             ; preds = %1071
  %1087 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #11
  br label %6145

1088:                                             ; preds = %1073
  %1089 = landingpad { ptr, i32 }
          cleanup
  br label %6145

.lr.ph:                                           ; preds = %1078, %1092
  %.013823558 = phi ptr [ %1093, %1092 ], [ %1077, %1078 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %.013823558)
          to label %1090 unwind label %1094

1090:                                             ; preds = %.lr.ph
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %1091 unwind label %1096

1091:                                             ; preds = %1090
  invoke void @_ZN6langcc22tabulate_data_decl_accENS_6rc_ptrIN4lang4data4Node2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr noundef nonnull %9, ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %1092 unwind label %1098

1092:                                             ; preds = %1091
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #11
  %1093 = getelementptr inbounds i8, ptr %.013823558, i64 16
  %.not = icmp eq ptr %1093, %1079
  br i1 %.not, label %._crit_edge, label %.lr.ph

1094:                                             ; preds = %.lr.ph
  %1095 = landingpad { ptr, i32 }
          cleanup
  br label %1101

1096:                                             ; preds = %1090
  %1097 = landingpad { ptr, i32 }
          cleanup
  br label %1100

1098:                                             ; preds = %1091
  %1099 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #11
  br label %1100

1100:                                             ; preds = %1098, %1096
  %.pn2611 = phi { ptr, i32 } [ %1099, %1098 ], [ %1097, %1096 ]
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #11
  br label %1101

1101:                                             ; preds = %1100, %1094
  %.pn2611.pn = phi { ptr, i32 } [ %.pn2611, %1100 ], [ %1095, %1094 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #11
  br label %6145

1102:                                             ; preds = %._crit_edge
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %13, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1103 unwind label %1124

1103:                                             ; preds = %1102
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA13_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %1083, ptr noundef nonnull %13, ptr noundef nonnull align 1 dereferenceable(13) @.str.105)
          to label %1104 unwind label %1126

1104:                                             ; preds = %1103
  %1105 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %11, ptr noundef nonnull align 8 dereferenceable(136) %1105)
          to label %1106 unwind label %1128

1106:                                             ; preds = %1104
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %11)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1081, ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %1107 unwind label %1130

1107:                                             ; preds = %1106
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %13) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  %1108 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #11
  %1109 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %1110 unwind label %1136

1110:                                             ; preds = %1107
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %19, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %1111 unwind label %1138

1111:                                             ; preds = %1110
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA27_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %1109, ptr noundef nonnull %19, ptr noundef nonnull align 1 dereferenceable(27) @.str.106)
          to label %1112 unwind label %1140

1112:                                             ; preds = %1111
  %1113 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %17, ptr noundef nonnull align 8 dereferenceable(136) %1113)
          to label %1114 unwind label %1142

1114:                                             ; preds = %1112
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %17)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1108, ptr noundef nonnull align 8 dereferenceable(16) %16)
          to label %1115 unwind label %1144

1115:                                             ; preds = %1114
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %19) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #11
  %1116 = getelementptr inbounds i8, ptr %5, i64 360
  %1117 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1116)
  %1118 = call noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1117)
  %1119 = call noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1117)
  %.not14723559 = icmp eq ptr %1118, %1119
  br i1 %.not14723559, label %._crit_edge3563, label %.lr.ph3562

._crit_edge3563:                                  ; preds = %1160, %1115
  %1120 = call noundef zeroext i1 @_ZNK6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7is_someEv(ptr noundef nonnull align 4 dereferenceable(36) %2)
  %1121 = icmp eq i32 %3, 0
  %or.cond = and i1 %1121, %1120
  br i1 %or.cond, label %1185, label %1219

1122:                                             ; preds = %._crit_edge
  %1123 = landingpad { ptr, i32 }
          cleanup
  br label %1135

1124:                                             ; preds = %1102
  %1125 = landingpad { ptr, i32 }
          cleanup
  br label %1134

1126:                                             ; preds = %1103
  %1127 = landingpad { ptr, i32 }
          cleanup
  br label %1133

1128:                                             ; preds = %1104
  %1129 = landingpad { ptr, i32 }
          cleanup
  br label %1132

1130:                                             ; preds = %1106
  %1131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #11
  br label %1132

1132:                                             ; preds = %1130, %1128
  %.pn = phi { ptr, i32 } [ %1131, %1130 ], [ %1129, %1128 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #11
  br label %1133

1133:                                             ; preds = %1132, %1126
  %.pn.pn = phi { ptr, i32 } [ %.pn, %1132 ], [ %1127, %1126 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %13) #11
  br label %1134

1134:                                             ; preds = %1133, %1124
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %1133 ], [ %1125, %1124 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %1135

1135:                                             ; preds = %1134, %1122
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %1134 ], [ %1123, %1122 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  br label %6145

1136:                                             ; preds = %1107
  %1137 = landingpad { ptr, i32 }
          cleanup
  br label %1149

1138:                                             ; preds = %1110
  %1139 = landingpad { ptr, i32 }
          cleanup
  br label %1148

1140:                                             ; preds = %1111
  %1141 = landingpad { ptr, i32 }
          cleanup
  br label %1147

1142:                                             ; preds = %1112
  %1143 = landingpad { ptr, i32 }
          cleanup
  br label %1146

1144:                                             ; preds = %1114
  %1145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  br label %1146

1146:                                             ; preds = %1144, %1142
  %.pn1467 = phi { ptr, i32 } [ %1145, %1144 ], [ %1143, %1142 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #11
  br label %1147

1147:                                             ; preds = %1146, %1140
  %.pn1467.pn = phi { ptr, i32 } [ %.pn1467, %1146 ], [ %1141, %1140 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %19) #11
  br label %1148

1148:                                             ; preds = %1147, %1138
  %.pn1467.pn.pn = phi { ptr, i32 } [ %.pn1467.pn, %1147 ], [ %1139, %1138 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  br label %1149

1149:                                             ; preds = %1148, %1136
  %.pn1467.pn.pn.pn = phi { ptr, i32 } [ %.pn1467.pn.pn, %1148 ], [ %1137, %1136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #11
  br label %6145

.lr.ph3562:                                       ; preds = %1115, %1160
  %.013833560 = phi ptr [ %1161, %1160 ], [ %1118, %1115 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %.013833560)
          to label %1150 unwind label %1162

1150:                                             ; preds = %.lr.ph3562
  %1151 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #11
  %1152 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %1153 unwind label %1164

1153:                                             ; preds = %1150
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %26, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %1154 unwind label %1166

1154:                                             ; preds = %1153
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #11
  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.107, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %1155 unwind label %1168

1155:                                             ; preds = %1154
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull 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) %22)
          to label %1156 unwind label %1170

1156:                                             ; preds = %1155
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIS4_EENS_6Option2_TISF_EEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %1152, ptr noundef nonnull %26, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %1157 unwind label %1172

1157:                                             ; preds = %1156
  %1158 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %25)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %24, ptr noundef nonnull align 8 dereferenceable(136) %1158)
          to label %1159 unwind label %1174

1159:                                             ; preds = %1157
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %24)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1151, ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %1160 unwind label %1176

1160:                                             ; preds = %1159
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %26) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  %1161 = getelementptr inbounds i8, ptr %.013833560, i64 32
  %.not1472 = icmp eq ptr %1161, %1119
  br i1 %.not1472, label %._crit_edge3563, label %.lr.ph3562

1162:                                             ; preds = %.lr.ph3562
  %1163 = landingpad { ptr, i32 }
          cleanup
  br label %1184

1164:                                             ; preds = %1150
  %1165 = landingpad { ptr, i32 }
          cleanup
  br label %1183

1166:                                             ; preds = %1153
  %1167 = landingpad { ptr, i32 }
          cleanup
  br label %1182

1168:                                             ; preds = %1154
  %1169 = landingpad { ptr, i32 }
          cleanup
  br label %1181

1170:                                             ; preds = %1155
  %1171 = landingpad { ptr, i32 }
          cleanup
  br label %1180

1172:                                             ; preds = %1156
  %1173 = landingpad { ptr, i32 }
          cleanup
  br label %1179

1174:                                             ; preds = %1157
  %1175 = landingpad { ptr, i32 }
          cleanup
  br label %1178

1176:                                             ; preds = %1159
  %1177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #11
  br label %1178

1178:                                             ; preds = %1176, %1174
  %.pn2603 = phi { ptr, i32 } [ %1177, %1176 ], [ %1175, %1174 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #11
  br label %1179

1179:                                             ; preds = %1178, %1172
  %.pn2603.pn = phi { ptr, i32 } [ %.pn2603, %1178 ], [ %1173, %1172 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %1180

1180:                                             ; preds = %1179, %1170
  %.pn2603.pn.pn = phi { ptr, i32 } [ %.pn2603.pn, %1179 ], [ %1171, %1170 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  br label %1181

1181:                                             ; preds = %1180, %1168
  %.pn2603.pn.pn.pn = phi { ptr, i32 } [ %.pn2603.pn.pn, %1180 ], [ %1169, %1168 ]
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %26) #11
  br label %1182

1182:                                             ; preds = %1181, %1166
  %.pn2603.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2603.pn.pn.pn, %1181 ], [ %1167, %1166 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  br label %1183

1183:                                             ; preds = %1182, %1164
  %.pn2603.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2603.pn.pn.pn.pn, %1182 ], [ %1165, %1164 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %1184

1184:                                             ; preds = %1183, %1162
  %.pn2603.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2603.pn.pn.pn.pn.pn, %1183 ], [ %1163, %1162 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  br label %6145

1185:                                             ; preds = %._crit_edge3563
  %1186 = getelementptr inbounds i8, ptr %5, i64 48
  %1187 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1186)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #11
  %1188 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %1189 unwind label %1199

1189:                                             ; preds = %1185
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %35, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %1190 unwind label %1201

1190:                                             ; preds = %1189
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.108, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %1191 unwind label %1203

1191:                                             ; preds = %1190
  %1192 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7as_someEv(ptr noundef nonnull align 4 dereferenceable(36) %2)
          to label %1193 unwind label %1205

1193:                                             ; preds = %1191
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %1192)
          to label %1194 unwind label %1205

1194:                                             ; preds = %1193
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIS4_EENS_6Option2_TISF_EEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %1188, ptr noundef nonnull %35, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %1195 unwind label %1207

1195:                                             ; preds = %1194
  %1196 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %33, ptr noundef nonnull align 8 dereferenceable(136) %1196)
          to label %1197 unwind label %1209

1197:                                             ; preds = %1195
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %33)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1187, ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %1198 unwind label %1211

1198:                                             ; preds = %1197
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %35) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #11
  br label %1219

1199:                                             ; preds = %1185
  %1200 = landingpad { ptr, i32 }
          cleanup
  br label %1218

1201:                                             ; preds = %1189
  %1202 = landingpad { ptr, i32 }
          cleanup
  br label %1217

1203:                                             ; preds = %1190
  %1204 = landingpad { ptr, i32 }
          cleanup
  br label %1216

1205:                                             ; preds = %1193, %1191
  %1206 = landingpad { ptr, i32 }
          cleanup
  br label %1215

1207:                                             ; preds = %1194
  %1208 = landingpad { ptr, i32 }
          cleanup
  br label %1214

1209:                                             ; preds = %1195
  %1210 = landingpad { ptr, i32 }
          cleanup
  br label %1213

1211:                                             ; preds = %1197
  %1212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #11
  br label %1213

1213:                                             ; preds = %1211, %1209
  %.pn1473 = phi { ptr, i32 } [ %1212, %1211 ], [ %1210, %1209 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #11
  br label %1214

1214:                                             ; preds = %1213, %1207
  %.pn1473.pn = phi { ptr, i32 } [ %.pn1473, %1213 ], [ %1208, %1207 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  br label %1215

1215:                                             ; preds = %1214, %1205
  %.pn1473.pn.pn = phi { ptr, i32 } [ %.pn1473.pn, %1214 ], [ %1206, %1205 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  br label %1216

1216:                                             ; preds = %1215, %1203
  %.pn1473.pn.pn.pn = phi { ptr, i32 } [ %.pn1473.pn.pn, %1215 ], [ %1204, %1203 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %35) #11
  br label %1217

1217:                                             ; preds = %1216, %1201
  %.pn1473.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1473.pn.pn.pn, %1216 ], [ %1202, %1201 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  br label %1218

1218:                                             ; preds = %1217, %1199
  %.pn1473.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1473.pn.pn.pn.pn, %1217 ], [ %1200, %1199 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #11
  br label %6145

1219:                                             ; preds = %1198, %._crit_edge3563
  %1220 = getelementptr inbounds i8, ptr %5, i64 312
  %1221 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Enum2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1220)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #11
  %1222 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %1221)
          to label %1223 unwind label %1243

1223:                                             ; preds = %1219
  %1224 = extractvalue { ptr, i64 } %1222, 0
  store ptr %1224, ptr %41, align 8
  %1225 = getelementptr inbounds i8, ptr %41, i64 8
  %1226 = extractvalue { ptr, i64 } %1222, 1
  store i64 %1226, ptr %1225, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #11
  %1227 = call { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %1221)
  %1228 = extractvalue { ptr, i64 } %1227, 0
  store ptr %1228, ptr %42, align 8
  %1229 = getelementptr inbounds i8, ptr %42, i64 8
  %1230 = extractvalue { ptr, i64 } %1227, 1
  store i64 %1230, ptr %1229, align 8
  %1231 = getelementptr inbounds i8, ptr %61, i64 32
  %1232 = getelementptr inbounds i8, ptr %5, i64 48
  %1233 = getelementptr inbounds i8, ptr %122, i64 32
  %1234 = getelementptr inbounds i8, ptr %61, i64 32
  %1235 = getelementptr inbounds i8, ptr %122, i64 32
  br label %1236

1236:                                             ; preds = %1634, %1223
  %1237 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEneERKSI_(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %1238 unwind label %1245

1238:                                             ; preds = %1236
  br i1 %1237, label %1247, label %1239

1239:                                             ; preds = %1238
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #11
  %1240 = getelementptr inbounds i8, ptr %5, i64 296
  %1241 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1240)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %175) #11
  %1242 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %1241)
          to label %1726 unwind label %1739

1243:                                             ; preds = %1219
  %1244 = landingpad { ptr, i32 }
          cleanup
  br label %1725

1245:                                             ; preds = %1634, %1236
  %1246 = landingpad { ptr, i32 }
          cleanup
  br label %1724

1247:                                             ; preds = %1238
  %1248 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %1249 unwind label %1260

1249:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(16) %1248)
          to label %1250 unwind label %1262

1250:                                             ; preds = %1249
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %44)
          to label %1251 unwind label %1264

1251:                                             ; preds = %1250
  %1252 = getelementptr inbounds i8, ptr %1248, i64 16
  %1253 = call noundef ptr @_ZNK6langcc6rc_ptrIN4lang4data4Node4Decl4Enum2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1252)
  %1254 = getelementptr inbounds i8, ptr %1253, i64 160
  %1255 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK6langcc6rc_ptrINS_3VecINS_8StrSliceEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1254)
  %1256 = invoke noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1255)
          to label %1257 unwind label %1266

1257:                                             ; preds = %1251
  %1258 = call noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1255)
  %.not24733564 = icmp eq ptr %1256, %1258
  br i1 %.not24733564, label %._crit_edge3568, label %.lr.ph3567

._crit_edge3568:                                  ; preds = %1271, %1257
  %1259 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %1281 unwind label %1376

1260:                                             ; preds = %1247
  %1261 = landingpad { ptr, i32 }
          cleanup
  br label %1724

1262:                                             ; preds = %1249
  %1263 = landingpad { ptr, i32 }
          cleanup
  br label %1723

1264:                                             ; preds = %1250
  %1265 = landingpad { ptr, i32 }
          cleanup
  br label %1722

1266:                                             ; preds = %1251
  %1267 = landingpad { ptr, i32 }
          cleanup
  br label %1721

.lr.ph3567:                                       ; preds = %1257, %1271
  %.013843565 = phi ptr [ %1272, %1271 ], [ %1256, %1257 ]
  %1268 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %44)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #11
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %.013843565)
          to label %1269 unwind label %1273

1269:                                             ; preds = %.lr.ph3567
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %45, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %1270 unwind label %1275

1270:                                             ; preds = %1269
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1268, ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %1271 unwind label %1277

1271:                                             ; preds = %1270
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #11
  %1272 = getelementptr inbounds i8, ptr %.013843565, i64 32
  %.not2473 = icmp eq ptr %1272, %1258
  br i1 %.not2473, label %._crit_edge3568, label %.lr.ph3567

1273:                                             ; preds = %.lr.ph3567
  %1274 = landingpad { ptr, i32 }
          cleanup
  br label %1280

1275:                                             ; preds = %1269
  %1276 = landingpad { ptr, i32 }
          cleanup
  br label %1279

1277:                                             ; preds = %1270
  %1278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #11
  br label %1279

1279:                                             ; preds = %1277, %1275
  %.pn2593 = phi { ptr, i32 } [ %1278, %1277 ], [ %1276, %1275 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #11
  br label %1280

1280:                                             ; preds = %1279, %1273
  %.pn2593.pn = phi { ptr, i32 } [ %.pn2593, %1279 ], [ %1274, %1273 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #11
  br label %1721

1281:                                             ; preds = %._crit_edge3568
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_decl_enumENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %49, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %50, ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %1282 unwind label %1378

1282:                                             ; preds = %1281
  %1283 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %49)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %48, ptr noundef nonnull align 8 dereferenceable(136) %1283)
          to label %1284 unwind label %1380

1284:                                             ; preds = %1282
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 8 dereferenceable(16) %48)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1259, ptr noundef nonnull align 8 dereferenceable(16) %47)
          to label %1285 unwind label %1382

1285:                                             ; preds = %1284
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %52) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %54, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %1286 unwind label %1387

1286:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %1287 unwind label %1389

1287:                                             ; preds = %1286
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %54, ptr noundef nonnull %56)
          to label %1288 unwind label %1391

1288:                                             ; preds = %1287
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr nonnull %53, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %1289 unwind label %1393

1289:                                             ; preds = %1288
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %51, ptr noundef nonnull align 8 dereferenceable(24) %52)
          to label %1290 unwind label %1395

1290:                                             ; preds = %1289
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %59) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %60) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %61) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %62) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %1291 unwind label %.thread

1291:                                             ; preds = %1290
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1231, ptr noundef nonnull @.str.109, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %1292 unwind label %1400

1292:                                             ; preds = %1291
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr nonnull %61, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %1293 unwind label %1402

1293:                                             ; preds = %1292
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %59, ptr noundef nonnull align 8 dereferenceable(24) %60)
          to label %1294 unwind label %1404

1294:                                             ; preds = %1293
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1234) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %61) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %60) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %65, ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %1295 unwind label %1408

1295:                                             ; preds = %1294
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %66) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %66)
          to label %1296 unwind label %1410

1296:                                             ; preds = %1295
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %67) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %67)
          to label %1297 unwind label %1412

1297:                                             ; preds = %1296
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %1298 unwind label %1414

1298:                                             ; preds = %1297
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %1299 unwind label %1416

1299:                                             ; preds = %1298
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %69, ptr noundef nonnull %70)
          to label %1300 unwind label %1418

1300:                                             ; preds = %1299
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #11
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %72, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %1301 unwind label %1421

1301:                                             ; preds = %1300
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %73) #11
  %1302 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %1303 unwind label %1423

1303:                                             ; preds = %1301
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %74, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %1304 unwind label %1425

1304:                                             ; preds = %1303
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA16_cNS_6rc_ptrIS4_EEEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %1302, ptr noundef nonnull %74, ptr noundef nonnull align 1 dereferenceable(16) @.str.112, ptr noundef nonnull align 8 dereferenceable(16) %72)
          to label %1305 unwind label %1427

1305:                                             ; preds = %1304
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %74) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #11
  %1306 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %66)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1306, ptr noundef nonnull align 8 dereferenceable(16) %73)
          to label %1307 unwind label %1431

1307:                                             ; preds = %1305
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %1308 unwind label %1433

1308:                                             ; preds = %1307
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %1309 unwind label %1435

1309:                                             ; preds = %1308
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %78, ptr noundef nonnull %79)
          to label %1310 unwind label %1437

1310:                                             ; preds = %1309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %78) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %81) #11
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %81, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %1311 unwind label %1440

1311:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %82) #11
  %1312 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %85) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1313 unwind label %1442

1313:                                             ; preds = %1311
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %83, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %1314 unwind label %1444

1314:                                             ; preds = %1313
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %86) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %86, ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %1315 unwind label %1446

1315:                                             ; preds = %1314
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrINS3_4Expr2_TEEENSA_IS4_EEEEESE_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %1312, ptr noundef nonnull %83, ptr noundef nonnull align 8 dereferenceable(16) %86, ptr noundef nonnull align 8 dereferenceable(16) %81)
          to label %1316 unwind label %1448

1316:                                             ; preds = %1315
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %83) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #11
  %1317 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %66)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1317, ptr noundef nonnull align 8 dereferenceable(16) %82)
          to label %1318 unwind label %1453

1318:                                             ; preds = %1316
  %1319 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %67)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %87) #11
  %1320 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %90) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %1321 unwind label %1455

1321:                                             ; preds = %1318
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %88, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %1322 unwind label %1457

1322:                                             ; preds = %1321
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA2_cA26_cSC_A4_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %1320, ptr noundef nonnull %88, ptr noundef nonnull align 1 dereferenceable(18) @.str.113, ptr noundef nonnull align 8 dereferenceable(16) %72, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 1 dereferenceable(26) @.str.114, ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 1 dereferenceable(4) @.str.115)
          to label %1323 unwind label %1459

1323:                                             ; preds = %1322
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1319, ptr noundef nonnull align 8 dereferenceable(16) %87)
          to label %1324 unwind label %1461

1324:                                             ; preds = %1323
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %88) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %87) #11
  %1325 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %91) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %92) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %93) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %94) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %94)
          to label %1326 unwind label %1466

1326:                                             ; preds = %1324
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %95) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %95)
          to label %1327 unwind label %1468

1327:                                             ; preds = %1326
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %96) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %97) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %99) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %1328 unwind label %1470

1328:                                             ; preds = %1327
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %97, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %1329 unwind label %1472

1329:                                             ; preds = %1328
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %96, ptr noundef nonnull align 8 dereferenceable(16) %97)
          to label %1330 unwind label %1474

1330:                                             ; preds = %1329
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %93, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %94, ptr noundef nonnull align 8 dereferenceable(16) %95, ptr noundef nonnull align 4 dereferenceable(20) %96, ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 8 dereferenceable(16) %66)
          to label %1331 unwind label %1476

1331:                                             ; preds = %1330
  %1332 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %92, ptr noundef nonnull align 8 dereferenceable(136) %1332)
          to label %1333 unwind label %1478

1333:                                             ; preds = %1331
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %91, ptr noundef nonnull align 8 dereferenceable(16) %92)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1325, ptr noundef nonnull align 8 dereferenceable(16) %91)
          to label %1334 unwind label %1480

1334:                                             ; preds = %1333
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %96) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %97) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %96) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %95) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %92) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #11
  %1335 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1232)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %100) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %101) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %102) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %103) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %103)
          to label %1336 unwind label %1489

1336:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %104) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %104)
          to label %1337 unwind label %1491

1337:                                             ; preds = %1336
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %105) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %105, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %1338 unwind label %1493

1338:                                             ; preds = %1337
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %106) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %107) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %109) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %1339 unwind label %1495

1339:                                             ; preds = %1338
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %107, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %108)
          to label %1340 unwind label %1497

1340:                                             ; preds = %1339
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %106, ptr noundef nonnull align 8 dereferenceable(16) %107)
          to label %1341 unwind label %1499

1341:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %110) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef nonnull align 8 dereferenceable(16) %65)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %111) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %111)
          to label %1342 unwind label %1501

1342:                                             ; preds = %1341
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %102, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 8 dereferenceable(16) %104, ptr noundef nonnull align 8 dereferenceable(16) %105, ptr noundef nonnull align 4 dereferenceable(20) %106, ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull align 8 dereferenceable(16) %67, i1 noundef zeroext false)
          to label %1343 unwind label %1503

1343:                                             ; preds = %1342
  %1344 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %102)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %101, ptr noundef nonnull align 8 dereferenceable(136) %1344)
          to label %1345 unwind label %1505

1345:                                             ; preds = %1343
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 8 dereferenceable(16) %101)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1335, ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %1346 unwind label %1507

1346:                                             ; preds = %1345
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %110) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %106) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %109) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %106) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %102) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %112) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %113) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %116) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %116, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %115, ptr noundef nonnull align 8 dereferenceable(24) %116)
          to label %1347 unwind label %1518

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

1348:                                             ; preds = %1347
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %115, ptr noundef nonnull %117)
          to label %1349 unwind label %1522

1349:                                             ; preds = %1348
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %113, ptr nonnull %114, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %1350 unwind label %1524

1350:                                             ; preds = %1349
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %112, ptr noundef nonnull align 8 dereferenceable(24) %113)
          to label %1351 unwind label %1526

1351:                                             ; preds = %1350
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %113) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %115) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %116) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %113) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %120) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %121) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %122) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %123) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %1352 unwind label %.thread2631

1352:                                             ; preds = %1351
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %124) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1233, ptr noundef nonnull @.str.116, ptr noundef nonnull align 1 dereferenceable(1) %124)
          to label %1353 unwind label %1531

1353:                                             ; preds = %1352
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %125) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %121, ptr nonnull %122, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %1354 unwind label %1533

1354:                                             ; preds = %1353
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %120, ptr noundef nonnull align 8 dereferenceable(24) %121)
          to label %1355 unwind label %1535

1355:                                             ; preds = %1354
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1235) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %122) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %121) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %126) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %126, ptr noundef nonnull align 8 dereferenceable(16) %120, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %1356 unwind label %1539

1356:                                             ; preds = %1355
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %127) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %127)
          to label %1357 unwind label %1541

1357:                                             ; preds = %1356
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %128) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %128)
          to label %1358 unwind label %1543

1358:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %129) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %130) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA14_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %130, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(14) @.str.117)
          to label %1359 unwind label %1545

1359:                                             ; preds = %1358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %131) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %132) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %132)
          to label %1360 unwind label %1547

1360:                                             ; preds = %1359
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %129, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 8 dereferenceable(16) %130, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %1361 unwind label %1549

1361:                                             ; preds = %1360
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %132) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %130) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %133) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %134) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %134, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(17) @.str.119)
          to label %1362 unwind label %1553

1362:                                             ; preds = %1361
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %135) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %136) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %1363 unwind label %1555

1363:                                             ; preds = %1362
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %133, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 8 dereferenceable(16) %134, ptr noundef nonnull align 8 dereferenceable(32) %135)
          to label %1364 unwind label %1557

1364:                                             ; preds = %1363
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %134) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %137) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %138) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %139) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %139, ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %1365 unwind label %1561

1365:                                             ; preds = %1364
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 8 dereferenceable(16) %139)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %140) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %141) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %1366 unwind label %1563

1366:                                             ; preds = %1365
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %137, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef nonnull align 8 dereferenceable(32) %140)
          to label %1367 unwind label %1565

1367:                                             ; preds = %1366
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %138) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %139) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %139) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %138) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %142) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %142)
          to label %1368 unwind label %1569

1368:                                             ; preds = %1367
  %1369 = call noundef ptr @_ZNK6langcc6rc_ptrIN4lang4data4Node4Decl4Enum2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1252)
  %1370 = getelementptr inbounds i8, ptr %1369, i64 160
  %1371 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK6langcc6rc_ptrINS_3VecINS_8StrSliceEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1370)
  %1372 = invoke noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %1371)
          to label %1373 unwind label %1571

1373:                                             ; preds = %1368
  %1374 = call noundef ptr @_ZNK6langcc3VecINS_8StrSliceEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %1371)
  %.not25383569 = icmp eq ptr %1372, %1374
  br i1 %.not25383569, label %._crit_edge3573, label %.lr.ph3572

._crit_edge3573:                                  ; preds = %1582, %1373
  %1375 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %142)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %152) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %152, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %1607 unwind label %1636

1376:                                             ; preds = %._crit_edge3568
  %1377 = landingpad { ptr, i32 }
          cleanup
  br label %1386

1378:                                             ; preds = %1281
  %1379 = landingpad { ptr, i32 }
          cleanup
  br label %1385

1380:                                             ; preds = %1282
  %1381 = landingpad { ptr, i32 }
          cleanup
  br label %1384

1382:                                             ; preds = %1284
  %1383 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #11
  br label %1384

1384:                                             ; preds = %1382, %1380
  %.pn2474 = phi { ptr, i32 } [ %1383, %1382 ], [ %1381, %1380 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #11
  br label %1385

1385:                                             ; preds = %1384, %1378
  %.pn2474.pn = phi { ptr, i32 } [ %.pn2474, %1384 ], [ %1379, %1378 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #11
  br label %1386

1386:                                             ; preds = %1385, %1376
  %.pn2474.pn.pn = phi { ptr, i32 } [ %.pn2474.pn, %1385 ], [ %1377, %1376 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #11
  br label %1721

1387:                                             ; preds = %1285
  %1388 = landingpad { ptr, i32 }
          cleanup
  br label %1398

1389:                                             ; preds = %1286
  %1390 = landingpad { ptr, i32 }
          cleanup
  br label %1397

1391:                                             ; preds = %1287
  %1392 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2648

1393:                                             ; preds = %1288
  %1394 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2648.loopexit

1395:                                             ; preds = %1289
  %1396 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #11
  br label %.loopexit2648.loopexit

.loopexit2648.loopexit:                           ; preds = %1395, %1393
  %.pn2478 = phi { ptr, i32 } [ %1396, %1395 ], [ %1394, %1393 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  br label %.loopexit2648

.loopexit2648:                                    ; preds = %.loopexit2648.loopexit, %1391
  %.pn2478.pn = phi { ptr, i32 } [ %1392, %1391 ], [ %.pn2478, %.loopexit2648.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  br label %1397

1397:                                             ; preds = %.loopexit2648, %1389
  %.pn2478.pn.pn = phi { ptr, i32 } [ %.pn2478.pn, %.loopexit2648 ], [ %1390, %1389 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #11
  br label %1398

1398:                                             ; preds = %1397, %1387
  %.pn2478.pn.pn.pn = phi { ptr, i32 } [ %.pn2478.pn.pn, %1397 ], [ %1388, %1387 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) #11
  br label %1720

.thread:                                          ; preds = %1290
  %1399 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #11
  br label %.loopexit2646

1400:                                             ; preds = %1291
  %1401 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2647

1402:                                             ; preds = %1292
  %1403 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2647.loopexit

1404:                                             ; preds = %1293
  %1405 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #11
  br label %.loopexit2647.loopexit

.loopexit2647.loopexit:                           ; preds = %1404, %1402
  %.pn2483 = phi { ptr, i32 } [ %1405, %1404 ], [ %1403, %1402 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #11
  %1406 = getelementptr inbounds i8, ptr %61, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1406) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  br label %.loopexit2647

.loopexit2647:                                    ; preds = %.loopexit2647.loopexit, %1400
  %1407 = phi i1 [ false, %1400 ], [ true, %.loopexit2647.loopexit ]
  %.pn2483.pn = phi { ptr, i32 } [ %1401, %1400 ], [ %.pn2483, %.loopexit2647.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %62) #11
  br i1 %1407, label %.loopexit2646, label %.preheader2645.preheader

.preheader2645.preheader:                         ; preds = %.loopexit2647
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  br label %.loopexit2646

.loopexit2646:                                    ; preds = %.preheader2645.preheader, %.thread, %.loopexit2647
  %.pn2483.pn.pn2630 = phi { ptr, i32 } [ %1399, %.thread ], [ %.pn2483.pn, %.loopexit2647 ], [ %.pn2483.pn, %.preheader2645.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %61) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %60) #11
  br label %1719

1408:                                             ; preds = %1294
  %1409 = landingpad { ptr, i32 }
          cleanup
  br label %1718

1410:                                             ; preds = %1295
  %1411 = landingpad { ptr, i32 }
          cleanup
  br label %1717

1412:                                             ; preds = %1296
  %1413 = landingpad { ptr, i32 }
          cleanup
  br label %1716

1414:                                             ; preds = %1297
  %1415 = landingpad { ptr, i32 }
          cleanup
  br label %1715

1416:                                             ; preds = %1298
  %1417 = landingpad { ptr, i32 }
          cleanup
  br label %1420

1418:                                             ; preds = %1299
  %1419 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  br label %1420

1420:                                             ; preds = %1418, %1416
  %.pn2487 = phi { ptr, i32 } [ %1419, %1418 ], [ %1417, %1416 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #11
  br label %1715

1421:                                             ; preds = %1300
  %1422 = landingpad { ptr, i32 }
          cleanup
  br label %1714

1423:                                             ; preds = %1301
  %1424 = landingpad { ptr, i32 }
          cleanup
  br label %1430

1425:                                             ; preds = %1303
  %1426 = landingpad { ptr, i32 }
          cleanup
  br label %1429

1427:                                             ; preds = %1304
  %1428 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %74) #11
  br label %1429

1429:                                             ; preds = %1427, %1425
  %.pn2489 = phi { ptr, i32 } [ %1428, %1427 ], [ %1426, %1425 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  br label %1430

1430:                                             ; preds = %1429, %1423
  %.pn2489.pn = phi { ptr, i32 } [ %.pn2489, %1429 ], [ %1424, %1423 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #11
  br label %1713

1431:                                             ; preds = %1305
  %1432 = landingpad { ptr, i32 }
          cleanup
  br label %1712

1433:                                             ; preds = %1307
  %1434 = landingpad { ptr, i32 }
          cleanup
  br label %1711

1435:                                             ; preds = %1308
  %1436 = landingpad { ptr, i32 }
          cleanup
  br label %1439

1437:                                             ; preds = %1309
  %1438 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #11
  br label %1439

1439:                                             ; preds = %1437, %1435
  %.pn2492 = phi { ptr, i32 } [ %1438, %1437 ], [ %1436, %1435 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %78) #11
  br label %1711

1440:                                             ; preds = %1310
  %1441 = landingpad { ptr, i32 }
          cleanup
  br label %1710

1442:                                             ; preds = %1311
  %1443 = landingpad { ptr, i32 }
          cleanup
  br label %1452

1444:                                             ; preds = %1313
  %1445 = landingpad { ptr, i32 }
          cleanup
  br label %1451

1446:                                             ; preds = %1314
  %1447 = landingpad { ptr, i32 }
          cleanup
  br label %1450

1448:                                             ; preds = %1315
  %1449 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %86) #11
  br label %1450

1450:                                             ; preds = %1448, %1446
  %.pn2494 = phi { ptr, i32 } [ %1449, %1448 ], [ %1447, %1446 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %83) #11
  br label %1451

1451:                                             ; preds = %1450, %1444
  %.pn2494.pn = phi { ptr, i32 } [ %.pn2494, %1450 ], [ %1445, %1444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  br label %1452

1452:                                             ; preds = %1451, %1442
  %.pn2494.pn.pn = phi { ptr, i32 } [ %.pn2494.pn, %1451 ], [ %1443, %1442 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #11
  br label %1709

1453:                                             ; preds = %1316
  %1454 = landingpad { ptr, i32 }
          cleanup
  br label %1708

1455:                                             ; preds = %1318
  %1456 = landingpad { ptr, i32 }
          cleanup
  br label %1465

1457:                                             ; preds = %1321
  %1458 = landingpad { ptr, i32 }
          cleanup
  br label %1464

1459:                                             ; preds = %1322
  %1460 = landingpad { ptr, i32 }
          cleanup
  br label %1463

1461:                                             ; preds = %1323
  %1462 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #11
  br label %1463

1463:                                             ; preds = %1461, %1459
  %.pn2498 = phi { ptr, i32 } [ %1462, %1461 ], [ %1460, %1459 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %88) #11
  br label %1464

1464:                                             ; preds = %1463, %1457
  %.pn2498.pn = phi { ptr, i32 } [ %.pn2498, %1463 ], [ %1458, %1457 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  br label %1465

1465:                                             ; preds = %1464, %1455
  %.pn2498.pn.pn = phi { ptr, i32 } [ %.pn2498.pn, %1464 ], [ %1456, %1455 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %87) #11
  br label %1708

1466:                                             ; preds = %1324
  %1467 = landingpad { ptr, i32 }
          cleanup
  br label %1488

1468:                                             ; preds = %1326
  %1469 = landingpad { ptr, i32 }
          cleanup
  br label %1487

1470:                                             ; preds = %1327
  %1471 = landingpad { ptr, i32 }
          cleanup
  br label %1486

1472:                                             ; preds = %1328
  %1473 = landingpad { ptr, i32 }
          cleanup
  br label %1485

1474:                                             ; preds = %1329
  %1475 = landingpad { ptr, i32 }
          cleanup
  br label %1484

1476:                                             ; preds = %1330
  %1477 = landingpad { ptr, i32 }
          cleanup
  br label %1483

1478:                                             ; preds = %1331
  %1479 = landingpad { ptr, i32 }
          cleanup
  br label %1482

1480:                                             ; preds = %1333
  %1481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #11
  br label %1482

1482:                                             ; preds = %1480, %1478
  %.pn2502 = phi { ptr, i32 } [ %1481, %1480 ], [ %1479, %1478 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #11
  br label %1483

1483:                                             ; preds = %1482, %1476
  %.pn2502.pn = phi { ptr, i32 } [ %.pn2502, %1482 ], [ %1477, %1476 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %96) #11
  br label %1484

1484:                                             ; preds = %1483, %1474
  %.pn2502.pn.pn = phi { ptr, i32 } [ %.pn2502.pn, %1483 ], [ %1475, %1474 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #11
  br label %1485

1485:                                             ; preds = %1484, %1472
  %.pn2502.pn.pn.pn = phi { ptr, i32 } [ %.pn2502.pn.pn, %1484 ], [ %1473, %1472 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #11
  br label %1486

1486:                                             ; preds = %1485, %1470
  %.pn2502.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2502.pn.pn.pn, %1485 ], [ %1471, %1470 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %97) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %96) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #11
  br label %1487

1487:                                             ; preds = %1486, %1468
  %.pn2502.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2502.pn.pn.pn.pn, %1486 ], [ %1469, %1468 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %95) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %94) #11
  br label %1488

1488:                                             ; preds = %1487, %1466
  %.pn2502.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2502.pn.pn.pn.pn.pn, %1487 ], [ %1467, %1466 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %92) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #11
  br label %1708

1489:                                             ; preds = %1334
  %1490 = landingpad { ptr, i32 }
          cleanup
  br label %1517

1491:                                             ; preds = %1336
  %1492 = landingpad { ptr, i32 }
          cleanup
  br label %1516

1493:                                             ; preds = %1337
  %1494 = landingpad { ptr, i32 }
          cleanup
  br label %1515

1495:                                             ; preds = %1338
  %1496 = landingpad { ptr, i32 }
          cleanup
  br label %1514

1497:                                             ; preds = %1339
  %1498 = landingpad { ptr, i32 }
          cleanup
  br label %1513

1499:                                             ; preds = %1340
  %1500 = landingpad { ptr, i32 }
          cleanup
  br label %1512

1501:                                             ; preds = %1341
  %1502 = landingpad { ptr, i32 }
          cleanup
  br label %1511

1503:                                             ; preds = %1342
  %1504 = landingpad { ptr, i32 }
          cleanup
  br label %1510

1505:                                             ; preds = %1343
  %1506 = landingpad { ptr, i32 }
          cleanup
  br label %1509

1507:                                             ; preds = %1345
  %1508 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #11
  br label %1509

1509:                                             ; preds = %1507, %1505
  %.pn2510 = phi { ptr, i32 } [ %1508, %1507 ], [ %1506, %1505 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #11
  br label %1510

1510:                                             ; preds = %1509, %1503
  %.pn2510.pn = phi { ptr, i32 } [ %.pn2510, %1509 ], [ %1504, %1503 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %111) #11
  br label %1511

1511:                                             ; preds = %1510, %1501
  %.pn2510.pn.pn = phi { ptr, i32 } [ %.pn2510.pn, %1510 ], [ %1502, %1501 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %110) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %106) #11
  br label %1512

1512:                                             ; preds = %1511, %1499
  %.pn2510.pn.pn.pn = phi { ptr, i32 } [ %.pn2510.pn.pn, %1511 ], [ %1500, %1499 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #11
  br label %1513

1513:                                             ; preds = %1512, %1497
  %.pn2510.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2510.pn.pn.pn, %1512 ], [ %1498, %1497 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #11
  br label %1514

1514:                                             ; preds = %1513, %1495
  %.pn2510.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2510.pn.pn.pn.pn, %1513 ], [ %1496, %1495 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %109) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %107) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %106) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %105) #11
  br label %1515

1515:                                             ; preds = %1514, %1493
  %.pn2510.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2510.pn.pn.pn.pn.pn, %1514 ], [ %1494, %1493 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %104) #11
  br label %1516

1516:                                             ; preds = %1515, %1491
  %.pn2510.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2510.pn.pn.pn.pn.pn.pn, %1515 ], [ %1492, %1491 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %104) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #11
  br label %1517

1517:                                             ; preds = %1516, %1489
  %.pn2510.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2510.pn.pn.pn.pn.pn.pn.pn, %1516 ], [ %1490, %1489 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %102) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #11
  br label %1708

1518:                                             ; preds = %1346
  %1519 = landingpad { ptr, i32 }
          cleanup
  br label %1529

1520:                                             ; preds = %1347
  %1521 = landingpad { ptr, i32 }
          cleanup
  br label %1528

1522:                                             ; preds = %1348
  %1523 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2644

1524:                                             ; preds = %1349
  %1525 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2644.loopexit

1526:                                             ; preds = %1350
  %1527 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %113) #11
  br label %.loopexit2644.loopexit

.loopexit2644.loopexit:                           ; preds = %1526, %1524
  %.pn2520 = phi { ptr, i32 } [ %1527, %1526 ], [ %1525, %1524 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br label %.loopexit2644

.loopexit2644:                                    ; preds = %.loopexit2644.loopexit, %1522
  %.pn2520.pn = phi { ptr, i32 } [ %1523, %1522 ], [ %.pn2520, %.loopexit2644.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  br label %1528

1528:                                             ; preds = %.loopexit2644, %1520
  %.pn2520.pn.pn = phi { ptr, i32 } [ %.pn2520.pn, %.loopexit2644 ], [ %1521, %1520 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %115) #11
  br label %1529

1529:                                             ; preds = %1528, %1518
  %.pn2520.pn.pn.pn = phi { ptr, i32 } [ %.pn2520.pn.pn, %1528 ], [ %1519, %1518 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %116) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %113) #11
  br label %1707

.thread2631:                                      ; preds = %1351
  %1530 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #11
  br label %.loopexit

1531:                                             ; preds = %1352
  %1532 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2643

1533:                                             ; preds = %1353
  %1534 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2643.loopexit

1535:                                             ; preds = %1354
  %1536 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #11
  br label %.loopexit2643.loopexit

.loopexit2643.loopexit:                           ; preds = %1535, %1533
  %.pn2525 = phi { ptr, i32 } [ %1536, %1535 ], [ %1534, %1533 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #11
  %1537 = getelementptr inbounds i8, ptr %122, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1537) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  br label %.loopexit2643

.loopexit2643:                                    ; preds = %.loopexit2643.loopexit, %1531
  %1538 = phi i1 [ false, %1531 ], [ true, %.loopexit2643.loopexit ]
  %.pn2525.pn = phi { ptr, i32 } [ %1532, %1531 ], [ %.pn2525, %.loopexit2643.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #11
  br i1 %1538, label %.loopexit, label %.preheader.preheader

.preheader.preheader:                             ; preds = %.loopexit2643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader.preheader, %.thread2631, %.loopexit2643
  %.pn2525.pn.pn2636 = phi { ptr, i32 } [ %1530, %.thread2631 ], [ %.pn2525.pn, %.loopexit2643 ], [ %.pn2525.pn, %.preheader.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %122) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %121) #11
  br label %1706

1539:                                             ; preds = %1355
  %1540 = landingpad { ptr, i32 }
          cleanup
  br label %1705

1541:                                             ; preds = %1356
  %1542 = landingpad { ptr, i32 }
          cleanup
  br label %1704

1543:                                             ; preds = %1357
  %1544 = landingpad { ptr, i32 }
          cleanup
  br label %1703

1545:                                             ; preds = %1358
  %1546 = landingpad { ptr, i32 }
          cleanup
  br label %1552

1547:                                             ; preds = %1359
  %1548 = landingpad { ptr, i32 }
          cleanup
  br label %1551

1549:                                             ; preds = %1360
  %1550 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #11
  br label %1551

1551:                                             ; preds = %1549, %1547
  %.pn2529 = phi { ptr, i32 } [ %1550, %1549 ], [ %1548, %1547 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %132) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #11
  br label %1552

1552:                                             ; preds = %1551, %1545
  %.pn2529.pn = phi { ptr, i32 } [ %.pn2529, %1551 ], [ %1546, %1545 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %130) #11
  br label %1702

1553:                                             ; preds = %1361
  %1554 = landingpad { ptr, i32 }
          cleanup
  br label %1560

1555:                                             ; preds = %1362
  %1556 = landingpad { ptr, i32 }
          cleanup
  br label %1559

1557:                                             ; preds = %1363
  %1558 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #11
  br label %1559

1559:                                             ; preds = %1557, %1555
  %.pn2532 = phi { ptr, i32 } [ %1558, %1557 ], [ %1556, %1555 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #11
  br label %1560

1560:                                             ; preds = %1559, %1553
  %.pn2532.pn = phi { ptr, i32 } [ %.pn2532, %1559 ], [ %1554, %1553 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %134) #11
  br label %1701

1561:                                             ; preds = %1364
  %1562 = landingpad { ptr, i32 }
          cleanup
  br label %1568

1563:                                             ; preds = %1365
  %1564 = landingpad { ptr, i32 }
          cleanup
  br label %1567

1565:                                             ; preds = %1366
  %1566 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #11
  br label %1567

1567:                                             ; preds = %1565, %1563
  %.pn2535 = phi { ptr, i32 } [ %1566, %1565 ], [ %1564, %1563 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %138) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %139) #11
  br label %1568

1568:                                             ; preds = %1567, %1561
  %.pn2535.pn = phi { ptr, i32 } [ %.pn2535, %1567 ], [ %1562, %1561 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %139) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %138) #11
  br label %1700

1569:                                             ; preds = %1367
  %1570 = landingpad { ptr, i32 }
          cleanup
  br label %1699

1571:                                             ; preds = %1368
  %1572 = landingpad { ptr, i32 }
          cleanup
  br label %1698

.lr.ph3572:                                       ; preds = %1373, %1582
  %.013993570 = phi ptr [ %1583, %1582 ], [ %1372, %1373 ]
  %1573 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %142)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %143) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %144) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %145) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %146) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %146, ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %1574 unwind label %1584

1574:                                             ; preds = %.lr.ph3572
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %147) #11
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %147, ptr noundef nonnull align 8 dereferenceable(32) %.013993570)
          to label %1575 unwind label %1586

1575:                                             ; preds = %1574
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %150) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull @.str.122, ptr noundef nonnull align 1 dereferenceable(1) %150)
          to label %1576 unwind label %1588

1576:                                             ; preds = %1575
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #11
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr noundef nonnull align 8 dereferenceable(32) %.013993570)
          to label %1577 unwind label %1590

1577:                                             ; preds = %1576
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %148, ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1578 unwind label %1592

1578:                                             ; preds = %1577
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node4Expr2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cSH_A2_cA9_cEEENS4_INS7_2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %145, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %146, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 1 dereferenceable(7) @.str.121, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 1 dereferenceable(2) @.str.93, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %1579 unwind label %1594

1579:                                             ; preds = %1578
  %1580 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %145)
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.124") align 8 %144, ptr noundef nonnull align 8 dereferenceable(136) %1580)
          to label %1581 unwind label %1596

1581:                                             ; preds = %1579
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %143, ptr noundef nonnull align 8 dereferenceable(16) %144)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1573, ptr noundef nonnull align 8 dereferenceable(16) %143)
          to label %1582 unwind label %1598

1582:                                             ; preds = %1581
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %144) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %145) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %150) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %146) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %146) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %144) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #11
  %1583 = getelementptr inbounds i8, ptr %.013993570, i64 32
  %.not2538 = icmp eq ptr %1583, %1374
  br i1 %.not2538, label %._crit_edge3573, label %.lr.ph3572

1584:                                             ; preds = %.lr.ph3572
  %1585 = landingpad { ptr, i32 }
          cleanup
  br label %1606

1586:                                             ; preds = %1574
  %1587 = landingpad { ptr, i32 }
          cleanup
  br label %1605

1588:                                             ; preds = %1575
  %1589 = landingpad { ptr, i32 }
          cleanup
  br label %1604

1590:                                             ; preds = %1576
  %1591 = landingpad { ptr, i32 }
          cleanup
  br label %1603

1592:                                             ; preds = %1577
  %1593 = landingpad { ptr, i32 }
          cleanup
  br label %1602

1594:                                             ; preds = %1578
  %1595 = landingpad { ptr, i32 }
          cleanup
  br label %1601

1596:                                             ; preds = %1579
  %1597 = landingpad { ptr, i32 }
          cleanup
  br label %1600

1598:                                             ; preds = %1581
  %1599 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %144) #11
  br label %1600

1600:                                             ; preds = %1598, %1596
  %.pn2561 = phi { ptr, i32 } [ %1599, %1598 ], [ %1597, %1596 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %145) #11
  br label %1601

1601:                                             ; preds = %1600, %1594
  %.pn2561.pn = phi { ptr, i32 } [ %.pn2561, %1600 ], [ %1595, %1594 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #11
  br label %1602

1602:                                             ; preds = %1601, %1592
  %.pn2561.pn.pn = phi { ptr, i32 } [ %.pn2561.pn, %1601 ], [ %1593, %1592 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #11
  br label %1603

1603:                                             ; preds = %1602, %1590
  %.pn2561.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn, %1602 ], [ %1591, %1590 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #11
  br label %1604

1604:                                             ; preds = %1603, %1588
  %.pn2561.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn, %1603 ], [ %1589, %1588 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %150) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #11
  br label %1605

1605:                                             ; preds = %1604, %1586
  %.pn2561.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn, %1604 ], [ %1587, %1586 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %146) #11
  br label %1606

1606:                                             ; preds = %1605, %1584
  %.pn2561.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn, %1605 ], [ %1585, %1584 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %146) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %144) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %143) #11
  br label %1698

1607:                                             ; preds = %._crit_edge3573
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1375, ptr noundef nonnull align 8 dereferenceable(16) %152)
          to label %1608 unwind label %1638

1608:                                             ; preds = %1607
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %152) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #11
  %1609 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %128)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %153) #11
  %1610 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %142)
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %153, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 8 dereferenceable(16) %137, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %1610, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %1611 unwind label %1641

1611:                                             ; preds = %1608
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1609, ptr noundef nonnull align 8 dereferenceable(16) %153)
          to label %1612 unwind label %1643

1612:                                             ; preds = %1611
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %153) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #11
  %1613 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %154) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %155) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %156) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %157) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %157)
          to label %1614 unwind label %1646

1614:                                             ; preds = %1612
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %158) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %158)
          to label %1615 unwind label %1648

1615:                                             ; preds = %1614
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %159) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %160) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %162) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %1616 unwind label %1650

1616:                                             ; preds = %1615
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %160, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %1617 unwind label %1652

1617:                                             ; preds = %1616
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %159, ptr noundef nonnull align 8 dereferenceable(16) %160)
          to label %1618 unwind label %1654

1618:                                             ; preds = %1617
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %156, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %157, ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull align 4 dereferenceable(20) %159, ptr noundef nonnull align 8 dereferenceable(16) %120, ptr noundef nonnull align 8 dereferenceable(16) %127)
          to label %1619 unwind label %1656

1619:                                             ; preds = %1618
  %1620 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %156)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %155, ptr noundef nonnull align 8 dereferenceable(136) %1620)
          to label %1621 unwind label %1658

1621:                                             ; preds = %1619
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 8 dereferenceable(16) %155)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1613, ptr noundef nonnull align 8 dereferenceable(16) %154)
          to label %1622 unwind label %1660

1622:                                             ; preds = %1621
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %155) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %156) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %159) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %159) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %158) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %157) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %156) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %155) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %154) #11
  %1623 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1232)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %163) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %164) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %165) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %166) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %166)
          to label %1624 unwind label %1669

1624:                                             ; preds = %1622
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %167) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %167)
          to label %1625 unwind label %1671

1625:                                             ; preds = %1624
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %168) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %168, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %1626 unwind label %1673

1626:                                             ; preds = %1625
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %169) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %170) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %172) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %172)
          to label %1627 unwind label %1675

1627:                                             ; preds = %1626
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %170, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %171)
          to label %1628 unwind label %1677

1628:                                             ; preds = %1627
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %169, ptr noundef nonnull align 8 dereferenceable(16) %170)
          to label %1629 unwind label %1679

1629:                                             ; preds = %1628
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %173) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef nonnull align 8 dereferenceable(16) %126)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %174) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %174)
          to label %1630 unwind label %1681

1630:                                             ; preds = %1629
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %165, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %166, ptr noundef nonnull align 8 dereferenceable(16) %167, ptr noundef nonnull align 8 dereferenceable(16) %168, ptr noundef nonnull align 4 dereferenceable(20) %169, ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull align 8 dereferenceable(16) %174, ptr noundef nonnull align 8 dereferenceable(16) %128, i1 noundef zeroext false)
          to label %1631 unwind label %1683

1631:                                             ; preds = %1630
  %1632 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %165)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %164, ptr noundef nonnull align 8 dereferenceable(136) %1632)
          to label %1633 unwind label %1685

1633:                                             ; preds = %1631
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %163, ptr noundef nonnull align 8 dereferenceable(16) %164)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1623, ptr noundef nonnull align 8 dereferenceable(16) %163)
          to label %1634 unwind label %1687

1634:                                             ; preds = %1633
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %165) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %174) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %174) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %173) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %169) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %170) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %169) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %168) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %168) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %167) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %167) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %166) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %166) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %165) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %164) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %142) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %137) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %137) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %133) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %129) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %129) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %128) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %120) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %66) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #11
  %1635 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %41)
          to label %1236 unwind label %1245

1636:                                             ; preds = %._crit_edge3573
  %1637 = landingpad { ptr, i32 }
          cleanup
  br label %1640

1638:                                             ; preds = %1607
  %1639 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %152) #11
  br label %1640

1640:                                             ; preds = %1638, %1636
  %.pn2539 = phi { ptr, i32 } [ %1639, %1638 ], [ %1637, %1636 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #11
  br label %1698

1641:                                             ; preds = %1608
  %1642 = landingpad { ptr, i32 }
          cleanup
  br label %1645

1643:                                             ; preds = %1611
  %1644 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %153) #11
  br label %1645

1645:                                             ; preds = %1643, %1641
  %.pn2541 = phi { ptr, i32 } [ %1644, %1643 ], [ %1642, %1641 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #11
  br label %1698

1646:                                             ; preds = %1612
  %1647 = landingpad { ptr, i32 }
          cleanup
  br label %1668

1648:                                             ; preds = %1614
  %1649 = landingpad { ptr, i32 }
          cleanup
  br label %1667

1650:                                             ; preds = %1615
  %1651 = landingpad { ptr, i32 }
          cleanup
  br label %1666

1652:                                             ; preds = %1616
  %1653 = landingpad { ptr, i32 }
          cleanup
  br label %1665

1654:                                             ; preds = %1617
  %1655 = landingpad { ptr, i32 }
          cleanup
  br label %1664

1656:                                             ; preds = %1618
  %1657 = landingpad { ptr, i32 }
          cleanup
  br label %1663

1658:                                             ; preds = %1619
  %1659 = landingpad { ptr, i32 }
          cleanup
  br label %1662

1660:                                             ; preds = %1621
  %1661 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %155) #11
  br label %1662

1662:                                             ; preds = %1660, %1658
  %.pn2543 = phi { ptr, i32 } [ %1661, %1660 ], [ %1659, %1658 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %156) #11
  br label %1663

1663:                                             ; preds = %1662, %1656
  %.pn2543.pn = phi { ptr, i32 } [ %.pn2543, %1662 ], [ %1657, %1656 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %159) #11
  br label %1664

1664:                                             ; preds = %1663, %1654
  %.pn2543.pn.pn = phi { ptr, i32 } [ %.pn2543.pn, %1663 ], [ %1655, %1654 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %160) #11
  br label %1665

1665:                                             ; preds = %1664, %1652
  %.pn2543.pn.pn.pn = phi { ptr, i32 } [ %.pn2543.pn.pn, %1664 ], [ %1653, %1652 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #11
  br label %1666

1666:                                             ; preds = %1665, %1650
  %.pn2543.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2543.pn.pn.pn, %1665 ], [ %1651, %1650 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %160) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %159) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %158) #11
  br label %1667

1667:                                             ; preds = %1666, %1648
  %.pn2543.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2543.pn.pn.pn.pn, %1666 ], [ %1649, %1648 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %158) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #11
  br label %1668

1668:                                             ; preds = %1667, %1646
  %.pn2543.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2543.pn.pn.pn.pn.pn, %1667 ], [ %1647, %1646 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %157) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %156) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %155) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %154) #11
  br label %1698

1669:                                             ; preds = %1622
  %1670 = landingpad { ptr, i32 }
          cleanup
  br label %1697

1671:                                             ; preds = %1624
  %1672 = landingpad { ptr, i32 }
          cleanup
  br label %1696

1673:                                             ; preds = %1625
  %1674 = landingpad { ptr, i32 }
          cleanup
  br label %1695

1675:                                             ; preds = %1626
  %1676 = landingpad { ptr, i32 }
          cleanup
  br label %1694

1677:                                             ; preds = %1627
  %1678 = landingpad { ptr, i32 }
          cleanup
  br label %1693

1679:                                             ; preds = %1628
  %1680 = landingpad { ptr, i32 }
          cleanup
  br label %1692

1681:                                             ; preds = %1629
  %1682 = landingpad { ptr, i32 }
          cleanup
  br label %1691

1683:                                             ; preds = %1630
  %1684 = landingpad { ptr, i32 }
          cleanup
  br label %1690

1685:                                             ; preds = %1631
  %1686 = landingpad { ptr, i32 }
          cleanup
  br label %1689

1687:                                             ; preds = %1633
  %1688 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %163) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %164) #11
  br label %1689

1689:                                             ; preds = %1687, %1685
  %.pn2551 = phi { ptr, i32 } [ %1688, %1687 ], [ %1686, %1685 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %165) #11
  br label %1690

1690:                                             ; preds = %1689, %1683
  %.pn2551.pn = phi { ptr, i32 } [ %.pn2551, %1689 ], [ %1684, %1683 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %174) #11
  br label %1691

1691:                                             ; preds = %1690, %1681
  %.pn2551.pn.pn = phi { ptr, i32 } [ %.pn2551.pn, %1690 ], [ %1682, %1681 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %174) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %173) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %173) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %169) #11
  br label %1692

1692:                                             ; preds = %1691, %1679
  %.pn2551.pn.pn.pn = phi { ptr, i32 } [ %.pn2551.pn.pn, %1691 ], [ %1680, %1679 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #11
  br label %1693

1693:                                             ; preds = %1692, %1677
  %.pn2551.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2551.pn.pn.pn, %1692 ], [ %1678, %1677 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #11
  br label %1694

1694:                                             ; preds = %1693, %1675
  %.pn2551.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2551.pn.pn.pn.pn, %1693 ], [ %1676, %1675 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %170) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %169) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %168) #11
  br label %1695

1695:                                             ; preds = %1694, %1673
  %.pn2551.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2551.pn.pn.pn.pn.pn, %1694 ], [ %1674, %1673 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %168) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %167) #11
  br label %1696

1696:                                             ; preds = %1695, %1671
  %.pn2551.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2551.pn.pn.pn.pn.pn.pn, %1695 ], [ %1672, %1671 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %167) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %166) #11
  br label %1697

1697:                                             ; preds = %1696, %1669
  %.pn2551.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2551.pn.pn.pn.pn.pn.pn.pn, %1696 ], [ %1670, %1669 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %166) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %165) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %164) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %163) #11
  br label %1698

1698:                                             ; preds = %1571, %1606, %1697, %1668, %1645, %1640
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2551.pn.pn.pn.pn.pn.pn.pn.pn, %1697 ], [ %.pn2543.pn.pn.pn.pn.pn.pn, %1668 ], [ %.pn2541, %1645 ], [ %.pn2539, %1640 ], [ %.pn2561.pn.pn.pn.pn.pn.pn, %1606 ], [ %1572, %1571 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %142) #11
  br label %1699

1699:                                             ; preds = %1698, %1569
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn, %1698 ], [ %1570, %1569 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %142) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %137) #11
  br label %1700

1700:                                             ; preds = %1699, %1568
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1699 ], [ %.pn2535.pn, %1568 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %137) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #11
  br label %1701

1701:                                             ; preds = %1700, %1560
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1700 ], [ %.pn2532.pn, %1560 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %133) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %129) #11
  br label %1702

1702:                                             ; preds = %1701, %1552
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1701 ], [ %.pn2529.pn, %1552 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %129) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %128) #11
  br label %1703

1703:                                             ; preds = %1702, %1543
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1702 ], [ %1544, %1543 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %128) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %127) #11
  br label %1704

1704:                                             ; preds = %1703, %1541
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1703 ], [ %1542, %1541 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %126) #11
  br label %1705

1705:                                             ; preds = %1704, %1539
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1704 ], [ %1540, %1539 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #11
  br label %1706

1706:                                             ; preds = %1705, %.loopexit
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1705 ], [ %.pn2525.pn.pn2636, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %120) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #11
  br label %1707

1707:                                             ; preds = %1706, %1529
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1706 ], [ %.pn2520.pn.pn.pn, %1529 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #11
  br label %1708

1708:                                             ; preds = %1707, %1517, %1488, %1465, %1453
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1707 ], [ %.pn2510.pn.pn.pn.pn.pn.pn.pn.pn, %1517 ], [ %.pn2502.pn.pn.pn.pn.pn.pn, %1488 ], [ %.pn2498.pn.pn, %1465 ], [ %1454, %1453 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #11
  br label %1709

1709:                                             ; preds = %1708, %1452
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1708 ], [ %.pn2494.pn.pn, %1452 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #11
  br label %1710

1710:                                             ; preds = %1709, %1440
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1709 ], [ %1441, %1440 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  br label %1711

1711:                                             ; preds = %1710, %1439, %1433
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1710 ], [ %.pn2492, %1439 ], [ %1434, %1433 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #11
  br label %1712

1712:                                             ; preds = %1711, %1431
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1711 ], [ %1432, %1431 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #11
  br label %1713

1713:                                             ; preds = %1712, %1430
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1712 ], [ %.pn2489.pn, %1430 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #11
  br label %1714

1714:                                             ; preds = %1713, %1421
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1713 ], [ %1422, %1421 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #11
  br label %1715

1715:                                             ; preds = %1714, %1420, %1414
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1714 ], [ %.pn2487, %1420 ], [ %1415, %1414 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #11
  br label %1716

1716:                                             ; preds = %1715, %1412
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1715 ], [ %1413, %1412 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %66) #11
  br label %1717

1717:                                             ; preds = %1716, %1410
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1716 ], [ %1411, %1410 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %66) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #11
  br label %1718

1718:                                             ; preds = %1717, %1408
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1717 ], [ %1409, %1408 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #11
  br label %1719

1719:                                             ; preds = %1718, %.loopexit2646
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1718 ], [ %.pn2483.pn.pn2630, %.loopexit2646 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #11
  br label %1720

1720:                                             ; preds = %1719, %1398
  %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1719 ], [ %.pn2478.pn.pn.pn, %1398 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #11
  br label %1721

1721:                                             ; preds = %1266, %1280, %1720, %1386
  %.pn2593.pn.pn.pn = phi { ptr, i32 } [ %.pn2561.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1720 ], [ %.pn2474.pn.pn, %1386 ], [ %.pn2593.pn, %1280 ], [ %1267, %1266 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #11
  br label %1722

1722:                                             ; preds = %1721, %1264
  %.pn2593.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2593.pn.pn.pn, %1721 ], [ %1265, %1264 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #11
  br label %1723

1723:                                             ; preds = %1722, %1262
  %.pn2593.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2593.pn.pn.pn.pn, %1722 ], [ %1263, %1262 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #11
  br label %1724

1724:                                             ; preds = %1260, %1723, %1245
  %.pn2593.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %1246, %1245 ], [ %.pn2593.pn.pn.pn.pn.pn, %1723 ], [ %1261, %1260 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #11
  br label %1725

1725:                                             ; preds = %1724, %1243
  %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2593.pn.pn.pn.pn.pn.pn.pn, %1724 ], [ %1244, %1243 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #11
  br label %6145

1726:                                             ; preds = %1239
  %1727 = extractvalue { ptr, i64 } %1242, 0
  store ptr %1727, ptr %175, align 8
  %1728 = getelementptr inbounds i8, ptr %175, i64 8
  %1729 = extractvalue { ptr, i64 } %1242, 1
  store i64 %1729, ptr %1728, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %176) #11
  %1730 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %1241)
          to label %1731 unwind label %.loopexit.split-lp2682

1731:                                             ; preds = %1726
  %1732 = extractvalue { ptr, i64 } %1730, 0
  store ptr %1732, ptr %176, align 8
  %1733 = getelementptr inbounds i8, ptr %176, i64 8
  %1734 = extractvalue { ptr, i64 } %1730, 1
  store i64 %1734, ptr %1733, align 8
  br label %1735

1735:                                             ; preds = %1766, %1731
  %1736 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEneERKSI_(ptr noundef nonnull align 8 dereferenceable(16) %175, ptr noundef nonnull align 8 dereferenceable(16) %176)
          to label %1737 unwind label %.loopexit2681

1737:                                             ; preds = %1735
  br i1 %1736, label %1741, label %1738

1738:                                             ; preds = %1737
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %176) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %175) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %196) #11
  invoke void @_ZN6langcc7make_rcINS_3VecISt4pairINS_6rc_ptrINS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS3_IN4lang4data4Node4Decl4Data2_TEEEEEEJEEENS3_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.133") align 8 %196)
          to label %1825 unwind label %1845

1739:                                             ; preds = %1239
  %1740 = landingpad { ptr, i32 }
          cleanup
  br label %1824

.loopexit2681:                                    ; preds = %1735, %1766
  %lpad.loopexit2683 = landingpad { ptr, i32 }
          cleanup
  br label %1823

.loopexit.split-lp2682:                           ; preds = %1726
  %lpad.loopexit.split-lp2684 = landingpad { ptr, i32 }
          cleanup
  br label %1823

1741:                                             ; preds = %1737
  %1742 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %175)
          to label %1743 unwind label %1768

1743:                                             ; preds = %1741
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %177) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef nonnull align 8 dereferenceable(16) %1742)
          to label %1744 unwind label %1770

1744:                                             ; preds = %1743
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %178) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %179)
          to label %1745 unwind label %1772

1745:                                             ; preds = %1744
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %178, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef nonnull %179)
          to label %1746 unwind label %1774

1746:                                             ; preds = %1745
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %179) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %180) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %181)
          to label %1747 unwind label %1776

1747:                                             ; preds = %1746
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %182)
          to label %1748 unwind label %1778

1748:                                             ; preds = %1747
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %180, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %181, ptr noundef nonnull %182)
          to label %1749 unwind label %1780

1749:                                             ; preds = %1748
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %182) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %181) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %183) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %184, ptr noundef nonnull align 8 dereferenceable(16) %177)
          to label %1750 unwind label %1783

1750:                                             ; preds = %1749
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %183, ptr noundef nonnull %184, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %1751 unwind label %1785

1751:                                             ; preds = %1750
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %184) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %185) #11
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %185, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %180, ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %1752 unwind label %1787

1752:                                             ; preds = %1751
  %1753 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %186) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %187) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %188) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %189, ptr noundef nonnull align 8 dereferenceable(16) %178)
          to label %1754 unwind label %1789

1754:                                             ; preds = %1752
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_decl_struct_fwdENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %188, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %189, ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %1755 unwind label %1791

1755:                                             ; preds = %1754
  %1756 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %188)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %187, ptr noundef nonnull align 8 dereferenceable(136) %1756)
          to label %1757 unwind label %1793

1757:                                             ; preds = %1755
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %186, ptr noundef nonnull align 8 dereferenceable(16) %187)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1753, ptr noundef nonnull align 8 dereferenceable(16) %186)
          to label %1758 unwind label %1795

1758:                                             ; preds = %1757
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %186) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %187) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %188) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %188) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %187) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %186) #11
  %1759 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %190) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %191) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %192) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %194)
          to label %1760 unwind label %1800

1760:                                             ; preds = %1758
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %193, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %177, ptr noundef nonnull %194)
          to label %1761 unwind label %1802

1761:                                             ; preds = %1760
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %195) #11
  invoke void @_ZN6langcc13CppGenContext14gen_cpp_rc_ptrERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %195, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %185)
          to label %1762 unwind label %1804

1762:                                             ; preds = %1761
  invoke void @_ZN6langcc13CppGenContext18gen_cpp_decl_usingENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_IN4lang2cc4Node2_TEEERKNS1_INS2_ISF_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %192, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %193, ptr noundef nonnull align 8 dereferenceable(16) %195, ptr noundef nonnull align 8 dereferenceable(16) %183)
          to label %1763 unwind label %1806

1763:                                             ; preds = %1762
  %1764 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %192)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %191, ptr noundef nonnull align 8 dereferenceable(136) %1764)
          to label %1765 unwind label %1808

1765:                                             ; preds = %1763
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %190, ptr noundef nonnull align 8 dereferenceable(16) %191)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1759, ptr noundef nonnull align 8 dereferenceable(16) %190)
          to label %1766 unwind label %1810

1766:                                             ; preds = %1765
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %191) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %192) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %195) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %195) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %194) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %192) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %191) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %190) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %185) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %185) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %183) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %183) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %180) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %180) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %178) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %178) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %177) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %177) #11
  %1767 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %175)
          to label %1735 unwind label %.loopexit2681

1768:                                             ; preds = %1741
  %1769 = landingpad { ptr, i32 }
          cleanup
  br label %1823

1770:                                             ; preds = %1743
  %1771 = landingpad { ptr, i32 }
          cleanup
  br label %1822

1772:                                             ; preds = %1744
  %1773 = landingpad { ptr, i32 }
          cleanup
  br label %1821

1774:                                             ; preds = %1745
  %1775 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %179) #11
  br label %1821

1776:                                             ; preds = %1746
  %1777 = landingpad { ptr, i32 }
          cleanup
  br label %1820

1778:                                             ; preds = %1747
  %1779 = landingpad { ptr, i32 }
          cleanup
  br label %1782

1780:                                             ; preds = %1748
  %1781 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %182) #11
  br label %1782

1782:                                             ; preds = %1780, %1778
  %.pn2451 = phi { ptr, i32 } [ %1781, %1780 ], [ %1779, %1778 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %181) #11
  br label %1820

1783:                                             ; preds = %1749
  %1784 = landingpad { ptr, i32 }
          cleanup
  br label %1819

1785:                                             ; preds = %1750
  %1786 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %184) #11
  br label %1819

1787:                                             ; preds = %1751
  %1788 = landingpad { ptr, i32 }
          cleanup
  br label %1818

1789:                                             ; preds = %1752
  %1790 = landingpad { ptr, i32 }
          cleanup
  br label %1799

1791:                                             ; preds = %1754
  %1792 = landingpad { ptr, i32 }
          cleanup
  br label %1798

1793:                                             ; preds = %1755
  %1794 = landingpad { ptr, i32 }
          cleanup
  br label %1797

1795:                                             ; preds = %1757
  %1796 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %186) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %187) #11
  br label %1797

1797:                                             ; preds = %1795, %1793
  %.pn2453 = phi { ptr, i32 } [ %1796, %1795 ], [ %1794, %1793 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %188) #11
  br label %1798

1798:                                             ; preds = %1797, %1791
  %.pn2453.pn = phi { ptr, i32 } [ %.pn2453, %1797 ], [ %1792, %1791 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %189) #11
  br label %1799

1799:                                             ; preds = %1798, %1789
  %.pn2453.pn.pn = phi { ptr, i32 } [ %.pn2453.pn, %1798 ], [ %1790, %1789 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %188) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %187) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %186) #11
  br label %1817

1800:                                             ; preds = %1758
  %1801 = landingpad { ptr, i32 }
          cleanup
  br label %1816

1802:                                             ; preds = %1760
  %1803 = landingpad { ptr, i32 }
          cleanup
  br label %1815

1804:                                             ; preds = %1761
  %1805 = landingpad { ptr, i32 }
          cleanup
  br label %1814

1806:                                             ; preds = %1762
  %1807 = landingpad { ptr, i32 }
          cleanup
  br label %1813

1808:                                             ; preds = %1763
  %1809 = landingpad { ptr, i32 }
          cleanup
  br label %1812

1810:                                             ; preds = %1765
  %1811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %190) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %191) #11
  br label %1812

1812:                                             ; preds = %1810, %1808
  %.pn2457 = phi { ptr, i32 } [ %1811, %1810 ], [ %1809, %1808 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %192) #11
  br label %1813

1813:                                             ; preds = %1812, %1806
  %.pn2457.pn = phi { ptr, i32 } [ %.pn2457, %1812 ], [ %1807, %1806 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %195) #11
  br label %1814

1814:                                             ; preds = %1813, %1804
  %.pn2457.pn.pn = phi { ptr, i32 } [ %.pn2457.pn, %1813 ], [ %1805, %1804 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %195) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %193) #11
  br label %1815

1815:                                             ; preds = %1814, %1802
  %.pn2457.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn, %1814 ], [ %1803, %1802 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %194) #11
  br label %1816

1816:                                             ; preds = %1815, %1800
  %.pn2457.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn.pn, %1815 ], [ %1801, %1800 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %192) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %191) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %190) #11
  br label %1817

1817:                                             ; preds = %1816, %1799
  %.pn2457.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn.pn.pn, %1816 ], [ %.pn2453.pn.pn, %1799 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %185) #11
  br label %1818

1818:                                             ; preds = %1817, %1787
  %.pn2457.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn.pn.pn.pn, %1817 ], [ %1788, %1787 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %185) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %183) #11
  br label %1819

1819:                                             ; preds = %1818, %1785, %1783
  %.pn2457.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn.pn.pn.pn.pn, %1818 ], [ %1786, %1785 ], [ %1784, %1783 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %183) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %180) #11
  br label %1820

1820:                                             ; preds = %1819, %1782, %1776
  %.pn2457.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn.pn.pn.pn.pn.pn, %1819 ], [ %.pn2451, %1782 ], [ %1777, %1776 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %180) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %178) #11
  br label %1821

1821:                                             ; preds = %1820, %1774, %1772
  %.pn2457.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn.pn.pn.pn.pn.pn.pn, %1820 ], [ %1775, %1774 ], [ %1773, %1772 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %178) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %177) #11
  br label %1822

1822:                                             ; preds = %1821, %1770
  %.pn2457.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2457.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1821 ], [ %1771, %1770 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %177) #11
  br label %1823

1823:                                             ; preds = %.loopexit2681, %.loopexit.split-lp2682, %1768, %1822
  %.pn2470 = phi { ptr, i32 } [ %.pn2457.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1822 ], [ %1769, %1768 ], [ %lpad.loopexit2683, %.loopexit2681 ], [ %lpad.loopexit.split-lp2684, %.loopexit.split-lp2682 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %176) #11
  br label %1824

1824:                                             ; preds = %1823, %1739
  %.pn2470.pn = phi { ptr, i32 } [ %.pn2470, %1823 ], [ %1740, %1739 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %175) #11
  br label %6145

1825:                                             ; preds = %1738
  %1826 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1240)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %197) #11
  %1827 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %1826)
          to label %1828 unwind label %1847

1828:                                             ; preds = %1825
  %1829 = extractvalue { ptr, i64 } %1827, 0
  store ptr %1829, ptr %197, align 8
  %1830 = getelementptr inbounds i8, ptr %197, i64 8
  %1831 = extractvalue { ptr, i64 } %1827, 1
  store i64 %1831, ptr %1830, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %198) #11
  %1832 = invoke { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %1826)
          to label %1833 unwind label %.loopexit.split-lp2677

1833:                                             ; preds = %1828
  %1834 = extractvalue { ptr, i64 } %1832, 0
  store ptr %1834, ptr %198, align 8
  %1835 = getelementptr inbounds i8, ptr %198, i64 8
  %1836 = extractvalue { ptr, i64 } %1832, 1
  store i64 %1836, ptr %1835, align 8
  br label %1837

1837:                                             ; preds = %1853, %1833
  %1838 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEneERKSI_(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 8 dereferenceable(16) %198)
          to label %1839 unwind label %.loopexit2676

1839:                                             ; preds = %1837
  br i1 %1838, label %1849, label %1840

1840:                                             ; preds = %1839
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %198) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %197) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %199) #11
  call void @_ZNSt6vectorISt4pairIllESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %200) #11
  store i64 0, ptr %200, align 8, !tbaa !5
  %1841 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %196)
  %1842 = call noundef i64 @_ZNK6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %1841)
  %1843 = icmp sgt i64 %1842, 0
  br i1 %1843, label %.lr.ph3575, label %._crit_edge3576

.lr.ph3575:                                       ; preds = %1840
  %1844 = getelementptr inbounds i8, ptr %202, i64 8
  br label %1861

1845:                                             ; preds = %1738
  %1846 = landingpad { ptr, i32 }
          cleanup
  br label %6144

1847:                                             ; preds = %1825
  %1848 = landingpad { ptr, i32 }
          cleanup
  br label %1858

.loopexit2676:                                    ; preds = %1837, %1853
  %lpad.loopexit2678 = landingpad { ptr, i32 }
          cleanup
  br label %1857

.loopexit.split-lp2677:                           ; preds = %1828
  %lpad.loopexit.split-lp2679 = landingpad { ptr, i32 }
          cleanup
  br label %1857

1849:                                             ; preds = %1839
  %1850 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %197)
          to label %1851 unwind label %1855

1851:                                             ; preds = %1849
  %1852 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %196)
  invoke void @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE9push_backERKSI_(ptr noundef nonnull align 8 dereferenceable(64) %1852, ptr noundef nonnull align 8 dereferenceable(32) %1850)
          to label %1853 unwind label %1855

1853:                                             ; preds = %1851
  %1854 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %197)
          to label %1837 unwind label %.loopexit2676

1855:                                             ; preds = %1851, %1849
  %1856 = landingpad { ptr, i32 }
          cleanup
  br label %1857

1857:                                             ; preds = %.loopexit2676, %.loopexit.split-lp2677, %1855
  %.pn2446 = phi { ptr, i32 } [ %1856, %1855 ], [ %lpad.loopexit2678, %.loopexit2676 ], [ %lpad.loopexit.split-lp2679, %.loopexit.split-lp2677 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %198) #11
  br label %1858

1858:                                             ; preds = %1857, %1847
  %.pn2446.pn = phi { ptr, i32 } [ %.pn2446, %1857 ], [ %1848, %1847 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %197) #11
  br label %6143

._crit_edge3576:                                  ; preds = %1872, %1840
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #11
  %1859 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  %1860 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS3_SaIS3_EEEEEvT_S9_(ptr %1859, ptr %1860)
          to label %1883 unwind label %1937

1861:                                             ; preds = %.lr.ph3575, %1872
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %201) #11
  %1862 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %196)
  %1863 = load i64, ptr %200, align 8, !tbaa !5
  %1864 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %1862, i64 noundef %1863)
          to label %1865 unwind label %1878

1865:                                             ; preds = %1861
  %1866 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1864)
  %1867 = call noundef i64 @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %1866)
  store i64 %1867, ptr %201, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %202) #11
  %1868 = invoke { i64, i64 } @_ZSt9make_pairIRlS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull align 8 dereferenceable(8) %200)
          to label %1869 unwind label %1880

1869:                                             ; preds = %1865
  %1870 = extractvalue { i64, i64 } %1868, 0
  store i64 %1870, ptr %202, align 8
  %1871 = extractvalue { i64, i64 } %1868, 1
  store i64 %1871, ptr %1844, align 8
  invoke void @_ZNSt6vectorISt4pairIllESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %199, ptr noundef nonnull align 8 dereferenceable(16) %202)
          to label %1872 unwind label %1880

1872:                                             ; preds = %1869
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %202) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #11
  %1873 = load i64, ptr %200, align 8, !tbaa !5
  %1874 = add nsw i64 %1873, 1
  store i64 %1874, ptr %200, align 8, !tbaa !5
  %1875 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %196)
  %1876 = call noundef i64 @_ZNK6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %1875)
  %1877 = icmp slt i64 %1874, %1876
  br i1 %1877, label %1861, label %._crit_edge3576, !llvm.loop !9

1878:                                             ; preds = %1861
  %1879 = landingpad { ptr, i32 }
          cleanup
  br label %1882

1880:                                             ; preds = %1869, %1865
  %1881 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %202) #11
  br label %1882

1882:                                             ; preds = %1880, %1878
  %.pn2443 = phi { ptr, i32 } [ %1881, %1880 ], [ %1879, %1878 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %201) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %200) #11
  br label %6142

1883:                                             ; preds = %._crit_edge3576
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %203) #11
  %1884 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  store ptr %1884, ptr %203, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %204) #11
  %1885 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  store ptr %1885, ptr %204, align 8
  %1886 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIllESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull align 8 dereferenceable(8) %204) #11
  br i1 %1886, label %.lr.ph3630, label %._crit_edge3631

.lr.ph3630:                                       ; preds = %1883
  %1887 = getelementptr inbounds i8, ptr %5, i64 264
  %1888 = getelementptr inbounds i8, ptr %5, i64 280
  %1889 = getelementptr inbounds i8, ptr %301, i64 8
  %1890 = getelementptr inbounds i8, ptr %302, i64 8
  %1891 = getelementptr inbounds i8, ptr %314, i64 8
  %1892 = getelementptr inbounds i8, ptr %315, i64 8
  %1893 = getelementptr inbounds i8, ptr %327, i64 8
  %1894 = getelementptr inbounds i8, ptr %328, i64 8
  %1895 = getelementptr inbounds i8, ptr %350, i64 8
  %1896 = getelementptr inbounds i8, ptr %351, i64 8
  %1897 = getelementptr inbounds i8, ptr %376, i64 8
  %1898 = getelementptr inbounds i8, ptr %377, i64 8
  %1899 = getelementptr inbounds i8, ptr %395, i64 32
  %1900 = getelementptr inbounds i8, ptr %420, i64 8
  %1901 = getelementptr inbounds i8, ptr %421, i64 8
  %1902 = getelementptr inbounds i8, ptr %545, i64 8
  %1903 = getelementptr inbounds i8, ptr %546, i64 8
  %1904 = getelementptr inbounds i8, ptr %560, i64 8
  %1905 = getelementptr inbounds i8, ptr %561, i64 8
  %1906 = getelementptr inbounds i8, ptr %567, i64 8
  %1907 = getelementptr inbounds i8, ptr %568, i64 8
  %1908 = getelementptr inbounds i8, ptr %588, i64 8
  %1909 = getelementptr inbounds i8, ptr %589, i64 8
  %1910 = getelementptr inbounds i8, ptr %594, i64 8
  %1911 = getelementptr inbounds i8, ptr %595, i64 8
  %1912 = getelementptr inbounds i8, ptr %612, i64 8
  %1913 = getelementptr inbounds i8, ptr %613, i64 8
  %1914 = getelementptr inbounds i8, ptr %206, i64 16
  %1915 = getelementptr inbounds i8, ptr %647, i64 32
  %1916 = icmp eq i32 %3, 1
  %1917 = getelementptr inbounds i8, ptr %765, i64 8
  %1918 = getelementptr inbounds i8, ptr %766, i64 8
  %1919 = getelementptr inbounds i8, ptr %781, i64 8
  %1920 = getelementptr inbounds i8, ptr %782, i64 8
  %1921 = getelementptr inbounds i8, ptr %796, i64 8
  %1922 = getelementptr inbounds i8, ptr %797, i64 8
  %1923 = select i1 %1916, ptr @.str.174, ptr @.str
  %1924 = getelementptr inbounds i8, ptr %936, i64 8
  %1925 = getelementptr inbounds i8, ptr %937, i64 8
  %1926 = getelementptr inbounds i8, ptr %954, i64 8
  %1927 = getelementptr inbounds i8, ptr %955, i64 8
  %1928 = getelementptr inbounds i8, ptr %975, i64 8
  %1929 = getelementptr inbounds i8, ptr %976, i64 8
  %1930 = getelementptr inbounds i8, ptr %395, i64 32
  br label %1939

._crit_edge3631:                                  ; preds = %5928, %1883
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %204) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %203) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1051) #11
  %1931 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  store ptr %1931, ptr %1051, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1052) #11
  %1932 = call ptr @_ZNSt6vectorISt4pairIllESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  store ptr %1932, ptr %1052, align 8
  %1933 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIllESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %1051, ptr noundef nonnull align 8 dereferenceable(8) %1052) #11
  br i1 %1933, label %.lr.ph3633, label %._crit_edge3634

.lr.ph3633:                                       ; preds = %._crit_edge3631
  %1934 = getelementptr inbounds i8, ptr %1054, i64 16
  %1935 = getelementptr inbounds i8, ptr %1063, i64 8
  %1936 = getelementptr inbounds i8, ptr %1064, i64 8
  br label %6016

1937:                                             ; preds = %._crit_edge3576
  %1938 = landingpad { ptr, i32 }
          cleanup
  br label %6142

1939:                                             ; preds = %.lr.ph3630, %5928
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %205) #11
  %1940 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %203) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %205, ptr noundef nonnull align 8 dereferenceable(16) %1940, i64 16, i1 false)
  %1941 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %205) #11
  %1942 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %205) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %206) #11
  %1943 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %196)
  %1944 = load i64, ptr %1942, align 8, !tbaa !5
  %1945 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %1943, i64 noundef %1944)
          to label %1946 unwind label %1993

1946:                                             ; preds = %1939
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEC2ERKSI_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(32) %1945)
          to label %1947 unwind label %1993

1947:                                             ; preds = %1946
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %207) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(16) %206)
          to label %1948 unwind label %1995

1948:                                             ; preds = %1947
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %208) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %209)
          to label %1949 unwind label %1997

1949:                                             ; preds = %1948
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %208, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %209)
          to label %1950 unwind label %1999

1950:                                             ; preds = %1949
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %209) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %210) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %211)
          to label %1951 unwind label %2001

1951:                                             ; preds = %1950
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %212)
          to label %1952 unwind label %2003

1952:                                             ; preds = %1951
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %210, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %211, ptr noundef nonnull %212)
          to label %1953 unwind label %2005

1953:                                             ; preds = %1952
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %212) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %211) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %213) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %214)
          to label %1954 unwind label %2008

1954:                                             ; preds = %1953
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %215)
          to label %1955 unwind label %2010

1955:                                             ; preds = %1954
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %213, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %214, ptr noundef nonnull %215)
          to label %1956 unwind label %2012

1956:                                             ; preds = %1955
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %215) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %214) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %216) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %217, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %1957 unwind label %2015

1957:                                             ; preds = %1956
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %216, ptr noundef nonnull %217, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %1958 unwind label %2017

1958:                                             ; preds = %1957
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %218) #11
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %218, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %210, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %1959 unwind label %2019

1959:                                             ; preds = %1958
  %1960 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %1961 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %1960, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %1962 unwind label %2021

1962:                                             ; preds = %1959
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %219) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %219)
          to label %1963 unwind label %2023

1963:                                             ; preds = %1962
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %220) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr noundef nonnull align 8 dereferenceable(16) %206)
          to label %1964 unwind label %2025

1964:                                             ; preds = %1963
  invoke void @_ZN6langcc26dt_extract_def_fields_fullENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.91") align 8 %220, ptr noundef nonnull %221, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %1965 unwind label %2027

1965:                                             ; preds = %1964
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #11
  %1966 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32) %220) #11
  %1967 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESJ_EONSt13tuple_elementIXT_ES3_IT0_T1_EE4typeEOSN_(ptr noundef nonnull align 8 dereferenceable(32) %220) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %222) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %223)
          to label %1968 unwind label %2029

1968:                                             ; preds = %1965
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %222, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %223)
          to label %1969 unwind label %2031

1969:                                             ; preds = %1968
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %223) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %224) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %224)
          to label %1970 unwind label %2033

1970:                                             ; preds = %1969
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %225) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %225)
          to label %1971 unwind label %2035

1971:                                             ; preds = %1970
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %226) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %226)
          to label %1972 unwind label %2037

1972:                                             ; preds = %1971
  br i1 %1961, label %1973, label %2081

1973:                                             ; preds = %1972
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %227) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %228, ptr noundef nonnull align 8 dereferenceable(16) %222)
          to label %1974 unwind label %2039

1974:                                             ; preds = %1973
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %230) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull @.str.123, ptr noundef nonnull align 1 dereferenceable(1) %230)
          to label %1975 unwind label %2041

1975:                                             ; preds = %1974
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %227, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %228, ptr noundef nonnull %229)
          to label %1976 unwind label %2043

1976:                                             ; preds = %1975
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %230) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %228) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %231) #11
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %231, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %1977 unwind label %2046

1977:                                             ; preds = %1976
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %232) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %233)
          to label %1978 unwind label %2048

1978:                                             ; preds = %1977
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %234)
          to label %1979 unwind label %2050

1979:                                             ; preds = %1978
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %232, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %233, ptr noundef nonnull %234)
          to label %1980 unwind label %2052

1980:                                             ; preds = %1979
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %234) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %233) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %235) #11
  %1981 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %237) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %238) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %238)
          to label %1982 unwind label %2055

1982:                                             ; preds = %1980
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %236, ptr noundef nonnull align 8 dereferenceable(32) %237)
          to label %1983 unwind label %2057

1983:                                             ; preds = %1982
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %235, ptr noundef nonnull align 8 dereferenceable(32) %1981, ptr noundef nonnull %236, ptr noundef nonnull align 8 dereferenceable(16) %232, ptr noundef nonnull align 8 dereferenceable(16) %231)
          to label %1984 unwind label %2059

1984:                                             ; preds = %1983
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %236) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %238) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %237) #11
  %1985 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %224)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1985, ptr noundef nonnull align 8 dereferenceable(16) %235)
          to label %1986 unwind label %2063

1986:                                             ; preds = %1984
  %1987 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %225)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %239) #11
  %1988 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %241) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %242) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %242)
          to label %1989 unwind label %2065

1989:                                             ; preds = %1986
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %240, ptr noundef nonnull align 8 dereferenceable(32) %241)
          to label %1990 unwind label %2067

1990:                                             ; preds = %1989
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA6_cNS_6rc_ptrIS4_EEA2_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %239, ptr noundef nonnull align 8 dereferenceable(32) %1988, ptr noundef nonnull %240, ptr noundef nonnull align 1 dereferenceable(6) @.str.124, ptr noundef nonnull align 8 dereferenceable(16) %231, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %1991 unwind label %2069

1991:                                             ; preds = %1990
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %1987, ptr noundef nonnull align 8 dereferenceable(16) %239)
          to label %1992 unwind label %2071

1992:                                             ; preds = %1991
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %240) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %242) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %239) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %235) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %235) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %232) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %232) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %231) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %231) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #11
  br label %2081

1993:                                             ; preds = %1946, %1939
  %1994 = landingpad { ptr, i32 }
          cleanup
  br label %6015

1995:                                             ; preds = %1947
  %1996 = landingpad { ptr, i32 }
          cleanup
  br label %6014

1997:                                             ; preds = %1948
  %1998 = landingpad { ptr, i32 }
          cleanup
  br label %6013

1999:                                             ; preds = %1949
  %2000 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %209) #11
  br label %6013

2001:                                             ; preds = %1950
  %2002 = landingpad { ptr, i32 }
          cleanup
  br label %6012

2003:                                             ; preds = %1951
  %2004 = landingpad { ptr, i32 }
          cleanup
  br label %2007

2005:                                             ; preds = %1952
  %2006 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %212) #11
  br label %2007

2007:                                             ; preds = %2005, %2003
  %.pn1502 = phi { ptr, i32 } [ %2006, %2005 ], [ %2004, %2003 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %211) #11
  br label %6012

2008:                                             ; preds = %1953
  %2009 = landingpad { ptr, i32 }
          cleanup
  br label %6011

2010:                                             ; preds = %1954
  %2011 = landingpad { ptr, i32 }
          cleanup
  br label %2014

2012:                                             ; preds = %1955
  %2013 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %215) #11
  br label %2014

2014:                                             ; preds = %2012, %2010
  %.pn1504 = phi { ptr, i32 } [ %2013, %2012 ], [ %2011, %2010 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %214) #11
  br label %6011

2015:                                             ; preds = %1956
  %2016 = landingpad { ptr, i32 }
          cleanup
  br label %6010

2017:                                             ; preds = %1957
  %2018 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #11
  br label %6010

2019:                                             ; preds = %1958
  %2020 = landingpad { ptr, i32 }
          cleanup
  br label %6009

2021:                                             ; preds = %1959
  %2022 = landingpad { ptr, i32 }
          cleanup
  br label %6008

2023:                                             ; preds = %1962
  %2024 = landingpad { ptr, i32 }
          cleanup
  br label %6007

2025:                                             ; preds = %1963
  %2026 = landingpad { ptr, i32 }
          cleanup
  br label %6006

2027:                                             ; preds = %1964
  %2028 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #11
  br label %6006

2029:                                             ; preds = %1965
  %2030 = landingpad { ptr, i32 }
          cleanup
  br label %6005

2031:                                             ; preds = %1968
  %2032 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %223) #11
  br label %6005

2033:                                             ; preds = %1969
  %2034 = landingpad { ptr, i32 }
          cleanup
  br label %6004

2035:                                             ; preds = %1970
  %2036 = landingpad { ptr, i32 }
          cleanup
  br label %6003

2037:                                             ; preds = %1971
  %2038 = landingpad { ptr, i32 }
          cleanup
  br label %6002

2039:                                             ; preds = %1973
  %2040 = landingpad { ptr, i32 }
          cleanup
  br label %2080

2041:                                             ; preds = %1974
  %2042 = landingpad { ptr, i32 }
          cleanup
  br label %2045

2043:                                             ; preds = %1975
  %2044 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #11
  br label %2045

2045:                                             ; preds = %2043, %2041
  %.pn1506 = phi { ptr, i32 } [ %2044, %2043 ], [ %2042, %2041 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %230) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %228) #11
  br label %2080

2046:                                             ; preds = %1976
  %2047 = landingpad { ptr, i32 }
          cleanup
  br label %2079

2048:                                             ; preds = %1977
  %2049 = landingpad { ptr, i32 }
          cleanup
  br label %2078

2050:                                             ; preds = %1978
  %2051 = landingpad { ptr, i32 }
          cleanup
  br label %2054

2052:                                             ; preds = %1979
  %2053 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %234) #11
  br label %2054

2054:                                             ; preds = %2052, %2050
  %.pn1508 = phi { ptr, i32 } [ %2053, %2052 ], [ %2051, %2050 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %233) #11
  br label %2078

2055:                                             ; preds = %1980
  %2056 = landingpad { ptr, i32 }
          cleanup
  br label %2062

2057:                                             ; preds = %1982
  %2058 = landingpad { ptr, i32 }
          cleanup
  br label %2061

2059:                                             ; preds = %1983
  %2060 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %236) #11
  br label %2061

2061:                                             ; preds = %2059, %2057
  %.pn1510 = phi { ptr, i32 } [ %2060, %2059 ], [ %2058, %2057 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #11
  br label %2062

2062:                                             ; preds = %2061, %2055
  %.pn1510.pn = phi { ptr, i32 } [ %.pn1510, %2061 ], [ %2056, %2055 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %238) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %237) #11
  br label %2077

2063:                                             ; preds = %1984
  %2064 = landingpad { ptr, i32 }
          cleanup
  br label %2076

2065:                                             ; preds = %1986
  %2066 = landingpad { ptr, i32 }
          cleanup
  br label %2075

2067:                                             ; preds = %1989
  %2068 = landingpad { ptr, i32 }
          cleanup
  br label %2074

2069:                                             ; preds = %1990
  %2070 = landingpad { ptr, i32 }
          cleanup
  br label %2073

2071:                                             ; preds = %1991
  %2072 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %239) #11
  br label %2073

2073:                                             ; preds = %2071, %2069
  %.pn1513 = phi { ptr, i32 } [ %2072, %2071 ], [ %2070, %2069 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %240) #11
  br label %2074

2074:                                             ; preds = %2073, %2067
  %.pn1513.pn = phi { ptr, i32 } [ %.pn1513, %2073 ], [ %2068, %2067 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #11
  br label %2075

2075:                                             ; preds = %2074, %2065
  %.pn1513.pn.pn = phi { ptr, i32 } [ %.pn1513.pn, %2074 ], [ %2066, %2065 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %242) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %239) #11
  br label %2076

2076:                                             ; preds = %2075, %2063
  %.pn1513.pn.pn.pn = phi { ptr, i32 } [ %.pn1513.pn.pn, %2075 ], [ %2064, %2063 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %235) #11
  br label %2077

2077:                                             ; preds = %2076, %2062
  %.pn1513.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1513.pn.pn.pn, %2076 ], [ %.pn1510.pn, %2062 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %235) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %232) #11
  br label %2078

2078:                                             ; preds = %2077, %2054, %2048
  %.pn1513.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1513.pn.pn.pn.pn, %2077 ], [ %.pn1508, %2054 ], [ %2049, %2048 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %232) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %231) #11
  br label %2079

2079:                                             ; preds = %2078, %2046
  %.pn1513.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1513.pn.pn.pn.pn.pn, %2078 ], [ %2047, %2046 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %231) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #11
  br label %2080

2080:                                             ; preds = %2079, %2045, %2039
  %.pn1513.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1513.pn.pn.pn.pn.pn.pn, %2079 ], [ %.pn1506, %2045 ], [ %2040, %2039 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #11
  br label %6001

2081:                                             ; preds = %1992, %1972
  %2082 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1888)
  %2083 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2082, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2084 unwind label %2100

2084:                                             ; preds = %2081
  br i1 %2083, label %2085, label %2123

2085:                                             ; preds = %2084
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %243) #11
  %2086 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1888)
  %2087 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2086, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2088 unwind label %2102

2088:                                             ; preds = %2085
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(48) %243, ptr noundef nonnull align 8 dereferenceable(48) %2087)
          to label %2089 unwind label %2102

2089:                                             ; preds = %2088
  %2090 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %243) #11
  %2091 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %243) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %244) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %245)
          to label %2092 unwind label %2104

2092:                                             ; preds = %2089
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %246)
          to label %2093 unwind label %2106

2093:                                             ; preds = %2092
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %244, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %2090, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %245, ptr noundef nonnull %246)
          to label %2094 unwind label %2108

2094:                                             ; preds = %2093
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %246) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %245) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %247) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %248, ptr noundef nonnull align 8 dereferenceable(16) %2090)
          to label %2095 unwind label %2111

2095:                                             ; preds = %2094
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %247, ptr noundef nonnull %248, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %2096 unwind label %2113

2096:                                             ; preds = %2095
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %248) #11
  %2097 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %226)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %249) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS8_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %249, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.46, ptr noundef nonnull align 8 dereferenceable(16) %247, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %244, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %2091, ptr noundef nonnull align 1 dereferenceable(2) @.str.53)
          to label %2098 unwind label %2115

2098:                                             ; preds = %2096
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2097, ptr noundef nonnull align 8 dereferenceable(16) %249)
          to label %2099 unwind label %2117

2099:                                             ; preds = %2098
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %249) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %249) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %247) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %247) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %244) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %244) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %243) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %243) #11
  br label %2123

2100:                                             ; preds = %2081
  %2101 = landingpad { ptr, i32 }
          cleanup
  br label %6001

2102:                                             ; preds = %2088, %2085
  %2103 = landingpad { ptr, i32 }
          cleanup
  br label %2122

2104:                                             ; preds = %2089
  %2105 = landingpad { ptr, i32 }
          cleanup
  br label %2121

2106:                                             ; preds = %2092
  %2107 = landingpad { ptr, i32 }
          cleanup
  br label %2110

2108:                                             ; preds = %2093
  %2109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %246) #11
  br label %2110

2110:                                             ; preds = %2108, %2106
  %.pn1522 = phi { ptr, i32 } [ %2109, %2108 ], [ %2107, %2106 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %245) #11
  br label %2121

2111:                                             ; preds = %2094
  %2112 = landingpad { ptr, i32 }
          cleanup
  br label %2120

2113:                                             ; preds = %2095
  %2114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %248) #11
  br label %2120

2115:                                             ; preds = %2096
  %2116 = landingpad { ptr, i32 }
          cleanup
  br label %2119

2117:                                             ; preds = %2098
  %2118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %249) #11
  br label %2119

2119:                                             ; preds = %2117, %2115
  %.pn1524 = phi { ptr, i32 } [ %2118, %2117 ], [ %2116, %2115 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %249) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %247) #11
  br label %2120

2120:                                             ; preds = %2119, %2113, %2111
  %.pn1524.pn = phi { ptr, i32 } [ %.pn1524, %2119 ], [ %2114, %2113 ], [ %2112, %2111 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %247) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %244) #11
  br label %2121

2121:                                             ; preds = %2120, %2110, %2104
  %.pn1524.pn.pn = phi { ptr, i32 } [ %.pn1524.pn, %2120 ], [ %.pn1522, %2110 ], [ %2105, %2104 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %244) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %243) #11
  br label %2122

2122:                                             ; preds = %2121, %2102
  %.pn1524.pn.pn.pn = phi { ptr, i32 } [ %.pn1524.pn.pn, %2121 ], [ %2103, %2102 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %243) #11
  br label %6001

2123:                                             ; preds = %2099, %2084
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %250) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %251)
          to label %2124 unwind label %2154

2124:                                             ; preds = %2123
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %250, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %251)
          to label %2125 unwind label %2156

2125:                                             ; preds = %2124
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %251) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %252) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %252)
          to label %2126 unwind label %2158

2126:                                             ; preds = %2125
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %253) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %253)
          to label %2127 unwind label %2160

2127:                                             ; preds = %2126
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %254) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %255, ptr noundef nonnull align 8 dereferenceable(16) %250)
          to label %2128 unwind label %2162

2128:                                             ; preds = %2127
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %257) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %257)
          to label %2129 unwind label %2164

2129:                                             ; preds = %2128
  invoke void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA17_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSC_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SL_DpRKT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %254, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull %255, ptr noundef nonnull @.str.57, ptr noundef nonnull %256, ptr noundef nonnull align 1 dereferenceable(17) @.str.125, ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 1 dereferenceable(4) @.str.75)
          to label %2130 unwind label %2166

2130:                                             ; preds = %2129
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %257) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %255) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %258) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %259) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %260) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %262) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %262, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %262) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %261, ptr noundef nonnull align 8 dereferenceable(24) %262)
          to label %2131 unwind label %2169

2131:                                             ; preds = %2130
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %264) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %264)
          to label %2132 unwind label %2171

2132:                                             ; preds = %2131
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %260, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %261, ptr noundef nonnull %263)
          to label %2133 unwind label %2173

2133:                                             ; preds = %2132
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %265) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %259, ptr nonnull %260, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %265)
          to label %2134 unwind label %2175

2134:                                             ; preds = %2133
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %258, ptr noundef nonnull align 8 dereferenceable(24) %259)
          to label %2135 unwind label %2177

2135:                                             ; preds = %2134
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %259) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %265) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %264) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %262) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %262) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %259) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %266) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %267)
          to label %2136 unwind label %2181

2136:                                             ; preds = %2135
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %266, i32 noundef 6, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %267)
          to label %2137 unwind label %2183

2137:                                             ; preds = %2136
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %267) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %268) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %268)
          to label %2138 unwind label %2185

2138:                                             ; preds = %2137
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %269) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %270) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %270, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(17) @.str.126)
          to label %2139 unwind label %2187

2139:                                             ; preds = %2138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %271) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %272) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %272)
          to label %2140 unwind label %2189

2140:                                             ; preds = %2139
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %269, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %268, ptr noundef nonnull align 8 dereferenceable(16) %258, ptr noundef nonnull align 8 dereferenceable(16) %270, ptr noundef nonnull align 8 dereferenceable(32) %271)
          to label %2141 unwind label %2191

2141:                                             ; preds = %2140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %270) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %270) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %273) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %273)
          to label %2142 unwind label %2195

2142:                                             ; preds = %2141
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %274) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %275, ptr noundef nonnull align 8 dereferenceable(16) %250)
          to label %2143 unwind label %2197

2143:                                             ; preds = %2142
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %277) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %2144 unwind label %2199

2144:                                             ; preds = %2143
  invoke void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA21_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cSA_A2_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSD_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SM_DpRKT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %274, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %273, ptr noundef nonnull %275, ptr noundef nonnull @.str.57, ptr noundef nonnull %276, ptr noundef nonnull align 1 dereferenceable(21) @.str.128, ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 1 dereferenceable(3) @.str.78, ptr noundef nonnull align 8 dereferenceable(16) %269, ptr noundef nonnull align 1 dereferenceable(2) @.str.53)
          to label %2145 unwind label %2201

2145:                                             ; preds = %2144
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %277) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %275) #11
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %278) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %278)
          to label %2146 unwind label %2204

2146:                                             ; preds = %2145
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %279) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %279)
          to label %2147 unwind label %2206

2147:                                             ; preds = %2146
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %280) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %280)
          to label %2148 unwind label %2208

2148:                                             ; preds = %2147
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %281) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %281)
          to label %2149 unwind label %2210

2149:                                             ; preds = %2148
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %282) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %282)
          to label %2150 unwind label %2212

2150:                                             ; preds = %2149
  %2151 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1966)
  %2152 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %2151)
  %2153 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %2151)
  %.not15413577 = icmp eq ptr %2152, %2153
  br i1 %.not15413577, label %._crit_edge3581, label %.lr.ph3580

._crit_edge3581:                                  ; preds = %2235, %2150
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %298) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %298)
          to label %2285 unwind label %2304

2154:                                             ; preds = %2123
  %2155 = landingpad { ptr, i32 }
          cleanup
  br label %6000

2156:                                             ; preds = %2124
  %2157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %251) #11
  br label %6000

2158:                                             ; preds = %2125
  %2159 = landingpad { ptr, i32 }
          cleanup
  br label %5999

2160:                                             ; preds = %2126
  %2161 = landingpad { ptr, i32 }
          cleanup
  br label %5998

2162:                                             ; preds = %2127
  %2163 = landingpad { ptr, i32 }
          cleanup
  br label %5997

2164:                                             ; preds = %2128
  %2165 = landingpad { ptr, i32 }
          cleanup
  br label %2168

2166:                                             ; preds = %2129
  %2167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  br label %2168

2168:                                             ; preds = %2166, %2164
  %.pn1529 = phi { ptr, i32 } [ %2167, %2166 ], [ %2165, %2164 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %257) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %255) #11
  br label %5997

2169:                                             ; preds = %2130
  %2170 = landingpad { ptr, i32 }
          cleanup
  br label %2180

2171:                                             ; preds = %2131
  %2172 = landingpad { ptr, i32 }
          cleanup
  br label %2179

2173:                                             ; preds = %2132
  %2174 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2674

2175:                                             ; preds = %2133
  %2176 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2674.loopexit

2177:                                             ; preds = %2134
  %2178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %259) #11
  br label %.loopexit2674.loopexit

.loopexit2674.loopexit:                           ; preds = %2177, %2175
  %.pn1531 = phi { ptr, i32 } [ %2178, %2177 ], [ %2176, %2175 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %265) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #11
  br label %.loopexit2674

.loopexit2674:                                    ; preds = %.loopexit2674.loopexit, %2173
  %.pn1531.pn = phi { ptr, i32 } [ %2174, %2173 ], [ %.pn1531, %.loopexit2674.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #11
  br label %2179

2179:                                             ; preds = %.loopexit2674, %2171
  %.pn1531.pn.pn = phi { ptr, i32 } [ %.pn1531.pn, %.loopexit2674 ], [ %2172, %2171 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %264) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %261) #11
  br label %2180

2180:                                             ; preds = %2179, %2169
  %.pn1531.pn.pn.pn = phi { ptr, i32 } [ %.pn1531.pn.pn, %2179 ], [ %2170, %2169 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %262) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %262) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %260) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %259) #11
  br label %5996

2181:                                             ; preds = %2135
  %2182 = landingpad { ptr, i32 }
          cleanup
  br label %5995

2183:                                             ; preds = %2136
  %2184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %267) #11
  br label %5995

2185:                                             ; preds = %2137
  %2186 = landingpad { ptr, i32 }
          cleanup
  br label %5994

2187:                                             ; preds = %2138
  %2188 = landingpad { ptr, i32 }
          cleanup
  br label %2194

2189:                                             ; preds = %2139
  %2190 = landingpad { ptr, i32 }
          cleanup
  br label %2193

2191:                                             ; preds = %2140
  %2192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #11
  br label %2193

2193:                                             ; preds = %2191, %2189
  %.pn1536 = phi { ptr, i32 } [ %2192, %2191 ], [ %2190, %2189 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %270) #11
  br label %2194

2194:                                             ; preds = %2193, %2187
  %.pn1536.pn = phi { ptr, i32 } [ %.pn1536, %2193 ], [ %2188, %2187 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %270) #11
  br label %5993

2195:                                             ; preds = %2141
  %2196 = landingpad { ptr, i32 }
          cleanup
  br label %5992

2197:                                             ; preds = %2142
  %2198 = landingpad { ptr, i32 }
          cleanup
  br label %5991

2199:                                             ; preds = %2143
  %2200 = landingpad { ptr, i32 }
          cleanup
  br label %2203

2201:                                             ; preds = %2144
  %2202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #11
  br label %2203

2203:                                             ; preds = %2201, %2199
  %.pn1539 = phi { ptr, i32 } [ %2202, %2201 ], [ %2200, %2199 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %277) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %275) #11
  br label %5991

2204:                                             ; preds = %2145
  %2205 = landingpad { ptr, i32 }
          cleanup
  br label %5990

2206:                                             ; preds = %2146
  %2207 = landingpad { ptr, i32 }
          cleanup
  br label %5989

2208:                                             ; preds = %2147
  %2209 = landingpad { ptr, i32 }
          cleanup
  br label %5988

2210:                                             ; preds = %2148
  %2211 = landingpad { ptr, i32 }
          cleanup
  br label %5987

2212:                                             ; preds = %2149
  %2213 = landingpad { ptr, i32 }
          cleanup
  br label %5986

.lr.ph3580:                                       ; preds = %2150, %2235
  %.014033578 = phi ptr [ %2236, %2235 ], [ %2152, %2150 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %283) #11
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %283, ptr noundef nonnull align 8 dereferenceable(48) %.014033578)
          to label %2214 unwind label %2237

2214:                                             ; preds = %.lr.ph3580
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %284) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(32) %283)
          to label %2215 unwind label %2239

2215:                                             ; preds = %2214
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %285) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %287) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %288) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %289) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %289, ptr noundef nonnull align 8 dereferenceable(32) %284)
          to label %2216 unwind label %2241

2216:                                             ; preds = %2215
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %290) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %288, ptr nonnull %289, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %290)
          to label %2217 unwind label %2243

2217:                                             ; preds = %2216
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %287, ptr noundef nonnull align 8 dereferenceable(24) %288)
          to label %2218 unwind label %2245

2218:                                             ; preds = %2217
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %286, ptr noundef nonnull align 8 dereferenceable(16) %287)
          to label %2219 unwind label %2247

2219:                                             ; preds = %2218
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %285, i32 noundef 9, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %286)
          to label %2220 unwind label %2249

2220:                                             ; preds = %2219
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %278, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(16) %285)
          to label %2221 unwind label %2251

2221:                                             ; preds = %2220
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %285) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %286) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %287) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %288) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %290) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %289) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %288) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %287) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %285) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %291) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %291)
          to label %2222 unwind label %2256

2222:                                             ; preds = %2221
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %279, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(16) %291)
          to label %2223 unwind label %2258

2223:                                             ; preds = %2222
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %291) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %291) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %292) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %292)
          to label %2224 unwind label %2261

2224:                                             ; preds = %2223
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %280, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(16) %292)
          to label %2225 unwind label %2263

2225:                                             ; preds = %2224
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %292) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %292) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %293) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %293)
          to label %2226 unwind label %2266

2226:                                             ; preds = %2225
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %281, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(16) %293)
          to label %2227 unwind label %2268

2227:                                             ; preds = %2226
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %293) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %293) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %294) #11
  %2228 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %281, ptr noundef nonnull align 8 dereferenceable(32) %284)
          to label %2229 unwind label %2271

2229:                                             ; preds = %2227
  %2230 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %278, ptr noundef nonnull align 8 dereferenceable(32) %284)
          to label %2231 unwind label %2271

2231:                                             ; preds = %2229
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %295, ptr noundef nonnull align 8 dereferenceable(16) %2230)
          to label %2232 unwind label %2271

2232:                                             ; preds = %2231
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %297) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %297)
          to label %2233 unwind label %2273

2233:                                             ; preds = %2232
  invoke void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA17_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSC_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SL_DpRKT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %294, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %2228, ptr noundef nonnull %295, ptr noundef nonnull @.str.57, ptr noundef nonnull %296, ptr noundef nonnull align 1 dereferenceable(17) @.str.125, ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 1 dereferenceable(4) @.str.75)
          to label %2234 unwind label %2275

2234:                                             ; preds = %2233
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEE6insertERKS6_RKSC_(ptr noundef nonnull align 8 dereferenceable(200) %282, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(16) %294)
          to label %2235 unwind label %2277

2235:                                             ; preds = %2234
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %294) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %297) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %295) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %294) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %283) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %283) #11
  %2236 = getelementptr inbounds i8, ptr %.014033578, i64 48
  %.not1541 = icmp eq ptr %2236, %2153
  br i1 %.not1541, label %._crit_edge3581, label %.lr.ph3580

2237:                                             ; preds = %.lr.ph3580
  %2238 = landingpad { ptr, i32 }
          cleanup
  br label %2284

2239:                                             ; preds = %2214
  %2240 = landingpad { ptr, i32 }
          cleanup
  br label %2283

2241:                                             ; preds = %2215
  %2242 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2673

2243:                                             ; preds = %2216
  %2244 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2673.loopexit

2245:                                             ; preds = %2217
  %2246 = landingpad { ptr, i32 }
          cleanup
  br label %2255

2247:                                             ; preds = %2218
  %2248 = landingpad { ptr, i32 }
          cleanup
  br label %2254

2249:                                             ; preds = %2219
  %2250 = landingpad { ptr, i32 }
          cleanup
  br label %2253

2251:                                             ; preds = %2220
  %2252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %285) #11
  br label %2253

2253:                                             ; preds = %2251, %2249
  %.pn2393 = phi { ptr, i32 } [ %2252, %2251 ], [ %2250, %2249 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %286) #11
  br label %2254

2254:                                             ; preds = %2253, %2247
  %.pn2393.pn = phi { ptr, i32 } [ %.pn2393, %2253 ], [ %2248, %2247 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %287) #11
  br label %2255

2255:                                             ; preds = %2254, %2245
  %.pn2393.pn.pn = phi { ptr, i32 } [ %.pn2393.pn, %2254 ], [ %2246, %2245 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %288) #11
  br label %.loopexit2673.loopexit

.loopexit2673.loopexit:                           ; preds = %2255, %2243
  %.pn2393.pn.pn.pn = phi { ptr, i32 } [ %.pn2393.pn.pn, %2255 ], [ %2244, %2243 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %290) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #11
  br label %.loopexit2673

.loopexit2673:                                    ; preds = %.loopexit2673.loopexit, %2241
  %.pn2393.pn.pn.pn.pn = phi { ptr, i32 } [ %2242, %2241 ], [ %.pn2393.pn.pn.pn, %.loopexit2673.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %289) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %288) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %287) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %285) #11
  br label %2282

2256:                                             ; preds = %2221
  %2257 = landingpad { ptr, i32 }
          cleanup
  br label %2260

2258:                                             ; preds = %2222
  %2259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %291) #11
  br label %2260

2260:                                             ; preds = %2258, %2256
  %.pn2399 = phi { ptr, i32 } [ %2259, %2258 ], [ %2257, %2256 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %291) #11
  br label %2282

2261:                                             ; preds = %2223
  %2262 = landingpad { ptr, i32 }
          cleanup
  br label %2265

2263:                                             ; preds = %2224
  %2264 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %292) #11
  br label %2265

2265:                                             ; preds = %2263, %2261
  %.pn2401 = phi { ptr, i32 } [ %2264, %2263 ], [ %2262, %2261 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %292) #11
  br label %2282

2266:                                             ; preds = %2225
  %2267 = landingpad { ptr, i32 }
          cleanup
  br label %2270

2268:                                             ; preds = %2226
  %2269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %293) #11
  br label %2270

2270:                                             ; preds = %2268, %2266
  %.pn2403 = phi { ptr, i32 } [ %2269, %2268 ], [ %2267, %2266 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %293) #11
  br label %2282

2271:                                             ; preds = %2231, %2229, %2227
  %2272 = landingpad { ptr, i32 }
          cleanup
  br label %2281

2273:                                             ; preds = %2232
  %2274 = landingpad { ptr, i32 }
          cleanup
  br label %2280

2275:                                             ; preds = %2233
  %2276 = landingpad { ptr, i32 }
          cleanup
  br label %2279

2277:                                             ; preds = %2234
  %2278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %294) #11
  br label %2279

2279:                                             ; preds = %2277, %2275
  %.pn2405 = phi { ptr, i32 } [ %2278, %2277 ], [ %2276, %2275 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #11
  br label %2280

2280:                                             ; preds = %2279, %2273
  %.pn2405.pn = phi { ptr, i32 } [ %.pn2405, %2279 ], [ %2274, %2273 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %297) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %295) #11
  br label %2281

2281:                                             ; preds = %2280, %2271
  %.pn2405.pn.pn = phi { ptr, i32 } [ %.pn2405.pn, %2280 ], [ %2272, %2271 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %294) #11
  br label %2282

2282:                                             ; preds = %2281, %2270, %2265, %2260, %.loopexit2673
  %.pn2405.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn, %2281 ], [ %.pn2403, %2270 ], [ %.pn2401, %2265 ], [ %.pn2399, %2260 ], [ %.pn2393.pn.pn.pn.pn, %.loopexit2673 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #11
  br label %2283

2283:                                             ; preds = %2282, %2239
  %.pn2405.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn, %2282 ], [ %2240, %2239 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %283) #11
  br label %2284

2284:                                             ; preds = %2283, %2237
  %.pn2405.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn, %2283 ], [ %2238, %2237 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %283) #11
  br label %5985

2285:                                             ; preds = %._crit_edge3581
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %299) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %299)
          to label %2286 unwind label %2306

2286:                                             ; preds = %2285
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %300) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %300)
          to label %2287 unwind label %2308

2287:                                             ; preds = %2286
  br i1 %1961, label %2288, label %2361

2288:                                             ; preds = %2287
  %2289 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %2290 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2289, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2291 unwind label %2310

2291:                                             ; preds = %2288
  %2292 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2290)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %301) #11
  %2293 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2292)
          to label %2294 unwind label %2312

2294:                                             ; preds = %2291
  %2295 = extractvalue { ptr, i64 } %2293, 0
  store ptr %2295, ptr %301, align 8
  %2296 = extractvalue { ptr, i64 } %2293, 1
  store i64 %2296, ptr %1889, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %302) #11
  %2297 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2292)
  %2298 = extractvalue { ptr, i64 } %2297, 0
  store ptr %2298, ptr %302, align 8
  %2299 = extractvalue { ptr, i64 } %2297, 1
  store i64 %2299, ptr %1890, align 8
  br label %2300

2300:                                             ; preds = %2330, %2294
  %2301 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %301, ptr noundef nonnull align 8 dereferenceable(16) %302)
          to label %2302 unwind label %2314

2302:                                             ; preds = %2300
  br i1 %2301, label %2316, label %2303

2303:                                             ; preds = %2302
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %302) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %301) #11
  br label %2361

2304:                                             ; preds = %._crit_edge3581
  %2305 = landingpad { ptr, i32 }
          cleanup
  br label %5984

2306:                                             ; preds = %2285
  %2307 = landingpad { ptr, i32 }
          cleanup
  br label %5983

2308:                                             ; preds = %2286
  %2309 = landingpad { ptr, i32 }
          cleanup
  br label %5982

2310:                                             ; preds = %2288
  %2311 = landingpad { ptr, i32 }
          cleanup
  br label %5981

2312:                                             ; preds = %2291
  %2313 = landingpad { ptr, i32 }
          cleanup
  br label %2360

2314:                                             ; preds = %2330, %2300
  %2315 = landingpad { ptr, i32 }
          cleanup
  br label %2359

2316:                                             ; preds = %2302
  %2317 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %301)
          to label %2318 unwind label %2332

2318:                                             ; preds = %2316
  %2319 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2317) #11
  %2320 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2317) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %303) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %305) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %306) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %307) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull align 8 dereferenceable(32) %2319)
          to label %2321 unwind label %2334

2321:                                             ; preds = %2318
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %308) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %306, ptr nonnull %307, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %308)
          to label %2322 unwind label %2336

2322:                                             ; preds = %2321
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %305, ptr noundef nonnull align 8 dereferenceable(24) %306)
          to label %2323 unwind label %2338

2323:                                             ; preds = %2322
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %304, ptr noundef nonnull align 8 dereferenceable(16) %305)
          to label %2324 unwind label %2340

2324:                                             ; preds = %2323
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %303, i32 noundef 11, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %304)
          to label %2325 unwind label %2342

2325:                                             ; preds = %2324
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %298, ptr noundef nonnull align 8 dereferenceable(32) %2319, ptr noundef nonnull align 8 dereferenceable(16) %303)
          to label %2326 unwind label %2344

2326:                                             ; preds = %2325
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %304) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %305) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %306) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %308) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %306) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %305) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %303) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %309) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %309)
          to label %2327 unwind label %2349

2327:                                             ; preds = %2326
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %299, ptr noundef nonnull align 8 dereferenceable(32) %2319, ptr noundef nonnull align 8 dereferenceable(16) %309)
          to label %2328 unwind label %2351

2328:                                             ; preds = %2327
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %309) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %309) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %310) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %310)
          to label %2329 unwind label %2354

2329:                                             ; preds = %2328
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %300, ptr noundef nonnull align 8 dereferenceable(32) %2319, ptr noundef nonnull align 8 dereferenceable(16) %310)
          to label %2330 unwind label %2356

2330:                                             ; preds = %2329
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %310) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %310) #11
  %2331 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %301)
          to label %2300 unwind label %2314

2332:                                             ; preds = %2316
  %2333 = landingpad { ptr, i32 }
          cleanup
  br label %2359

2334:                                             ; preds = %2318
  %2335 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2649

2336:                                             ; preds = %2321
  %2337 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2649.loopexit

2338:                                             ; preds = %2322
  %2339 = landingpad { ptr, i32 }
          cleanup
  br label %2348

2340:                                             ; preds = %2323
  %2341 = landingpad { ptr, i32 }
          cleanup
  br label %2347

2342:                                             ; preds = %2324
  %2343 = landingpad { ptr, i32 }
          cleanup
  br label %2346

2344:                                             ; preds = %2325
  %2345 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %303) #11
  br label %2346

2346:                                             ; preds = %2344, %2342
  %.pn2373 = phi { ptr, i32 } [ %2345, %2344 ], [ %2343, %2342 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %304) #11
  br label %2347

2347:                                             ; preds = %2346, %2340
  %.pn2373.pn = phi { ptr, i32 } [ %.pn2373, %2346 ], [ %2341, %2340 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %305) #11
  br label %2348

2348:                                             ; preds = %2347, %2338
  %.pn2373.pn.pn = phi { ptr, i32 } [ %.pn2373.pn, %2347 ], [ %2339, %2338 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %306) #11
  br label %.loopexit2649.loopexit

.loopexit2649.loopexit:                           ; preds = %2348, %2336
  %.pn2373.pn.pn.pn = phi { ptr, i32 } [ %.pn2373.pn.pn, %2348 ], [ %2337, %2336 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %308) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #11
  br label %.loopexit2649

.loopexit2649:                                    ; preds = %.loopexit2649.loopexit, %2334
  %.pn2373.pn.pn.pn.pn = phi { ptr, i32 } [ %2335, %2334 ], [ %.pn2373.pn.pn.pn, %.loopexit2649.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %306) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %305) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %303) #11
  br label %2359

2349:                                             ; preds = %2326
  %2350 = landingpad { ptr, i32 }
          cleanup
  br label %2353

2351:                                             ; preds = %2327
  %2352 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %309) #11
  br label %2353

2353:                                             ; preds = %2351, %2349
  %.pn2379 = phi { ptr, i32 } [ %2352, %2351 ], [ %2350, %2349 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %309) #11
  br label %2359

2354:                                             ; preds = %2328
  %2355 = landingpad { ptr, i32 }
          cleanup
  br label %2358

2356:                                             ; preds = %2329
  %2357 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %310) #11
  br label %2358

2358:                                             ; preds = %2356, %2354
  %.pn2381 = phi { ptr, i32 } [ %2357, %2356 ], [ %2355, %2354 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %310) #11
  br label %2359

2359:                                             ; preds = %2332, %2358, %2353, %.loopexit2649, %2314
  %.pn2385 = phi { ptr, i32 } [ %2315, %2314 ], [ %2333, %2332 ], [ %.pn2381, %2358 ], [ %.pn2379, %2353 ], [ %.pn2373.pn.pn.pn.pn, %.loopexit2649 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %302) #11
  br label %2360

2360:                                             ; preds = %2359, %2312
  %.pn2385.pn = phi { ptr, i32 } [ %.pn2385, %2359 ], [ %2313, %2312 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %301) #11
  br label %5981

2361:                                             ; preds = %2303, %2287
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %311) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %311)
          to label %2362 unwind label %2381

2362:                                             ; preds = %2361
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %312) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %312)
          to label %2363 unwind label %2383

2363:                                             ; preds = %2362
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %313) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %313)
          to label %2364 unwind label %2385

2364:                                             ; preds = %2363
  br i1 %1961, label %2365, label %2438

2365:                                             ; preds = %2364
  %2366 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %2367 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2366, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2368 unwind label %2387

2368:                                             ; preds = %2365
  %2369 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2367)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %314) #11
  %2370 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2369)
          to label %2371 unwind label %2389

2371:                                             ; preds = %2368
  %2372 = extractvalue { ptr, i64 } %2370, 0
  store ptr %2372, ptr %314, align 8
  %2373 = extractvalue { ptr, i64 } %2370, 1
  store i64 %2373, ptr %1891, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %315) #11
  %2374 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2369)
  %2375 = extractvalue { ptr, i64 } %2374, 0
  store ptr %2375, ptr %315, align 8
  %2376 = extractvalue { ptr, i64 } %2374, 1
  store i64 %2376, ptr %1892, align 8
  br label %2377

2377:                                             ; preds = %2407, %2371
  %2378 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %314, ptr noundef nonnull align 8 dereferenceable(16) %315)
          to label %2379 unwind label %2391

2379:                                             ; preds = %2377
  br i1 %2378, label %2393, label %2380

2380:                                             ; preds = %2379
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %315) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %314) #11
  br label %2438

2381:                                             ; preds = %2361
  %2382 = landingpad { ptr, i32 }
          cleanup
  br label %5980

2383:                                             ; preds = %2362
  %2384 = landingpad { ptr, i32 }
          cleanup
  br label %5979

2385:                                             ; preds = %2363
  %2386 = landingpad { ptr, i32 }
          cleanup
  br label %5978

2387:                                             ; preds = %2365
  %2388 = landingpad { ptr, i32 }
          cleanup
  br label %5977

2389:                                             ; preds = %2368
  %2390 = landingpad { ptr, i32 }
          cleanup
  br label %2437

2391:                                             ; preds = %2407, %2377
  %2392 = landingpad { ptr, i32 }
          cleanup
  br label %2436

2393:                                             ; preds = %2379
  %2394 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %314)
          to label %2395 unwind label %2409

2395:                                             ; preds = %2393
  %2396 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2394) #11
  %2397 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2394) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %316) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %318) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %319) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %320) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %320, ptr noundef nonnull align 8 dereferenceable(32) %2396)
          to label %2398 unwind label %2411

2398:                                             ; preds = %2395
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %321) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %321) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %319, ptr nonnull %320, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %321)
          to label %2399 unwind label %2413

2399:                                             ; preds = %2398
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %318, ptr noundef nonnull align 8 dereferenceable(24) %319)
          to label %2400 unwind label %2415

2400:                                             ; preds = %2399
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %317, ptr noundef nonnull align 8 dereferenceable(16) %318)
          to label %2401 unwind label %2417

2401:                                             ; preds = %2400
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %316, i32 noundef 13, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %317)
          to label %2402 unwind label %2419

2402:                                             ; preds = %2401
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %311, ptr noundef nonnull align 8 dereferenceable(32) %2396, ptr noundef nonnull align 8 dereferenceable(16) %316)
          to label %2403 unwind label %2421

2403:                                             ; preds = %2402
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %316) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %317) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %318) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %319) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %321) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %321) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %320) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %319) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %318) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %316) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %322) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %322)
          to label %2404 unwind label %2426

2404:                                             ; preds = %2403
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %312, ptr noundef nonnull align 8 dereferenceable(32) %2396, ptr noundef nonnull align 8 dereferenceable(16) %322)
          to label %2405 unwind label %2428

2405:                                             ; preds = %2404
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %322) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %322) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %323) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %323)
          to label %2406 unwind label %2431

2406:                                             ; preds = %2405
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %313, ptr noundef nonnull align 8 dereferenceable(32) %2396, ptr noundef nonnull align 8 dereferenceable(16) %323)
          to label %2407 unwind label %2433

2407:                                             ; preds = %2406
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %323) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %323) #11
  %2408 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %314)
          to label %2377 unwind label %2391

2409:                                             ; preds = %2393
  %2410 = landingpad { ptr, i32 }
          cleanup
  br label %2436

2411:                                             ; preds = %2395
  %2412 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2650

2413:                                             ; preds = %2398
  %2414 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2650.loopexit

2415:                                             ; preds = %2399
  %2416 = landingpad { ptr, i32 }
          cleanup
  br label %2425

2417:                                             ; preds = %2400
  %2418 = landingpad { ptr, i32 }
          cleanup
  br label %2424

2419:                                             ; preds = %2401
  %2420 = landingpad { ptr, i32 }
          cleanup
  br label %2423

2421:                                             ; preds = %2402
  %2422 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %316) #11
  br label %2423

2423:                                             ; preds = %2421, %2419
  %.pn2353 = phi { ptr, i32 } [ %2422, %2421 ], [ %2420, %2419 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %317) #11
  br label %2424

2424:                                             ; preds = %2423, %2417
  %.pn2353.pn = phi { ptr, i32 } [ %.pn2353, %2423 ], [ %2418, %2417 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %318) #11
  br label %2425

2425:                                             ; preds = %2424, %2415
  %.pn2353.pn.pn = phi { ptr, i32 } [ %.pn2353.pn, %2424 ], [ %2416, %2415 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %319) #11
  br label %.loopexit2650.loopexit

.loopexit2650.loopexit:                           ; preds = %2425, %2413
  %.pn2353.pn.pn.pn = phi { ptr, i32 } [ %.pn2353.pn.pn, %2425 ], [ %2414, %2413 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %321) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %321) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #11
  br label %.loopexit2650

.loopexit2650:                                    ; preds = %.loopexit2650.loopexit, %2411
  %.pn2353.pn.pn.pn.pn = phi { ptr, i32 } [ %2412, %2411 ], [ %.pn2353.pn.pn.pn, %.loopexit2650.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %320) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %319) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %318) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %316) #11
  br label %2436

2426:                                             ; preds = %2403
  %2427 = landingpad { ptr, i32 }
          cleanup
  br label %2430

2428:                                             ; preds = %2404
  %2429 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %322) #11
  br label %2430

2430:                                             ; preds = %2428, %2426
  %.pn2359 = phi { ptr, i32 } [ %2429, %2428 ], [ %2427, %2426 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %322) #11
  br label %2436

2431:                                             ; preds = %2405
  %2432 = landingpad { ptr, i32 }
          cleanup
  br label %2435

2433:                                             ; preds = %2406
  %2434 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %323) #11
  br label %2435

2435:                                             ; preds = %2433, %2431
  %.pn2361 = phi { ptr, i32 } [ %2434, %2433 ], [ %2432, %2431 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %323) #11
  br label %2436

2436:                                             ; preds = %2409, %2435, %2430, %.loopexit2650, %2391
  %.pn2365 = phi { ptr, i32 } [ %2392, %2391 ], [ %2410, %2409 ], [ %.pn2361, %2435 ], [ %.pn2359, %2430 ], [ %.pn2353.pn.pn.pn.pn, %.loopexit2650 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %315) #11
  br label %2437

2437:                                             ; preds = %2436, %2389
  %.pn2365.pn = phi { ptr, i32 } [ %.pn2365, %2436 ], [ %2390, %2389 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %314) #11
  br label %5977

2438:                                             ; preds = %2380, %2364
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %324) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %324)
          to label %2439 unwind label %2458

2439:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %325) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %325)
          to label %2440 unwind label %2460

2440:                                             ; preds = %2439
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %326) #11
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(200) %326)
          to label %2441 unwind label %2462

2441:                                             ; preds = %2440
  br i1 %1961, label %2442, label %2515

2442:                                             ; preds = %2441
  %2443 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %2444 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2443, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2445 unwind label %2464

2445:                                             ; preds = %2442
  %2446 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2444)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %327) #11
  %2447 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2446)
          to label %2448 unwind label %2466

2448:                                             ; preds = %2445
  %2449 = extractvalue { ptr, i64 } %2447, 0
  store ptr %2449, ptr %327, align 8
  %2450 = extractvalue { ptr, i64 } %2447, 1
  store i64 %2450, ptr %1893, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %328) #11
  %2451 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2446)
  %2452 = extractvalue { ptr, i64 } %2451, 0
  store ptr %2452, ptr %328, align 8
  %2453 = extractvalue { ptr, i64 } %2451, 1
  store i64 %2453, ptr %1894, align 8
  br label %2454

2454:                                             ; preds = %2484, %2448
  %2455 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %327, ptr noundef nonnull align 8 dereferenceable(16) %328)
          to label %2456 unwind label %2468

2456:                                             ; preds = %2454
  br i1 %2455, label %2470, label %2457

2457:                                             ; preds = %2456
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %328) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %327) #11
  br label %2515

2458:                                             ; preds = %2438
  %2459 = landingpad { ptr, i32 }
          cleanup
  br label %5976

2460:                                             ; preds = %2439
  %2461 = landingpad { ptr, i32 }
          cleanup
  br label %5975

2462:                                             ; preds = %2440
  %2463 = landingpad { ptr, i32 }
          cleanup
  br label %5974

2464:                                             ; preds = %2442
  %2465 = landingpad { ptr, i32 }
          cleanup
  br label %5973

2466:                                             ; preds = %2445
  %2467 = landingpad { ptr, i32 }
          cleanup
  br label %2514

2468:                                             ; preds = %2484, %2454
  %2469 = landingpad { ptr, i32 }
          cleanup
  br label %2513

2470:                                             ; preds = %2456
  %2471 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %327)
          to label %2472 unwind label %2486

2472:                                             ; preds = %2470
  %2473 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2471) #11
  %2474 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2471) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %329) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %331) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %332) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %333) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %333, ptr noundef nonnull align 8 dereferenceable(32) %2473)
          to label %2475 unwind label %2488

2475:                                             ; preds = %2472
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %334) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %332, ptr nonnull %333, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %334)
          to label %2476 unwind label %2490

2476:                                             ; preds = %2475
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %331, ptr noundef nonnull align 8 dereferenceable(24) %332)
          to label %2477 unwind label %2492

2477:                                             ; preds = %2476
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %330, ptr noundef nonnull align 8 dereferenceable(16) %331)
          to label %2478 unwind label %2494

2478:                                             ; preds = %2477
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %329, i32 noundef 13, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %330)
          to label %2479 unwind label %2496

2479:                                             ; preds = %2478
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE6insertERKS6_RKSA_(ptr noundef nonnull align 8 dereferenceable(200) %324, ptr noundef nonnull align 8 dereferenceable(32) %2473, ptr noundef nonnull align 8 dereferenceable(16) %329)
          to label %2480 unwind label %2498

2480:                                             ; preds = %2479
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %329) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %330) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %331) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %332) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %334) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %332) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %331) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %329) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %335) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %335)
          to label %2481 unwind label %2503

2481:                                             ; preds = %2480
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %325, ptr noundef nonnull align 8 dereferenceable(32) %2473, ptr noundef nonnull align 8 dereferenceable(16) %335)
          to label %2482 unwind label %2505

2482:                                             ; preds = %2481
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %335) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %335) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %336) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %336)
          to label %2483 unwind label %2508

2483:                                             ; preds = %2482
  invoke void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200) %326, ptr noundef nonnull align 8 dereferenceable(32) %2473, ptr noundef nonnull align 8 dereferenceable(16) %336)
          to label %2484 unwind label %2510

2484:                                             ; preds = %2483
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %336) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %336) #11
  %2485 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %327)
          to label %2454 unwind label %2468

2486:                                             ; preds = %2470
  %2487 = landingpad { ptr, i32 }
          cleanup
  br label %2513

2488:                                             ; preds = %2472
  %2489 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2651

2490:                                             ; preds = %2475
  %2491 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2651.loopexit

2492:                                             ; preds = %2476
  %2493 = landingpad { ptr, i32 }
          cleanup
  br label %2502

2494:                                             ; preds = %2477
  %2495 = landingpad { ptr, i32 }
          cleanup
  br label %2501

2496:                                             ; preds = %2478
  %2497 = landingpad { ptr, i32 }
          cleanup
  br label %2500

2498:                                             ; preds = %2479
  %2499 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %329) #11
  br label %2500

2500:                                             ; preds = %2498, %2496
  %.pn2333 = phi { ptr, i32 } [ %2499, %2498 ], [ %2497, %2496 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %330) #11
  br label %2501

2501:                                             ; preds = %2500, %2494
  %.pn2333.pn = phi { ptr, i32 } [ %.pn2333, %2500 ], [ %2495, %2494 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %331) #11
  br label %2502

2502:                                             ; preds = %2501, %2492
  %.pn2333.pn.pn = phi { ptr, i32 } [ %.pn2333.pn, %2501 ], [ %2493, %2492 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %332) #11
  br label %.loopexit2651.loopexit

.loopexit2651.loopexit:                           ; preds = %2502, %2490
  %.pn2333.pn.pn.pn = phi { ptr, i32 } [ %.pn2333.pn.pn, %2502 ], [ %2491, %2490 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %334) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #11
  br label %.loopexit2651

.loopexit2651:                                    ; preds = %.loopexit2651.loopexit, %2488
  %.pn2333.pn.pn.pn.pn = phi { ptr, i32 } [ %2489, %2488 ], [ %.pn2333.pn.pn.pn, %.loopexit2651.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %332) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %331) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %329) #11
  br label %2513

2503:                                             ; preds = %2480
  %2504 = landingpad { ptr, i32 }
          cleanup
  br label %2507

2505:                                             ; preds = %2481
  %2506 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %335) #11
  br label %2507

2507:                                             ; preds = %2505, %2503
  %.pn2339 = phi { ptr, i32 } [ %2506, %2505 ], [ %2504, %2503 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %335) #11
  br label %2513

2508:                                             ; preds = %2482
  %2509 = landingpad { ptr, i32 }
          cleanup
  br label %2512

2510:                                             ; preds = %2483
  %2511 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %336) #11
  br label %2512

2512:                                             ; preds = %2510, %2508
  %.pn2341 = phi { ptr, i32 } [ %2511, %2510 ], [ %2509, %2508 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %336) #11
  br label %2513

2513:                                             ; preds = %2486, %2512, %2507, %.loopexit2651, %2468
  %.pn2345 = phi { ptr, i32 } [ %2469, %2468 ], [ %2487, %2486 ], [ %.pn2341, %2512 ], [ %.pn2339, %2507 ], [ %.pn2333.pn.pn.pn.pn, %.loopexit2651 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %328) #11
  br label %2514

2514:                                             ; preds = %2513, %2466
  %.pn2345.pn = phi { ptr, i32 } [ %.pn2345, %2513 ], [ %2467, %2466 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %327) #11
  br label %5973

2515:                                             ; preds = %2457, %2441
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %337) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %338) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %339) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %341) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %341, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %341) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %340, ptr noundef nonnull align 8 dereferenceable(24) %341)
          to label %2516 unwind label %2542

2516:                                             ; preds = %2515
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %343) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %2517 unwind label %2544

2517:                                             ; preds = %2516
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %339, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %340, ptr noundef nonnull %342)
          to label %2518 unwind label %2546

2518:                                             ; preds = %2517
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %344) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %338, ptr nonnull %339, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %344)
          to label %2519 unwind label %2548

2519:                                             ; preds = %2518
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %337, ptr noundef nonnull align 8 dereferenceable(24) %338)
          to label %2520 unwind label %2550

2520:                                             ; preds = %2519
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %338) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %344) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %340) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %341) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %341) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %338) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %345) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %346)
          to label %2521 unwind label %2554

2521:                                             ; preds = %2520
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %345, i32 noundef 19, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %346)
          to label %2522 unwind label %2556

2522:                                             ; preds = %2521
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %346) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %347) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %347)
          to label %2523 unwind label %2558

2523:                                             ; preds = %2522
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %348) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %348)
          to label %2524 unwind label %2560

2524:                                             ; preds = %2523
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %349) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %349)
          to label %2525 unwind label %2562

2525:                                             ; preds = %2524
  br i1 %1961, label %2526, label %2607

2526:                                             ; preds = %2525
  %2527 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %2528 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2527, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2529 unwind label %2564

2529:                                             ; preds = %2526
  %2530 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2528)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %350) #11
  %2531 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2530)
          to label %2532 unwind label %2566

2532:                                             ; preds = %2529
  %2533 = extractvalue { ptr, i64 } %2531, 0
  store ptr %2533, ptr %350, align 8
  %2534 = extractvalue { ptr, i64 } %2531, 1
  store i64 %2534, ptr %1895, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %351) #11
  %2535 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2530)
  %2536 = extractvalue { ptr, i64 } %2535, 0
  store ptr %2536, ptr %351, align 8
  %2537 = extractvalue { ptr, i64 } %2535, 1
  store i64 %2537, ptr %1896, align 8
  br label %2538

2538:                                             ; preds = %2582, %2532
  %2539 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %350, ptr noundef nonnull align 8 dereferenceable(16) %351)
          to label %2540 unwind label %2568

2540:                                             ; preds = %2538
  br i1 %2539, label %2570, label %2541

2541:                                             ; preds = %2540
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %351) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %350) #11
  br label %2607

2542:                                             ; preds = %2515
  %2543 = landingpad { ptr, i32 }
          cleanup
  br label %2553

2544:                                             ; preds = %2516
  %2545 = landingpad { ptr, i32 }
          cleanup
  br label %2552

2546:                                             ; preds = %2517
  %2547 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2672

2548:                                             ; preds = %2518
  %2549 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2672.loopexit

2550:                                             ; preds = %2519
  %2551 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %338) #11
  br label %.loopexit2672.loopexit

.loopexit2672.loopexit:                           ; preds = %2550, %2548
  %.pn1542 = phi { ptr, i32 } [ %2551, %2550 ], [ %2549, %2548 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %344) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #11
  br label %.loopexit2672

.loopexit2672:                                    ; preds = %.loopexit2672.loopexit, %2546
  %.pn1542.pn = phi { ptr, i32 } [ %2547, %2546 ], [ %.pn1542, %.loopexit2672.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #11
  br label %2552

2552:                                             ; preds = %.loopexit2672, %2544
  %.pn1542.pn.pn = phi { ptr, i32 } [ %.pn1542.pn, %.loopexit2672 ], [ %2545, %2544 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %340) #11
  br label %2553

2553:                                             ; preds = %2552, %2542
  %.pn1542.pn.pn.pn = phi { ptr, i32 } [ %.pn1542.pn.pn, %2552 ], [ %2543, %2542 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %341) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %341) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %338) #11
  br label %5972

2554:                                             ; preds = %2520
  %2555 = landingpad { ptr, i32 }
          cleanup
  br label %5971

2556:                                             ; preds = %2521
  %2557 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %346) #11
  br label %5971

2558:                                             ; preds = %2522
  %2559 = landingpad { ptr, i32 }
          cleanup
  br label %5970

2560:                                             ; preds = %2523
  %2561 = landingpad { ptr, i32 }
          cleanup
  br label %5969

2562:                                             ; preds = %2524
  %2563 = landingpad { ptr, i32 }
          cleanup
  br label %5968

2564:                                             ; preds = %2526
  %2565 = landingpad { ptr, i32 }
          cleanup
  br label %5967

2566:                                             ; preds = %2529
  %2567 = landingpad { ptr, i32 }
          cleanup
  br label %2606

2568:                                             ; preds = %2582, %2538
  %2569 = landingpad { ptr, i32 }
          cleanup
  br label %2605

2570:                                             ; preds = %2540
  %2571 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %350)
          to label %2572 unwind label %2584

2572:                                             ; preds = %2570
  %2573 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2571) #11
  %2574 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2571) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %352) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %353, ptr noundef nonnull align 8 dereferenceable(16) %2574)
          to label %2575 unwind label %2586

2575:                                             ; preds = %2572
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %352, ptr noundef nonnull %353, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %2576 unwind label %2588

2576:                                             ; preds = %2575
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %353) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %354) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %355) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA20_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %355, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(20) @.str.88, ptr noundef nonnull align 8 dereferenceable(16) %352, ptr noundef nonnull align 1 dereferenceable(3) @.str.87)
          to label %2577 unwind label %2590

2577:                                             ; preds = %2576
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %356) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %357) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %358) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %358) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef nonnull @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %358)
          to label %2578 unwind label %2592

2578:                                             ; preds = %2577
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %356, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef nonnull align 8 dereferenceable(32) %2573)
          to label %2579 unwind label %2594

2579:                                             ; preds = %2578
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %354, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %348, ptr noundef nonnull align 8 dereferenceable(16) %337, ptr noundef nonnull align 8 dereferenceable(16) %355, ptr noundef nonnull align 8 dereferenceable(32) %356)
          to label %2580 unwind label %2596

2580:                                             ; preds = %2579
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %358) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %358) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %357) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %355) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %355) #11
  %2581 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %349)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2581, ptr noundef nonnull align 8 dereferenceable(16) %354)
          to label %2582 unwind label %2601

2582:                                             ; preds = %2580
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %354) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %354) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %352) #11
  %2583 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %350)
          to label %2538 unwind label %2568

2584:                                             ; preds = %2570
  %2585 = landingpad { ptr, i32 }
          cleanup
  br label %2605

2586:                                             ; preds = %2572
  %2587 = landingpad { ptr, i32 }
          cleanup
  br label %2604

2588:                                             ; preds = %2575
  %2589 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %353) #11
  br label %2604

2590:                                             ; preds = %2576
  %2591 = landingpad { ptr, i32 }
          cleanup
  br label %2600

2592:                                             ; preds = %2577
  %2593 = landingpad { ptr, i32 }
          cleanup
  br label %2599

2594:                                             ; preds = %2578
  %2595 = landingpad { ptr, i32 }
          cleanup
  br label %2598

2596:                                             ; preds = %2579
  %2597 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #11
  br label %2598

2598:                                             ; preds = %2596, %2594
  %.pn2315 = phi { ptr, i32 } [ %2597, %2596 ], [ %2595, %2594 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #11
  br label %2599

2599:                                             ; preds = %2598, %2592
  %.pn2315.pn = phi { ptr, i32 } [ %.pn2315, %2598 ], [ %2593, %2592 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %358) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %358) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %357) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %355) #11
  br label %2600

2600:                                             ; preds = %2599, %2590
  %.pn2315.pn.pn = phi { ptr, i32 } [ %.pn2315.pn, %2599 ], [ %2591, %2590 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %355) #11
  br label %2603

2601:                                             ; preds = %2580
  %2602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %354) #11
  br label %2603

2603:                                             ; preds = %2601, %2600
  %.pn2319 = phi { ptr, i32 } [ %2602, %2601 ], [ %.pn2315.pn.pn, %2600 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %354) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #11
  br label %2604

2604:                                             ; preds = %2603, %2588, %2586
  %.pn2319.pn = phi { ptr, i32 } [ %.pn2319, %2603 ], [ %2589, %2588 ], [ %2587, %2586 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %352) #11
  br label %2605

2605:                                             ; preds = %2584, %2604, %2568
  %.pn2323 = phi { ptr, i32 } [ %2569, %2568 ], [ %.pn2319.pn, %2604 ], [ %2585, %2584 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %351) #11
  br label %2606

2606:                                             ; preds = %2605, %2566
  %.pn2323.pn = phi { ptr, i32 } [ %.pn2323, %2605 ], [ %2567, %2566 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %350) #11
  br label %5967

2607:                                             ; preds = %2541, %2525
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %359) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %360) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %361) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %363) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %363, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %363) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %362, ptr noundef nonnull align 8 dereferenceable(24) %363)
          to label %2608 unwind label %2637

2608:                                             ; preds = %2607
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %365) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %365)
          to label %2609 unwind label %2639

2609:                                             ; preds = %2608
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %361, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %362, ptr noundef nonnull %364)
          to label %2610 unwind label %2641

2610:                                             ; preds = %2609
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %366) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %366) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %360, ptr nonnull %361, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %366)
          to label %2611 unwind label %2643

2611:                                             ; preds = %2610
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %359, ptr noundef nonnull align 8 dereferenceable(24) %360)
          to label %2612 unwind label %2645

2612:                                             ; preds = %2611
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %360) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %366) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %366) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %365) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %362) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %363) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %363) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %360) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %367) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %368, ptr noundef nonnull align 8 dereferenceable(16) %359)
          to label %2613 unwind label %2649

2613:                                             ; preds = %2612
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %370) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %370) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %369, ptr noundef nonnull @.str.130, ptr noundef nonnull align 1 dereferenceable(1) %370)
          to label %2614 unwind label %2651

2614:                                             ; preds = %2613
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %367, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %368, ptr noundef nonnull %369)
          to label %2615 unwind label %2653

2615:                                             ; preds = %2614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %370) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %370) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %368) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %371) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %372)
          to label %2616 unwind label %2656

2616:                                             ; preds = %2615
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %371, i32 noundef 17, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %372)
          to label %2617 unwind label %2658

2617:                                             ; preds = %2616
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %372) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %373) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %373)
          to label %2618 unwind label %2660

2618:                                             ; preds = %2617
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %374) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %374)
          to label %2619 unwind label %2662

2619:                                             ; preds = %2618
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %375) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %375)
          to label %2620 unwind label %2664

2620:                                             ; preds = %2619
  br i1 %1961, label %2621, label %2709

2621:                                             ; preds = %2620
  %2622 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %2623 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2622, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2624 unwind label %2666

2624:                                             ; preds = %2621
  %2625 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2623)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %376) #11
  %2626 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2625)
          to label %2627 unwind label %2668

2627:                                             ; preds = %2624
  %2628 = extractvalue { ptr, i64 } %2626, 0
  store ptr %2628, ptr %376, align 8
  %2629 = extractvalue { ptr, i64 } %2626, 1
  store i64 %2629, ptr %1897, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %377) #11
  %2630 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2625)
  %2631 = extractvalue { ptr, i64 } %2630, 0
  store ptr %2631, ptr %377, align 8
  %2632 = extractvalue { ptr, i64 } %2630, 1
  store i64 %2632, ptr %1898, align 8
  br label %2633

2633:                                             ; preds = %2684, %2627
  %2634 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %376, ptr noundef nonnull align 8 dereferenceable(16) %377)
          to label %2635 unwind label %2670

2635:                                             ; preds = %2633
  br i1 %2634, label %2672, label %2636

2636:                                             ; preds = %2635
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %377) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %376) #11
  br label %2709

2637:                                             ; preds = %2607
  %2638 = landingpad { ptr, i32 }
          cleanup
  br label %2648

2639:                                             ; preds = %2608
  %2640 = landingpad { ptr, i32 }
          cleanup
  br label %2647

2641:                                             ; preds = %2609
  %2642 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2671

2643:                                             ; preds = %2610
  %2644 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2671.loopexit

2645:                                             ; preds = %2611
  %2646 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %360) #11
  br label %.loopexit2671.loopexit

.loopexit2671.loopexit:                           ; preds = %2645, %2643
  %.pn1547 = phi { ptr, i32 } [ %2646, %2645 ], [ %2644, %2643 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %366) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %366) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #11
  br label %.loopexit2671

.loopexit2671:                                    ; preds = %.loopexit2671.loopexit, %2641
  %.pn1547.pn = phi { ptr, i32 } [ %2642, %2641 ], [ %.pn1547, %.loopexit2671.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #11
  br label %2647

2647:                                             ; preds = %.loopexit2671, %2639
  %.pn1547.pn.pn = phi { ptr, i32 } [ %.pn1547.pn, %.loopexit2671 ], [ %2640, %2639 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %365) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %362) #11
  br label %2648

2648:                                             ; preds = %2647, %2637
  %.pn1547.pn.pn.pn = phi { ptr, i32 } [ %.pn1547.pn.pn, %2647 ], [ %2638, %2637 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %363) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %363) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %360) #11
  br label %5966

2649:                                             ; preds = %2612
  %2650 = landingpad { ptr, i32 }
          cleanup
  br label %5965

2651:                                             ; preds = %2613
  %2652 = landingpad { ptr, i32 }
          cleanup
  br label %2655

2653:                                             ; preds = %2614
  %2654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #11
  br label %2655

2655:                                             ; preds = %2653, %2651
  %.pn1552 = phi { ptr, i32 } [ %2654, %2653 ], [ %2652, %2651 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %370) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %370) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %368) #11
  br label %5965

2656:                                             ; preds = %2615
  %2657 = landingpad { ptr, i32 }
          cleanup
  br label %5964

2658:                                             ; preds = %2616
  %2659 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %372) #11
  br label %5964

2660:                                             ; preds = %2617
  %2661 = landingpad { ptr, i32 }
          cleanup
  br label %5963

2662:                                             ; preds = %2618
  %2663 = landingpad { ptr, i32 }
          cleanup
  br label %5962

2664:                                             ; preds = %2619
  %2665 = landingpad { ptr, i32 }
          cleanup
  br label %5961

2666:                                             ; preds = %2621
  %2667 = landingpad { ptr, i32 }
          cleanup
  br label %5960

2668:                                             ; preds = %2624
  %2669 = landingpad { ptr, i32 }
          cleanup
  br label %2708

2670:                                             ; preds = %2684, %2633
  %2671 = landingpad { ptr, i32 }
          cleanup
  br label %2707

2672:                                             ; preds = %2635
  %2673 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %376)
          to label %2674 unwind label %2686

2674:                                             ; preds = %2672
  %2675 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2673) #11
  %2676 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2673) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %378) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %379, ptr noundef nonnull align 8 dereferenceable(16) %2676)
          to label %2677 unwind label %2688

2677:                                             ; preds = %2674
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %378, ptr noundef nonnull %379, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %2678 unwind label %2690

2678:                                             ; preds = %2677
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %379) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %380) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %381) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA15_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEESF_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %381, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(15) @.str.86, ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %378, ptr noundef nonnull align 1 dereferenceable(3) @.str.87)
          to label %2679 unwind label %2692

2679:                                             ; preds = %2678
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %382) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %383) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %384) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %383, ptr noundef nonnull @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %384)
          to label %2680 unwind label %2694

2680:                                             ; preds = %2679
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %382, ptr noundef nonnull align 8 dereferenceable(32) %383, ptr noundef nonnull align 8 dereferenceable(32) %2675)
          to label %2681 unwind label %2696

2681:                                             ; preds = %2680
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %380, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %374, ptr noundef nonnull align 8 dereferenceable(16) %359, ptr noundef nonnull align 8 dereferenceable(16) %381, ptr noundef nonnull align 8 dereferenceable(32) %382)
          to label %2682 unwind label %2698

2682:                                             ; preds = %2681
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %383) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %384) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %383) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %382) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %381) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %381) #11
  %2683 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %375)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2683, ptr noundef nonnull align 8 dereferenceable(16) %380)
          to label %2684 unwind label %2703

2684:                                             ; preds = %2682
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %380) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %380) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %378) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %378) #11
  %2685 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %376)
          to label %2633 unwind label %2670

2686:                                             ; preds = %2672
  %2687 = landingpad { ptr, i32 }
          cleanup
  br label %2707

2688:                                             ; preds = %2674
  %2689 = landingpad { ptr, i32 }
          cleanup
  br label %2706

2690:                                             ; preds = %2677
  %2691 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %379) #11
  br label %2706

2692:                                             ; preds = %2678
  %2693 = landingpad { ptr, i32 }
          cleanup
  br label %2702

2694:                                             ; preds = %2679
  %2695 = landingpad { ptr, i32 }
          cleanup
  br label %2701

2696:                                             ; preds = %2680
  %2697 = landingpad { ptr, i32 }
          cleanup
  br label %2700

2698:                                             ; preds = %2681
  %2699 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #11
  br label %2700

2700:                                             ; preds = %2698, %2696
  %.pn2296 = phi { ptr, i32 } [ %2699, %2698 ], [ %2697, %2696 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %383) #11
  br label %2701

2701:                                             ; preds = %2700, %2694
  %.pn2296.pn = phi { ptr, i32 } [ %.pn2296, %2700 ], [ %2695, %2694 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %384) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %383) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %382) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %381) #11
  br label %2702

2702:                                             ; preds = %2701, %2692
  %.pn2296.pn.pn = phi { ptr, i32 } [ %.pn2296.pn, %2701 ], [ %2693, %2692 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %381) #11
  br label %2705

2703:                                             ; preds = %2682
  %2704 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %380) #11
  br label %2705

2705:                                             ; preds = %2703, %2702
  %.pn2300 = phi { ptr, i32 } [ %2704, %2703 ], [ %.pn2296.pn.pn, %2702 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %380) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %378) #11
  br label %2706

2706:                                             ; preds = %2705, %2690, %2688
  %.pn2300.pn = phi { ptr, i32 } [ %.pn2300, %2705 ], [ %2691, %2690 ], [ %2689, %2688 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %378) #11
  br label %2707

2707:                                             ; preds = %2686, %2706, %2670
  %.pn2304 = phi { ptr, i32 } [ %2671, %2670 ], [ %.pn2300.pn, %2706 ], [ %2687, %2686 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %377) #11
  br label %2708

2708:                                             ; preds = %2707, %2668
  %.pn2304.pn = phi { ptr, i32 } [ %.pn2304, %2707 ], [ %2669, %2668 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %376) #11
  br label %5960

2709:                                             ; preds = %2636, %2620
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %385) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %386) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %387) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %389) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %389, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %389) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %388, ptr noundef nonnull align 8 dereferenceable(24) %389)
          to label %2710 unwind label %2752

2710:                                             ; preds = %2709
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %391) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %391)
          to label %2711 unwind label %2754

2711:                                             ; preds = %2710
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %387, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %388, ptr noundef nonnull %390)
          to label %2712 unwind label %2756

2712:                                             ; preds = %2711
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %392) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %386, ptr nonnull %387, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %392)
          to label %2713 unwind label %2758

2713:                                             ; preds = %2712
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %385, ptr noundef nonnull align 8 dereferenceable(24) %386)
          to label %2714 unwind label %2760

2714:                                             ; preds = %2713
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %386) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %392) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %391) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %388) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %389) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %389) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %387) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %386) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %393) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %394) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %395) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %396) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %396)
          to label %2715 unwind label %.thread2637

2715:                                             ; preds = %2714
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %397) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1899, ptr noundef nonnull @.str.116, ptr noundef nonnull align 1 dereferenceable(1) %397)
          to label %2716 unwind label %2765

2716:                                             ; preds = %2715
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %398) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %394, ptr nonnull %395, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %398)
          to label %2717 unwind label %2767

2717:                                             ; preds = %2716
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %393, ptr noundef nonnull align 8 dereferenceable(24) %394)
          to label %2718 unwind label %2769

2718:                                             ; preds = %2717
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %394) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %398) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1930) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %397) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %396) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %395) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %394) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %399) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %399, ptr noundef nonnull align 8 dereferenceable(16) %393, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %2719 unwind label %2772

2719:                                             ; preds = %2718
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %400) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %400)
          to label %2720 unwind label %2774

2720:                                             ; preds = %2719
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %401) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %401)
          to label %2721 unwind label %2776

2721:                                             ; preds = %2720
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %402) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %403) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %404) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %404) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef nonnull @.str.131, ptr noundef nonnull align 1 dereferenceable(1) %404)
          to label %2722 unwind label %2778

2722:                                             ; preds = %2721
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %405) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %406) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %406)
          to label %2723 unwind label %2780

2723:                                             ; preds = %2722
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEERNS8_INS_3VecISD_EEEERKNS8_INSE_IS7_EEEERKT_RKS7_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %402, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %400, ptr noundef nonnull align 8 dereferenceable(16) %385, ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef nonnull align 8 dereferenceable(32) %405)
          to label %2724 unwind label %2782

2724:                                             ; preds = %2723
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %406) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %405) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %404) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %404) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %403) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %407) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %408) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %409) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef nonnull @.str.132, ptr noundef nonnull align 1 dereferenceable(1) %409)
          to label %2725 unwind label %2786

2725:                                             ; preds = %2724
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %410) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %411) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %411)
          to label %2726 unwind label %2788

2726:                                             ; preds = %2725
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEERNS8_INS_3VecISD_EEEERKNS8_INSE_IS7_EEEERKT_RKS7_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %407, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %400, ptr noundef nonnull align 8 dereferenceable(16) %385, ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef nonnull align 8 dereferenceable(32) %410)
          to label %2727 unwind label %2790

2727:                                             ; preds = %2726
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %411) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %410) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %409) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %408) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %412) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %413) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %414) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %415)
          to label %2728 unwind label %2794

2728:                                             ; preds = %2727
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %416)
          to label %2729 unwind label %2796

2729:                                             ; preds = %2728
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %414, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %415, ptr noundef nonnull %416)
          to label %2730 unwind label %2798

2730:                                             ; preds = %2729
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %413, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %414, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %2731 unwind label %2800

2731:                                             ; preds = %2730
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %417) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %418) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %418) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef nonnull @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %418)
          to label %2732 unwind label %2802

2732:                                             ; preds = %2731
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %412, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %400, ptr noundef nonnull align 8 dereferenceable(16) %385, ptr noundef nonnull align 8 dereferenceable(16) %413, ptr noundef nonnull align 8 dereferenceable(32) %417)
          to label %2733 unwind label %2804

2733:                                             ; preds = %2732
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %418) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %418) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %417) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %413) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %414) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %416) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %415) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %414) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %413) #11
  br i1 %1961, label %2734, label %2894

2734:                                             ; preds = %2733
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %419) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %419)
          to label %2735 unwind label %2811

2735:                                             ; preds = %2734
  %2736 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %2737 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %2736, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %2738 unwind label %2813

2738:                                             ; preds = %2735
  %2739 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %2737)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %420) #11
  %2740 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %2739)
          to label %2741 unwind label %2815

2741:                                             ; preds = %2738
  %2742 = extractvalue { ptr, i64 } %2740, 0
  store ptr %2742, ptr %420, align 8
  %2743 = extractvalue { ptr, i64 } %2740, 1
  store i64 %2743, ptr %1900, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %421) #11
  %2744 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %2739)
  %2745 = extractvalue { ptr, i64 } %2744, 0
  store ptr %2745, ptr %421, align 8
  %2746 = extractvalue { ptr, i64 } %2744, 1
  store i64 %2746, ptr %1901, align 8
  br label %2747

2747:                                             ; preds = %2837, %2741
  %2748 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %420, ptr noundef nonnull align 8 dereferenceable(16) %421)
          to label %2749 unwind label %2817

2749:                                             ; preds = %2747
  br i1 %2748, label %2819, label %2750

2750:                                             ; preds = %2749
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %421) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %420) #11
  %2751 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %419)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %435) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %435, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %2876 unwind label %2882

2752:                                             ; preds = %2709
  %2753 = landingpad { ptr, i32 }
          cleanup
  br label %2763

2754:                                             ; preds = %2710
  %2755 = landingpad { ptr, i32 }
          cleanup
  br label %2762

2756:                                             ; preds = %2711
  %2757 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2670

2758:                                             ; preds = %2712
  %2759 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2670.loopexit

2760:                                             ; preds = %2713
  %2761 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %386) #11
  br label %.loopexit2670.loopexit

.loopexit2670.loopexit:                           ; preds = %2760, %2758
  %.pn1554 = phi { ptr, i32 } [ %2761, %2760 ], [ %2759, %2758 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %392) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #11
  br label %.loopexit2670

.loopexit2670:                                    ; preds = %.loopexit2670.loopexit, %2756
  %.pn1554.pn = phi { ptr, i32 } [ %2757, %2756 ], [ %.pn1554, %.loopexit2670.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #11
  br label %2762

2762:                                             ; preds = %.loopexit2670, %2754
  %.pn1554.pn.pn = phi { ptr, i32 } [ %.pn1554.pn, %.loopexit2670 ], [ %2755, %2754 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %391) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %388) #11
  br label %2763

2763:                                             ; preds = %2762, %2752
  %.pn1554.pn.pn.pn = phi { ptr, i32 } [ %.pn1554.pn.pn, %2762 ], [ %2753, %2752 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %389) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %389) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %387) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %386) #11
  br label %5959

.thread2637:                                      ; preds = %2714
  %2764 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %396) #11
  br label %.loopexit2668

2765:                                             ; preds = %2715
  %2766 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2669

2767:                                             ; preds = %2716
  %2768 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2669.loopexit

2769:                                             ; preds = %2717
  %2770 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %394) #11
  br label %.loopexit2669.loopexit

.loopexit2669.loopexit:                           ; preds = %2769, %2767
  %.pn1559 = phi { ptr, i32 } [ %2770, %2769 ], [ %2768, %2767 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %398) #11
  %2771 = getelementptr inbounds i8, ptr %395, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2771) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #11
  br label %.loopexit2669

.loopexit2669:                                    ; preds = %.loopexit2669.loopexit, %2765
  %.01414 = phi i1 [ true, %2765 ], [ false, %.loopexit2669.loopexit ]
  %.pn1559.pn = phi { ptr, i32 } [ %2766, %2765 ], [ %.pn1559, %.loopexit2669.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %397) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %396) #11
  br i1 %.01414, label %.preheader2667.preheader, label %.loopexit2668

.preheader2667.preheader:                         ; preds = %.loopexit2669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #11
  br label %.loopexit2668

.loopexit2668:                                    ; preds = %.preheader2667.preheader, %.thread2637, %.loopexit2669
  %.pn1559.pn.pn2642 = phi { ptr, i32 } [ %2764, %.thread2637 ], [ %.pn1559.pn, %.loopexit2669 ], [ %.pn1559.pn, %.preheader2667.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %395) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %394) #11
  br label %5958

2772:                                             ; preds = %2718
  %2773 = landingpad { ptr, i32 }
          cleanup
  br label %5957

2774:                                             ; preds = %2719
  %2775 = landingpad { ptr, i32 }
          cleanup
  br label %5956

2776:                                             ; preds = %2720
  %2777 = landingpad { ptr, i32 }
          cleanup
  br label %5955

2778:                                             ; preds = %2721
  %2779 = landingpad { ptr, i32 }
          cleanup
  br label %2785

2780:                                             ; preds = %2722
  %2781 = landingpad { ptr, i32 }
          cleanup
  br label %2784

2782:                                             ; preds = %2723
  %2783 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #11
  br label %2784

2784:                                             ; preds = %2782, %2780
  %.pn1564 = phi { ptr, i32 } [ %2783, %2782 ], [ %2781, %2780 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %406) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %405) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #11
  br label %2785

2785:                                             ; preds = %2784, %2778
  %.pn1564.pn = phi { ptr, i32 } [ %.pn1564, %2784 ], [ %2779, %2778 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %404) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %404) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %403) #11
  br label %5954

2786:                                             ; preds = %2724
  %2787 = landingpad { ptr, i32 }
          cleanup
  br label %2793

2788:                                             ; preds = %2725
  %2789 = landingpad { ptr, i32 }
          cleanup
  br label %2792

2790:                                             ; preds = %2726
  %2791 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #11
  br label %2792

2792:                                             ; preds = %2790, %2788
  %.pn1567 = phi { ptr, i32 } [ %2791, %2790 ], [ %2789, %2788 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %411) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %410) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #11
  br label %2793

2793:                                             ; preds = %2792, %2786
  %.pn1567.pn = phi { ptr, i32 } [ %.pn1567, %2792 ], [ %2787, %2786 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %409) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %408) #11
  br label %5953

2794:                                             ; preds = %2727
  %2795 = landingpad { ptr, i32 }
          cleanup
  br label %2810

2796:                                             ; preds = %2728
  %2797 = landingpad { ptr, i32 }
          cleanup
  br label %2809

2798:                                             ; preds = %2729
  %2799 = landingpad { ptr, i32 }
          cleanup
  br label %2808

2800:                                             ; preds = %2730
  %2801 = landingpad { ptr, i32 }
          cleanup
  br label %2807

2802:                                             ; preds = %2731
  %2803 = landingpad { ptr, i32 }
          cleanup
  br label %2806

2804:                                             ; preds = %2732
  %2805 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #11
  br label %2806

2806:                                             ; preds = %2804, %2802
  %.pn1570 = phi { ptr, i32 } [ %2805, %2804 ], [ %2803, %2802 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %418) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %418) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %417) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %413) #11
  br label %2807

2807:                                             ; preds = %2806, %2800
  %.pn1570.pn = phi { ptr, i32 } [ %.pn1570, %2806 ], [ %2801, %2800 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %414) #11
  br label %2808

2808:                                             ; preds = %2807, %2798
  %.pn1570.pn.pn = phi { ptr, i32 } [ %.pn1570.pn, %2807 ], [ %2799, %2798 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %416) #11
  br label %2809

2809:                                             ; preds = %2808, %2796
  %.pn1570.pn.pn.pn = phi { ptr, i32 } [ %.pn1570.pn.pn, %2808 ], [ %2797, %2796 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %415) #11
  br label %2810

2810:                                             ; preds = %2809, %2794
  %.pn1570.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1570.pn.pn.pn, %2809 ], [ %2795, %2794 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %414) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %413) #11
  br label %5952

2811:                                             ; preds = %2734
  %2812 = landingpad { ptr, i32 }
          cleanup
  br label %2893

2813:                                             ; preds = %2735
  %2814 = landingpad { ptr, i32 }
          cleanup
  br label %2892

2815:                                             ; preds = %2738
  %2816 = landingpad { ptr, i32 }
          cleanup
  br label %2875

2817:                                             ; preds = %2837, %2747
  %2818 = landingpad { ptr, i32 }
          cleanup
  br label %2874

2819:                                             ; preds = %2749
  %2820 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %420)
          to label %2821 unwind label %2839

2821:                                             ; preds = %2819
  %2822 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2820) #11
  %2823 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %2820) #11
  %2824 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %419)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %422) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %423) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %424) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %425) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %426)
          to label %2825 unwind label %2841

2825:                                             ; preds = %2821
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %427)
          to label %2826 unwind label %2843

2826:                                             ; preds = %2825
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %425, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %426, ptr noundef nonnull %427)
          to label %2827 unwind label %2845

2827:                                             ; preds = %2826
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %428) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %430) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %431) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %432) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef nonnull align 8 dereferenceable(32) %2822)
          to label %2828 unwind label %2847

2828:                                             ; preds = %2827
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %433) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %433) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %431, ptr nonnull %432, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %433)
          to label %2829 unwind label %2849

2829:                                             ; preds = %2828
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %430, ptr noundef nonnull align 8 dereferenceable(24) %431)
          to label %2830 unwind label %2851

2830:                                             ; preds = %2829
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %429, ptr noundef nonnull align 8 dereferenceable(16) %430)
          to label %2831 unwind label %2853

2831:                                             ; preds = %2830
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %434)
          to label %2832 unwind label %2855

2832:                                             ; preds = %2831
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %428, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %429, ptr noundef nonnull %434)
          to label %2833 unwind label %2857

2833:                                             ; preds = %2832
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA18_cS9_A2_cS9_SJ_S9_SA_S9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %424, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %425, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %2822, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 1 dereferenceable(18) @.str.133, ptr noundef nonnull align 8 dereferenceable(16) %402, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %407, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %412, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %428, ptr noundef nonnull align 1 dereferenceable(5) @.str.134, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %2834 unwind label %2859

2834:                                             ; preds = %2833
  %2835 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.124") align 8 %423, ptr noundef nonnull align 8 dereferenceable(136) %2835)
          to label %2836 unwind label %2861

2836:                                             ; preds = %2834
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %422, ptr noundef nonnull align 8 dereferenceable(16) %423)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2824, ptr noundef nonnull align 8 dereferenceable(16) %422)
          to label %2837 unwind label %2863

2837:                                             ; preds = %2836
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %422) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %423) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %424) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %428) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %434) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %429) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %430) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %431) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %433) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %433) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %432) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %431) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %430) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %428) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %425) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %427) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %426) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %425) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %424) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %423) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %422) #11
  %2838 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %420)
          to label %2747 unwind label %2817

2839:                                             ; preds = %2819
  %2840 = landingpad { ptr, i32 }
          cleanup
  br label %2874

2841:                                             ; preds = %2821
  %2842 = landingpad { ptr, i32 }
          cleanup
  br label %2873

2843:                                             ; preds = %2825
  %2844 = landingpad { ptr, i32 }
          cleanup
  br label %2872

2845:                                             ; preds = %2826
  %2846 = landingpad { ptr, i32 }
          cleanup
  br label %2871

2847:                                             ; preds = %2827
  %2848 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2652

2849:                                             ; preds = %2828
  %2850 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2652.loopexit

2851:                                             ; preds = %2829
  %2852 = landingpad { ptr, i32 }
          cleanup
  br label %2870

2853:                                             ; preds = %2830
  %2854 = landingpad { ptr, i32 }
          cleanup
  br label %2869

2855:                                             ; preds = %2831
  %2856 = landingpad { ptr, i32 }
          cleanup
  br label %2868

2857:                                             ; preds = %2832
  %2858 = landingpad { ptr, i32 }
          cleanup
  br label %2867

2859:                                             ; preds = %2833
  %2860 = landingpad { ptr, i32 }
          cleanup
  br label %2866

2861:                                             ; preds = %2834
  %2862 = landingpad { ptr, i32 }
          cleanup
  br label %2865

2863:                                             ; preds = %2836
  %2864 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %422) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %423) #11
  br label %2865

2865:                                             ; preds = %2863, %2861
  %.pn2268 = phi { ptr, i32 } [ %2864, %2863 ], [ %2862, %2861 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %424) #11
  br label %2866

2866:                                             ; preds = %2865, %2859
  %.pn2268.pn = phi { ptr, i32 } [ %.pn2268, %2865 ], [ %2860, %2859 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %428) #11
  br label %2867

2867:                                             ; preds = %2866, %2857
  %.pn2268.pn.pn = phi { ptr, i32 } [ %.pn2268.pn, %2866 ], [ %2858, %2857 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %434) #11
  br label %2868

2868:                                             ; preds = %2867, %2855
  %.pn2268.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn, %2867 ], [ %2856, %2855 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %429) #11
  br label %2869

2869:                                             ; preds = %2868, %2853
  %.pn2268.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn, %2868 ], [ %2854, %2853 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %430) #11
  br label %2870

2870:                                             ; preds = %2869, %2851
  %.pn2268.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn, %2869 ], [ %2852, %2851 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %431) #11
  br label %.loopexit2652.loopexit

.loopexit2652.loopexit:                           ; preds = %2870, %2849
  %.pn2268.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn.pn, %2870 ], [ %2850, %2849 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %433) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %433) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #11
  br label %.loopexit2652

.loopexit2652:                                    ; preds = %.loopexit2652.loopexit, %2847
  %.pn2268.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %2848, %2847 ], [ %.pn2268.pn.pn.pn.pn.pn.pn, %.loopexit2652.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %432) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %431) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %430) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %428) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %425) #11
  br label %2871

2871:                                             ; preds = %.loopexit2652, %2845
  %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn.pn.pn.pn, %.loopexit2652 ], [ %2846, %2845 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %427) #11
  br label %2872

2872:                                             ; preds = %2871, %2843
  %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn, %2871 ], [ %2844, %2843 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %426) #11
  br label %2873

2873:                                             ; preds = %2872, %2841
  %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2872 ], [ %2842, %2841 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %425) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %424) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %423) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %422) #11
  br label %2874

2874:                                             ; preds = %2839, %2873, %2817
  %.pn2281 = phi { ptr, i32 } [ %2818, %2817 ], [ %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2873 ], [ %2840, %2839 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %421) #11
  br label %2875

2875:                                             ; preds = %2874, %2815
  %.pn2281.pn = phi { ptr, i32 } [ %.pn2281, %2874 ], [ %2816, %2815 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %420) #11
  br label %2892

2876:                                             ; preds = %2750
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2751, ptr noundef nonnull align 8 dereferenceable(16) %435)
          to label %2877 unwind label %2884

2877:                                             ; preds = %2876
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %435) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %435) #11
  %2878 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %436) #11
  %2879 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %419)
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEES2_A4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %436, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 8 dereferenceable(16) %412, ptr noundef nonnull align 1 dereferenceable(5) @.str.100, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %2879, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %2880 unwind label %2887

2880:                                             ; preds = %2877
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2878, ptr noundef nonnull align 8 dereferenceable(16) %436)
          to label %2881 unwind label %2889

2881:                                             ; preds = %2880
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %436) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %436) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %419) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %419) #11
  br label %3010

2882:                                             ; preds = %2750
  %2883 = landingpad { ptr, i32 }
          cleanup
  br label %2886

2884:                                             ; preds = %2876
  %2885 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %435) #11
  br label %2886

2886:                                             ; preds = %2884, %2882
  %.pn1605 = phi { ptr, i32 } [ %2885, %2884 ], [ %2883, %2882 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %435) #11
  br label %2892

2887:                                             ; preds = %2877
  %2888 = landingpad { ptr, i32 }
          cleanup
  br label %2891

2889:                                             ; preds = %2880
  %2890 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %436) #11
  br label %2891

2891:                                             ; preds = %2889, %2887
  %.pn1607 = phi { ptr, i32 } [ %2890, %2889 ], [ %2888, %2887 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %436) #11
  br label %2892

2892:                                             ; preds = %2813, %2875, %2891, %2886
  %.pn2281.pn.pn.pn = phi { ptr, i32 } [ %.pn1607, %2891 ], [ %.pn1605, %2886 ], [ %.pn2281.pn, %2875 ], [ %2814, %2813 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %419) #11
  br label %2893

2893:                                             ; preds = %2892, %2811
  %.pn2281.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn, %2892 ], [ %2812, %2811 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %419) #11
  br label %5951

2894:                                             ; preds = %2733
  %2895 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %437) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %438) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %439) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %440) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull @.str.135, ptr noundef nonnull align 1 dereferenceable(1) %440)
          to label %2896 unwind label %2909

2896:                                             ; preds = %2894
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %441) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %442) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %443) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %443) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %442, ptr noundef nonnull @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %443)
          to label %2897 unwind label %2911

2897:                                             ; preds = %2896
  invoke void @_ZN6langcc16name_sep_to_joinERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKS7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %441, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(32) %442)
          to label %2898 unwind label %2913

2898:                                             ; preds = %2897
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %438, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull align 8 dereferenceable(32) %441)
          to label %2899 unwind label %2915

2899:                                             ; preds = %2898
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %437, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(7) @.str.121, ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %2900 unwind label %2917

2900:                                             ; preds = %2899
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2895, ptr noundef nonnull align 8 dereferenceable(16) %437)
          to label %2901 unwind label %2919

2901:                                             ; preds = %2900
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %437) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %442) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %443) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %443) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %442) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %441) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %440) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %439) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %438) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %437) #11
  %2902 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1966)
  %2903 = call noundef i64 @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %2902)
  %2904 = icmp eq i64 %2903, 0
  br i1 %2904, label %2905, label %2931

2905:                                             ; preds = %2901
  %2906 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %444) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %444, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(11) @.str.136)
          to label %2907 unwind label %2926

2907:                                             ; preds = %2905
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2906, ptr noundef nonnull align 8 dereferenceable(16) %444)
          to label %2908 unwind label %2928

2908:                                             ; preds = %2907
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %444) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %444) #11
  br label %3010

2909:                                             ; preds = %2894
  %2910 = landingpad { ptr, i32 }
          cleanup
  br label %2925

2911:                                             ; preds = %2896
  %2912 = landingpad { ptr, i32 }
          cleanup
  br label %2924

2913:                                             ; preds = %2897
  %2914 = landingpad { ptr, i32 }
          cleanup
  br label %2923

2915:                                             ; preds = %2898
  %2916 = landingpad { ptr, i32 }
          cleanup
  br label %2922

2917:                                             ; preds = %2899
  %2918 = landingpad { ptr, i32 }
          cleanup
  br label %2921

2919:                                             ; preds = %2900
  %2920 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %437) #11
  br label %2921

2921:                                             ; preds = %2919, %2917
  %.pn1576 = phi { ptr, i32 } [ %2920, %2919 ], [ %2918, %2917 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #11
  br label %2922

2922:                                             ; preds = %2921, %2915
  %.pn1576.pn = phi { ptr, i32 } [ %.pn1576, %2921 ], [ %2916, %2915 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #11
  br label %2923

2923:                                             ; preds = %2922, %2913
  %.pn1576.pn.pn = phi { ptr, i32 } [ %.pn1576.pn, %2922 ], [ %2914, %2913 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %442) #11
  br label %2924

2924:                                             ; preds = %2923, %2911
  %.pn1576.pn.pn.pn = phi { ptr, i32 } [ %.pn1576.pn.pn, %2923 ], [ %2912, %2911 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %443) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %443) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %442) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %441) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #11
  br label %2925

2925:                                             ; preds = %2924, %2909
  %.pn1576.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1576.pn.pn.pn, %2924 ], [ %2910, %2909 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %440) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %439) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %438) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %437) #11
  br label %5951

2926:                                             ; preds = %2905
  %2927 = landingpad { ptr, i32 }
          cleanup
  br label %2930

2928:                                             ; preds = %2907
  %2929 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %444) #11
  br label %2930

2930:                                             ; preds = %2928, %2926
  %.pn1603 = phi { ptr, i32 } [ %2929, %2928 ], [ %2927, %2926 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %444) #11
  br label %5951

2931:                                             ; preds = %2901
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %445) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %445, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.46, ptr noundef nonnull align 8 dereferenceable(16) %407, ptr noundef nonnull align 1 dereferenceable(10) @.str.137)
          to label %2932 unwind label %2937

2932:                                             ; preds = %2931
  %2933 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1966)
  %2934 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %2933)
  %2935 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %2933)
  %.not15823582 = icmp eq ptr %2934, %2935
  br i1 %.not15823582, label %._crit_edge3586, label %.lr.ph3585

._crit_edge3586:                                  ; preds = %2955, %2932
  %2936 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %457) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA19_cS8_A3_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %457, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 8 dereferenceable(16) %407, ptr noundef nonnull align 1 dereferenceable(19) @.str.138, ptr noundef nonnull align 8 dereferenceable(16) %402, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %2993 unwind label %2998

2937:                                             ; preds = %2931
  %2938 = landingpad { ptr, i32 }
          cleanup
  br label %3009

.lr.ph3585:                                       ; preds = %2932, %2955
  %.014163583 = phi ptr [ %2956, %2955 ], [ %2934, %2932 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %446) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull align 8 dereferenceable(32) %.014163583)
          to label %2939 unwind label %2957

2939:                                             ; preds = %.lr.ph3585
  %2940 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %447) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA19_cS8_A3_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %447, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 8 dereferenceable(16) %445, ptr noundef nonnull align 1 dereferenceable(19) @.str.138, ptr noundef nonnull align 8 dereferenceable(16) %402, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %2941 unwind label %2959

2941:                                             ; preds = %2939
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2940, ptr noundef nonnull align 8 dereferenceable(16) %447)
          to label %2942 unwind label %2961

2942:                                             ; preds = %2941
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %447) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %447) #11
  %2943 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %448) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %449) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %450) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %451) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull @.str.140, ptr noundef nonnull align 1 dereferenceable(1) %451)
          to label %2944 unwind label %2964

2944:                                             ; preds = %2942
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %449, ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull align 8 dereferenceable(32) %446)
          to label %2945 unwind label %2966

2945:                                             ; preds = %2944
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %448, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 8 dereferenceable(16) %402, ptr noundef nonnull align 1 dereferenceable(3) @.str.139, ptr noundef nonnull align 8 dereferenceable(32) %449, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %2946 unwind label %2968

2946:                                             ; preds = %2945
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2943, ptr noundef nonnull align 8 dereferenceable(16) %448)
          to label %2947 unwind label %2970

2947:                                             ; preds = %2946
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %448) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %449) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %451) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %450) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %449) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %448) #11
  %2948 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %452) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %453) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %454) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %455) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef nonnull @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %455)
          to label %2949 unwind label %2975

2949:                                             ; preds = %2947
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %453, ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef nonnull align 8 dereferenceable(32) %446)
          to label %2950 unwind label %2977

2950:                                             ; preds = %2949
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA18_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS9_SA_S9_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_EEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %452, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(18) @.str.133, ptr noundef nonnull align 8 dereferenceable(16) %402, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %445, ptr noundef nonnull align 1 dereferenceable(2) @.str.44, ptr noundef nonnull align 8 dereferenceable(16) %412, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %2951 unwind label %2979

2951:                                             ; preds = %2950
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2948, ptr noundef nonnull align 8 dereferenceable(16) %452)
          to label %2952 unwind label %2981

2952:                                             ; preds = %2951
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %452) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %455) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %454) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %453) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %452) #11
  %2953 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %456) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %456, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(11) @.str.141)
          to label %2954 unwind label %2986

2954:                                             ; preds = %2952
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2953, ptr noundef nonnull align 8 dereferenceable(16) %456)
          to label %2955 unwind label %2988

2955:                                             ; preds = %2954
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %456) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %456) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %446) #11
  %2956 = getelementptr inbounds i8, ptr %.014163583, i64 48
  %.not1582 = icmp eq ptr %2956, %2935
  br i1 %.not1582, label %._crit_edge3586, label %.lr.ph3585

2957:                                             ; preds = %.lr.ph3585
  %2958 = landingpad { ptr, i32 }
          cleanup
  br label %2992

2959:                                             ; preds = %2939
  %2960 = landingpad { ptr, i32 }
          cleanup
  br label %2963

2961:                                             ; preds = %2941
  %2962 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %447) #11
  br label %2963

2963:                                             ; preds = %2961, %2959
  %.pn1587 = phi { ptr, i32 } [ %2962, %2961 ], [ %2960, %2959 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %447) #11
  br label %2991

2964:                                             ; preds = %2942
  %2965 = landingpad { ptr, i32 }
          cleanup
  br label %2974

2966:                                             ; preds = %2944
  %2967 = landingpad { ptr, i32 }
          cleanup
  br label %2973

2968:                                             ; preds = %2945
  %2969 = landingpad { ptr, i32 }
          cleanup
  br label %2972

2970:                                             ; preds = %2946
  %2971 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %448) #11
  br label %2972

2972:                                             ; preds = %2970, %2968
  %.pn1589 = phi { ptr, i32 } [ %2971, %2970 ], [ %2969, %2968 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %449) #11
  br label %2973

2973:                                             ; preds = %2972, %2966
  %.pn1589.pn = phi { ptr, i32 } [ %.pn1589, %2972 ], [ %2967, %2966 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #11
  br label %2974

2974:                                             ; preds = %2973, %2964
  %.pn1589.pn.pn = phi { ptr, i32 } [ %.pn1589.pn, %2973 ], [ %2965, %2964 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %451) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %450) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %449) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %448) #11
  br label %2991

2975:                                             ; preds = %2947
  %2976 = landingpad { ptr, i32 }
          cleanup
  br label %2985

2977:                                             ; preds = %2949
  %2978 = landingpad { ptr, i32 }
          cleanup
  br label %2984

2979:                                             ; preds = %2950
  %2980 = landingpad { ptr, i32 }
          cleanup
  br label %2983

2981:                                             ; preds = %2951
  %2982 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %452) #11
  br label %2983

2983:                                             ; preds = %2981, %2979
  %.pn1593 = phi { ptr, i32 } [ %2982, %2981 ], [ %2980, %2979 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #11
  br label %2984

2984:                                             ; preds = %2983, %2977
  %.pn1593.pn = phi { ptr, i32 } [ %.pn1593, %2983 ], [ %2978, %2977 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #11
  br label %2985

2985:                                             ; preds = %2984, %2975
  %.pn1593.pn.pn = phi { ptr, i32 } [ %.pn1593.pn, %2984 ], [ %2976, %2975 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %455) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %454) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %453) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %452) #11
  br label %2991

2986:                                             ; preds = %2952
  %2987 = landingpad { ptr, i32 }
          cleanup
  br label %2990

2988:                                             ; preds = %2954
  %2989 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %456) #11
  br label %2990

2990:                                             ; preds = %2988, %2986
  %.pn1597 = phi { ptr, i32 } [ %2989, %2988 ], [ %2987, %2986 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %456) #11
  br label %2991

2991:                                             ; preds = %2990, %2985, %2974, %2963
  %.pn1597.pn = phi { ptr, i32 } [ %.pn1597, %2990 ], [ %.pn1593.pn.pn, %2985 ], [ %.pn1589.pn.pn, %2974 ], [ %.pn1587, %2963 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #11
  br label %2992

2992:                                             ; preds = %2991, %2957
  %.pn1597.pn.pn = phi { ptr, i32 } [ %.pn1597.pn, %2991 ], [ %2958, %2957 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %446) #11
  br label %3008

2993:                                             ; preds = %._crit_edge3586
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2936, ptr noundef nonnull align 8 dereferenceable(16) %457)
          to label %2994 unwind label %3000

2994:                                             ; preds = %2993
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %457) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %457) #11
  %2995 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %458) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %458, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(11) @.str.136)
          to label %2996 unwind label %3003

2996:                                             ; preds = %2994
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %2995, ptr noundef nonnull align 8 dereferenceable(16) %458)
          to label %2997 unwind label %3005

2997:                                             ; preds = %2996
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %458) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %458) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %445) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %445) #11
  br label %3010

2998:                                             ; preds = %._crit_edge3586
  %2999 = landingpad { ptr, i32 }
          cleanup
  br label %3002

3000:                                             ; preds = %2993
  %3001 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %457) #11
  br label %3002

3002:                                             ; preds = %3000, %2998
  %.pn1583 = phi { ptr, i32 } [ %3001, %3000 ], [ %2999, %2998 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %457) #11
  br label %3008

3003:                                             ; preds = %2994
  %3004 = landingpad { ptr, i32 }
          cleanup
  br label %3007

3005:                                             ; preds = %2996
  %3006 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %458) #11
  br label %3007

3007:                                             ; preds = %3005, %3003
  %.pn1585 = phi { ptr, i32 } [ %3006, %3005 ], [ %3004, %3003 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %458) #11
  br label %3008

3008:                                             ; preds = %3007, %3002, %2992
  %.pn1597.pn.pn.pn = phi { ptr, i32 } [ %.pn1597.pn.pn, %2992 ], [ %.pn1585, %3007 ], [ %.pn1583, %3002 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %445) #11
  br label %3009

3009:                                             ; preds = %3008, %2937
  %.pn1597.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1597.pn.pn.pn, %3008 ], [ %2938, %2937 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %445) #11
  br label %5951

3010:                                             ; preds = %2908, %2997, %2881
  %3011 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %459) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %460) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %461) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %462) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %462)
          to label %3012 unwind label %3025

3012:                                             ; preds = %3010
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %463) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %464) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %465) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %466) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %466) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %465, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %466)
          to label %3013 unwind label %3027

3013:                                             ; preds = %3012
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %464, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %465)
          to label %3014 unwind label %3029

3014:                                             ; preds = %3013
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %463, ptr noundef nonnull align 8 dereferenceable(16) %464)
          to label %3015 unwind label %3031

3015:                                             ; preds = %3014
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %461, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %462, ptr noundef nonnull align 4 dereferenceable(20) %463, ptr noundef nonnull align 8 dereferenceable(16) %393, ptr noundef nonnull align 8 dereferenceable(16) %400)
          to label %3016 unwind label %3033

3016:                                             ; preds = %3015
  %3017 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %461)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %460, ptr noundef nonnull align 8 dereferenceable(136) %3017)
          to label %3018 unwind label %3035

3018:                                             ; preds = %3016
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %459, ptr noundef nonnull align 8 dereferenceable(16) %460)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3011, ptr noundef nonnull align 8 dereferenceable(16) %459)
          to label %3019 unwind label %3037

3019:                                             ; preds = %3018
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %459) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %460) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %461) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %463) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %464) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %465) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %466) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %466) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %465) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %464) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %463) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %462) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %462) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %461) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %460) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %459) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %467) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %468, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3020 unwind label %3045

3020:                                             ; preds = %3019
  invoke void @_ZN6langcc22dt_extract_def_methodsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.111") align 8 %467, ptr noundef nonnull %468, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %3021 unwind label %3047

3021:                                             ; preds = %3020
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %468) #11
  %3022 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry6Method2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %467)
  %3023 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %3022)
  %3024 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %3022)
  %.not16163593 = icmp eq ptr %3023, %3024
  br i1 %.not16163593, label %._crit_edge3597, label %.lr.ph3596

._crit_edge3597:                                  ; preds = %3195, %3021
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %493) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %494) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %495) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %497) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %497, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %497) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %496, ptr noundef nonnull align 8 dereferenceable(24) %497)
          to label %3214 unwind label %3275

3025:                                             ; preds = %3010
  %3026 = landingpad { ptr, i32 }
          cleanup
  br label %3044

3027:                                             ; preds = %3012
  %3028 = landingpad { ptr, i32 }
          cleanup
  br label %3043

3029:                                             ; preds = %3013
  %3030 = landingpad { ptr, i32 }
          cleanup
  br label %3042

3031:                                             ; preds = %3014
  %3032 = landingpad { ptr, i32 }
          cleanup
  br label %3041

3033:                                             ; preds = %3015
  %3034 = landingpad { ptr, i32 }
          cleanup
  br label %3040

3035:                                             ; preds = %3016
  %3036 = landingpad { ptr, i32 }
          cleanup
  br label %3039

3037:                                             ; preds = %3018
  %3038 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %459) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %460) #11
  br label %3039

3039:                                             ; preds = %3037, %3035
  %.pn1609 = phi { ptr, i32 } [ %3038, %3037 ], [ %3036, %3035 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %461) #11
  br label %3040

3040:                                             ; preds = %3039, %3033
  %.pn1609.pn = phi { ptr, i32 } [ %.pn1609, %3039 ], [ %3034, %3033 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %463) #11
  br label %3041

3041:                                             ; preds = %3040, %3031
  %.pn1609.pn.pn = phi { ptr, i32 } [ %.pn1609.pn, %3040 ], [ %3032, %3031 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %464) #11
  br label %3042

3042:                                             ; preds = %3041, %3029
  %.pn1609.pn.pn.pn = phi { ptr, i32 } [ %.pn1609.pn.pn, %3041 ], [ %3030, %3029 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %465) #11
  br label %3043

3043:                                             ; preds = %3042, %3027
  %.pn1609.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1609.pn.pn.pn, %3042 ], [ %3028, %3027 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %466) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %466) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %465) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %464) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %463) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %462) #11
  br label %3044

3044:                                             ; preds = %3043, %3025
  %.pn1609.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1609.pn.pn.pn.pn, %3043 ], [ %3026, %3025 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %462) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %461) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %460) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %459) #11
  br label %5951

3045:                                             ; preds = %3019
  %3046 = landingpad { ptr, i32 }
          cleanup
  br label %5950

3047:                                             ; preds = %3020
  %3048 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %468) #11
  br label %5950

.lr.ph3596:                                       ; preds = %3021, %3195
  %.014173594 = phi ptr [ %3196, %3195 ], [ %3023, %3021 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %469) #11
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %469, ptr noundef nonnull align 8 dereferenceable(48) %.014173594)
          to label %3049 unwind label %3079

3049:                                             ; preds = %.lr.ph3596
  %3050 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48) %469) #11
  %3051 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48) %469) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %470) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %470, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3052 unwind label %3081

3052:                                             ; preds = %3049
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %471) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %472) #11
  %3053 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3054 = getelementptr inbounds i8, ptr %3053, i64 144
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %472, ptr noundef nonnull align 8 dereferenceable(32) %3054)
          to label %3055 unwind label %3083

3055:                                             ; preds = %3052
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %471, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %472)
          to label %3056 unwind label %3085

3056:                                             ; preds = %3055
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %472) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %473) #11
  %3057 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3058 = getelementptr inbounds i8, ptr %3057, i64 192
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %474, ptr noundef nonnull align 8 dereferenceable(16) %3058)
          to label %3059 unwind label %3088

3059:                                             ; preds = %3056
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %473, ptr noundef nonnull %474, ptr noundef nonnull align 8 dereferenceable(16) %470, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %3060 unwind label %3090

3060:                                             ; preds = %3059
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %474) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %475) #11
  %3061 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE16make_lex_builderEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.83") align 8 %475, ptr noundef nonnull align 8 dereferenceable(32) %3061)
          to label %3062 unwind label %3092

3062:                                             ; preds = %3060
  %3063 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3064 = getelementptr inbounds i8, ptr %3063, i64 140
  %3065 = load i8, ptr %3064, align 4, !tbaa !11, !range !31, !noundef !32
  %3066 = trunc nuw i8 %3065 to i1
  br i1 %3066, label %3067, label %3096

3067:                                             ; preds = %3062
  %3068 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3069 = getelementptr inbounds i8, ptr %3068, i64 141
  %3070 = load i8, ptr %3069, align 1, !tbaa !33, !range !31, !noundef !32
  %3071 = trunc nuw i8 %3070 to i1
  br i1 %3071, label %3072, label %3096

3072:                                             ; preds = %3067
  %3073 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6langcc13get_log_levelEv()
  %3074 = load i64, ptr %3073, align 8, !tbaa !5
  %3075 = icmp sgt i64 %3074, -2
  br i1 %3075, label %3076, label %3094

3076:                                             ; preds = %3072
  %3077 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3078 = getelementptr inbounds i8, ptr %3077, i64 144
  invoke void @_ZN6langcc9log_innerIJA51_cNS_8StrSliceEEEEvlDpRKT_(i64 noundef -1, ptr noundef nonnull align 1 dereferenceable(51) @.str.142, ptr noundef nonnull align 8 dereferenceable(32) %3078)
          to label %3094 unwind label %.loopexit.split-lp

3079:                                             ; preds = %.lr.ph3596
  %3080 = landingpad { ptr, i32 }
          cleanup
  br label %3213

3081:                                             ; preds = %3049
  %3082 = landingpad { ptr, i32 }
          cleanup
  br label %3212

3083:                                             ; preds = %3052
  %3084 = landingpad { ptr, i32 }
          cleanup
  br label %3087

3085:                                             ; preds = %3055
  %3086 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #11
  br label %3087

3087:                                             ; preds = %3085, %3083
  %.pn2235 = phi { ptr, i32 } [ %3086, %3085 ], [ %3084, %3083 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %472) #11
  br label %3211

3088:                                             ; preds = %3056
  %3089 = landingpad { ptr, i32 }
          cleanup
  br label %3210

3090:                                             ; preds = %3059
  %3091 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %474) #11
  br label %3210

3092:                                             ; preds = %3060
  %3093 = landingpad { ptr, i32 }
          cleanup
  br label %3209

.loopexit2675:                                    ; preds = %3115
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %3208

.loopexit.split-lp:                               ; preds = %3076, %3094
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %3208

3094:                                             ; preds = %3076, %3072
  invoke void @_ZN6langcc2AXEv() #12
          to label %3095 unwind label %.loopexit.split-lp

3095:                                             ; preds = %3094
  unreachable

3096:                                             ; preds = %3067, %3062
  %3097 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3098 = getelementptr inbounds i8, ptr %3097, i64 140
  %3099 = load i8, ptr %3098, align 4, !tbaa !11, !range !31, !noundef !32
  %3100 = trunc nuw i8 %3099 to i1
  br i1 %3100, label %3106, label %3101

3101:                                             ; preds = %3096
  %3102 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3103 = getelementptr inbounds i8, ptr %3102, i64 141
  %3104 = load i8, ptr %3103, align 1, !tbaa !33, !range !31, !noundef !32
  %3105 = trunc nuw i8 %3104 to i1
  br i1 %3105, label %3106, label %3115

3106:                                             ; preds = %3101, %3096
  %3107 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %477) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %477) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %476, ptr noundef nonnull @.str.143, ptr noundef nonnull align 1 dereferenceable(1) %477)
          to label %3108 unwind label %3110

3108:                                             ; preds = %3106
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3107, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull %476)
          to label %3109 unwind label %3112

3109:                                             ; preds = %3108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %476) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %477) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %477) #11
  br label %3115

3110:                                             ; preds = %3106
  %3111 = landingpad { ptr, i32 }
          cleanup
  br label %3114

3112:                                             ; preds = %3108
  %3113 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %476) #11
  br label %3114

3114:                                             ; preds = %3112, %3110
  %.pn2237 = phi { ptr, i32 } [ %3113, %3112 ], [ %3111, %3110 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %477) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %477) #11
  br label %3208

3115:                                             ; preds = %3109, %3101
  %3116 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJNS_6rc_ptrIS4_EEA2_cEEEvRNSA_INS_9LexOutputEEERKSB_DpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3116, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull align 8 dereferenceable(16) %473, ptr noundef nonnull align 8 dereferenceable(16) %471, ptr noundef nonnull align 1 dereferenceable(2) @.str.52)
          to label %3117 unwind label %.loopexit2675

3117:                                             ; preds = %3115
  %3118 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3119 = getelementptr inbounds i8, ptr %3118, i64 176
  %3120 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node5Param2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3119)
  %3121 = invoke noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node5Param2_TEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %3120)
          to label %3122 unwind label %3143

3122:                                             ; preds = %3117
  %3123 = call noundef ptr @_ZNK6langcc3VecINS_6rc_ptrIN4lang4data4Node5Param2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %3120)
  %.not22393587 = icmp eq ptr %3121, %3123
  br i1 %.not22393587, label %._crit_edge3592, label %.lr.ph3591.preheader

.lr.ph3591.preheader:                             ; preds = %3122
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %478) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %478, ptr noundef nonnull align 8 dereferenceable(16) %3121)
          to label %3124 unwind label %.loopexit.split-lp3665

3124:                                             ; preds = %.lr.ph3591.preheader
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %481) #11
  %3125 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %478)
  %3126 = getelementptr inbounds i8, ptr %3125, i64 168
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %482, ptr noundef nonnull align 8 dereferenceable(16) %3126)
          to label %3127 unwind label %.loopexit.split-lp3679

3127:                                             ; preds = %3124
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %481, ptr noundef nonnull %482, ptr noundef nonnull align 8 dereferenceable(16) %470, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %3128 unwind label %.loopexit.split-lp3684

3128:                                             ; preds = %3127
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %482) #11
  %3129 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3129, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull align 8 dereferenceable(16) %481)
          to label %3130 unwind label %.loopexit.split-lp3689

3130:                                             ; preds = %3128
  %3131 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %483) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %484) #11
  %3132 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %478)
  %3133 = getelementptr inbounds i8, ptr %3132, i64 136
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %484, ptr noundef nonnull align 8 dereferenceable(32) %3133)
          to label %3134 unwind label %.loopexit.split-lp3694

3134:                                             ; preds = %3130
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %483, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %484)
          to label %3135 unwind label %.loopexit.split-lp3699

3135:                                             ; preds = %3134
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3131, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull align 8 dereferenceable(16) %483)
          to label %3136 unwind label %.loopexit.split-lp3704

3136:                                             ; preds = %3135
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %483) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %484) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %483) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %481) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %481) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %478) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %478) #11
  %3137 = getelementptr inbounds i8, ptr %3121, i64 16
  %.not2239.peel = icmp eq ptr %3137, %3123
  br i1 %.not2239.peel, label %._crit_edge3592, label %.lr.ph3591

._crit_edge3592:                                  ; preds = %3163, %3136, %3122
  %3138 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3051)
  %3139 = getelementptr inbounds i8, ptr %3138, i64 141
  %3140 = load i8, ptr %3139, align 1, !tbaa !33, !range !31, !noundef !32
  %3141 = trunc nuw i8 %3140 to i1
  %3142 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  br i1 %3141, label %3173, label %3181

3143:                                             ; preds = %3117
  %3144 = landingpad { ptr, i32 }
          cleanup
  br label %3208

.lr.ph3591:                                       ; preds = %3136, %3163
  %.014193588 = phi ptr [ %3164, %3163 ], [ %3137, %3136 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %478) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %478, ptr noundef nonnull align 8 dereferenceable(16) %.014193588)
          to label %3145 unwind label %.loopexit3664

3145:                                             ; preds = %.lr.ph3591
  %3146 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %480) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %480) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %479, ptr noundef nonnull @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %480)
          to label %3147 unwind label %3148

3147:                                             ; preds = %3145
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3146, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull %479)
          to label %3151 unwind label %3149

.loopexit3664:                                    ; preds = %.lr.ph3591
  %lpad.loopexit3666 = landingpad { ptr, i32 }
          cleanup
  br label %3172

.loopexit.split-lp3665:                           ; preds = %.lr.ph3591.preheader
  %lpad.loopexit.split-lp3667 = landingpad { ptr, i32 }
          cleanup
  br label %3172

3148:                                             ; preds = %3145
  %lpad.loopexit3670 = landingpad { ptr, i32 }
          cleanup
  br label %3150

3149:                                             ; preds = %3147
  %lpad.loopexit3675 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %479) #11
  br label %3150

3150:                                             ; preds = %3149, %3148
  %.pn2248 = phi { ptr, i32 } [ %lpad.loopexit3675, %3149 ], [ %lpad.loopexit3670, %3148 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %480) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %480) #11
  br label %3171

3151:                                             ; preds = %3147
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %479) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %480) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %480) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %481) #11
  %3152 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %478)
  %3153 = getelementptr inbounds i8, ptr %3152, i64 168
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %482, ptr noundef nonnull align 8 dereferenceable(16) %3153)
          to label %3154 unwind label %.loopexit3678

3154:                                             ; preds = %3151
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %481, ptr noundef nonnull %482, ptr noundef nonnull align 8 dereferenceable(16) %470, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %3155 unwind label %.loopexit3683

3155:                                             ; preds = %3154
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %482) #11
  %3156 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3156, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull align 8 dereferenceable(16) %481)
          to label %3157 unwind label %.loopexit3688

3157:                                             ; preds = %3155
  %3158 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %483) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %484) #11
  %3159 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %478)
  %3160 = getelementptr inbounds i8, ptr %3159, i64 136
  invoke void @_ZNK6langcc8StrSlice13to_std_stringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %484, ptr noundef nonnull align 8 dereferenceable(32) %3160)
          to label %3161 unwind label %.loopexit3693

3161:                                             ; preds = %3157
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %483, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %484)
          to label %3162 unwind label %.loopexit3698

3162:                                             ; preds = %3161
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3158, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull align 8 dereferenceable(16) %483)
          to label %3163 unwind label %.loopexit3703

3163:                                             ; preds = %3162
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %483) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %484) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %483) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %481) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %481) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %478) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %478) #11
  %3164 = getelementptr inbounds i8, ptr %.014193588, i64 16
  %.not2239 = icmp eq ptr %3164, %3123
  br i1 %.not2239, label %._crit_edge3592, label %.lr.ph3591, !llvm.loop !34

.loopexit3678:                                    ; preds = %3151
  %lpad.loopexit3680 = landingpad { ptr, i32 }
          cleanup
  br label %3170

.loopexit.split-lp3679:                           ; preds = %3124
  %lpad.loopexit.split-lp3681 = landingpad { ptr, i32 }
          cleanup
  br label %3170

.loopexit3683:                                    ; preds = %3154
  %lpad.loopexit3685 = landingpad { ptr, i32 }
          cleanup
  br label %3165

.loopexit.split-lp3684:                           ; preds = %3127
  %lpad.loopexit.split-lp3686 = landingpad { ptr, i32 }
          cleanup
  br label %3165

3165:                                             ; preds = %.loopexit.split-lp3684, %.loopexit3683
  %lpad.phi3687 = phi { ptr, i32 } [ %lpad.loopexit3685, %.loopexit3683 ], [ %lpad.loopexit.split-lp3686, %.loopexit.split-lp3684 ]
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %482) #11
  br label %3170

.loopexit3688:                                    ; preds = %3155
  %lpad.loopexit3690 = landingpad { ptr, i32 }
          cleanup
  br label %3169

.loopexit.split-lp3689:                           ; preds = %3128
  %lpad.loopexit.split-lp3691 = landingpad { ptr, i32 }
          cleanup
  br label %3169

.loopexit3693:                                    ; preds = %3157
  %lpad.loopexit3695 = landingpad { ptr, i32 }
          cleanup
  br label %3168

.loopexit.split-lp3694:                           ; preds = %3130
  %lpad.loopexit.split-lp3696 = landingpad { ptr, i32 }
          cleanup
  br label %3168

.loopexit3698:                                    ; preds = %3161
  %lpad.loopexit3700 = landingpad { ptr, i32 }
          cleanup
  br label %3167

.loopexit.split-lp3699:                           ; preds = %3134
  %lpad.loopexit.split-lp3701 = landingpad { ptr, i32 }
          cleanup
  br label %3167

.loopexit3703:                                    ; preds = %3162
  %lpad.loopexit3705 = landingpad { ptr, i32 }
          cleanup
  br label %3166

.loopexit.split-lp3704:                           ; preds = %3135
  %lpad.loopexit.split-lp3706 = landingpad { ptr, i32 }
          cleanup
  br label %3166

3166:                                             ; preds = %.loopexit.split-lp3704, %.loopexit3703
  %lpad.phi3707 = phi { ptr, i32 } [ %lpad.loopexit3705, %.loopexit3703 ], [ %lpad.loopexit.split-lp3706, %.loopexit.split-lp3704 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %483) #11
  br label %3167

3167:                                             ; preds = %.loopexit3698, %.loopexit.split-lp3699, %3166
  %.pn2250 = phi { ptr, i32 } [ %lpad.phi3707, %3166 ], [ %lpad.loopexit3700, %.loopexit3698 ], [ %lpad.loopexit.split-lp3701, %.loopexit.split-lp3699 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #11
  br label %3168

3168:                                             ; preds = %.loopexit3693, %.loopexit.split-lp3694, %3167
  %.pn2250.pn = phi { ptr, i32 } [ %.pn2250, %3167 ], [ %lpad.loopexit3695, %.loopexit3693 ], [ %lpad.loopexit.split-lp3696, %.loopexit.split-lp3694 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %484) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %483) #11
  br label %3169

3169:                                             ; preds = %.loopexit3688, %.loopexit.split-lp3689, %3168
  %.pn2250.pn.pn = phi { ptr, i32 } [ %.pn2250.pn, %3168 ], [ %lpad.loopexit3690, %.loopexit3688 ], [ %lpad.loopexit.split-lp3691, %.loopexit.split-lp3689 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %481) #11
  br label %3170

3170:                                             ; preds = %.loopexit3678, %.loopexit.split-lp3679, %3169, %3165
  %.pn2250.pn.pn.pn = phi { ptr, i32 } [ %.pn2250.pn.pn, %3169 ], [ %lpad.phi3687, %3165 ], [ %lpad.loopexit3680, %.loopexit3678 ], [ %lpad.loopexit.split-lp3681, %.loopexit.split-lp3679 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %481) #11
  br label %3171

3171:                                             ; preds = %3170, %3150
  %.pn2250.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2250.pn.pn.pn, %3170 ], [ %.pn2248, %3150 ]
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %478) #11
  br label %3172

3172:                                             ; preds = %.loopexit3664, %.loopexit.split-lp3665, %3171
  %.pn2250.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2250.pn.pn.pn.pn, %3171 ], [ %lpad.loopexit3666, %.loopexit3664 ], [ %lpad.loopexit.split-lp3667, %.loopexit.split-lp3665 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %478) #11
  br label %3208

3173:                                             ; preds = %._crit_edge3592
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %486) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %486) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %485, ptr noundef nonnull @.str.144, ptr noundef nonnull align 1 dereferenceable(1) %486)
          to label %3174 unwind label %3176

3174:                                             ; preds = %3173
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3142, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull %485)
          to label %3175 unwind label %3178

3175:                                             ; preds = %3174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %485) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %486) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %486) #11
  br label %3189

3176:                                             ; preds = %3173
  %3177 = landingpad { ptr, i32 }
          cleanup
  br label %3180

3178:                                             ; preds = %3174
  %3179 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %485) #11
  br label %3180

3180:                                             ; preds = %3178, %3176
  %.pn2242 = phi { ptr, i32 } [ %3179, %3178 ], [ %3177, %3176 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %486) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %486) #11
  br label %3208

3181:                                             ; preds = %._crit_edge3592
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %488) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %488) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %487, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %488)
          to label %3182 unwind label %3184

3182:                                             ; preds = %3181
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %3142, ptr noundef nonnull align 8 dereferenceable(16) %475, ptr noundef nonnull %487)
          to label %3183 unwind label %3186

3183:                                             ; preds = %3182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %487) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %488) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %488) #11
  br label %3189

3184:                                             ; preds = %3181
  %3185 = landingpad { ptr, i32 }
          cleanup
  br label %3188

3186:                                             ; preds = %3182
  %3187 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %487) #11
  br label %3188

3188:                                             ; preds = %3186, %3184
  %.pn2240 = phi { ptr, i32 } [ %3187, %3186 ], [ %3185, %3184 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %488) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %488) #11
  br label %3208

3189:                                             ; preds = %3183, %3175
  %3190 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %489) #11
  %3191 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %491) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %492) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef nonnull @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %492)
          to label %3192 unwind label %3197

3192:                                             ; preds = %3189
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %490, ptr noundef nonnull align 8 dereferenceable(32) %491)
          to label %3193 unwind label %3199

3193:                                             ; preds = %3192
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE8qq_innerENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_6rc_ptrINS_9LexOutputEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %489, ptr noundef nonnull align 8 dereferenceable(32) %3191, ptr noundef nonnull %490, ptr noundef nonnull align 8 dereferenceable(16) %475)
          to label %3194 unwind label %3201

3194:                                             ; preds = %3193
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3190, ptr noundef nonnull align 8 dereferenceable(16) %489)
          to label %3195 unwind label %3203

3195:                                             ; preds = %3194
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %489) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %490) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %491) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %492) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %491) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %489) #11
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %475) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %475) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %473) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %473) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %471) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %471) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %470) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %470) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %469) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %469) #11
  %3196 = getelementptr inbounds i8, ptr %.014173594, i64 48
  %.not1616 = icmp eq ptr %3196, %3024
  br i1 %.not1616, label %._crit_edge3597, label %.lr.ph3596

3197:                                             ; preds = %3189
  %3198 = landingpad { ptr, i32 }
          cleanup
  br label %3207

3199:                                             ; preds = %3192
  %3200 = landingpad { ptr, i32 }
          cleanup
  br label %3206

3201:                                             ; preds = %3193
  %3202 = landingpad { ptr, i32 }
          cleanup
  br label %3205

3203:                                             ; preds = %3194
  %3204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %489) #11
  br label %3205

3205:                                             ; preds = %3203, %3201
  %.pn2244 = phi { ptr, i32 } [ %3204, %3203 ], [ %3202, %3201 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %490) #11
  br label %3206

3206:                                             ; preds = %3205, %3199
  %.pn2244.pn = phi { ptr, i32 } [ %.pn2244, %3205 ], [ %3200, %3199 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %491) #11
  br label %3207

3207:                                             ; preds = %3206, %3197
  %.pn2244.pn.pn = phi { ptr, i32 } [ %.pn2244.pn, %3206 ], [ %3198, %3197 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %492) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %491) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %489) #11
  br label %3208

3208:                                             ; preds = %.loopexit2675, %.loopexit.split-lp, %3180, %3188, %3207, %3172, %3143, %3114
  %.pn2259 = phi { ptr, i32 } [ %.pn2237, %3114 ], [ %.pn2244.pn.pn, %3207 ], [ %.pn2242, %3180 ], [ %.pn2240, %3188 ], [ %.pn2250.pn.pn.pn.pn.pn, %3172 ], [ %3144, %3143 ], [ %lpad.loopexit, %.loopexit2675 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %475) #11
  br label %3209

3209:                                             ; preds = %3208, %3092
  %.pn2259.pn = phi { ptr, i32 } [ %.pn2259, %3208 ], [ %3093, %3092 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %475) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %473) #11
  br label %3210

3210:                                             ; preds = %3209, %3090, %3088
  %.pn2259.pn.pn = phi { ptr, i32 } [ %.pn2259.pn, %3209 ], [ %3091, %3090 ], [ %3089, %3088 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %473) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %471) #11
  br label %3211

3211:                                             ; preds = %3210, %3087
  %.pn2259.pn.pn.pn = phi { ptr, i32 } [ %.pn2259.pn.pn, %3210 ], [ %.pn2235, %3087 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %471) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %470) #11
  br label %3212

3212:                                             ; preds = %3211, %3081
  %.pn2259.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2259.pn.pn.pn, %3211 ], [ %3082, %3081 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %470) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %469) #11
  br label %3213

3213:                                             ; preds = %3212, %3079
  %.pn2259.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2259.pn.pn.pn.pn, %3212 ], [ %3080, %3079 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %469) #11
  br label %5949

3214:                                             ; preds = %._crit_edge3597
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %499) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %499) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %499)
          to label %3215 unwind label %3277

3215:                                             ; preds = %3214
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %495, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %496, ptr noundef nonnull %498)
          to label %3216 unwind label %3279

3216:                                             ; preds = %3215
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %500) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %494, ptr nonnull %495, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %500)
          to label %3217 unwind label %3281

3217:                                             ; preds = %3216
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %493, ptr noundef nonnull align 8 dereferenceable(24) %494)
          to label %3218 unwind label %3283

3218:                                             ; preds = %3217
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %494) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %500) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %495) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %498) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %499) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %499) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %496) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %497) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %497) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %495) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %494) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %501) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %502)
          to label %3219 unwind label %3287

3219:                                             ; preds = %3218
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %501, i32 noundef 23, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %502)
          to label %3220 unwind label %3289

3220:                                             ; preds = %3219
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %502) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %503) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %504)
          to label %3221 unwind label %3291

3221:                                             ; preds = %3220
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %505)
          to label %3222 unwind label %3293

3222:                                             ; preds = %3221
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %503, i32 noundef 22, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %504, ptr noundef nonnull %505)
          to label %3223 unwind label %3295

3223:                                             ; preds = %3222
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %505) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %504) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %506) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %507)
          to label %3224 unwind label %3298

3224:                                             ; preds = %3223
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %508)
          to label %3225 unwind label %3300

3225:                                             ; preds = %3224
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %506, i32 noundef 23, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %507, ptr noundef nonnull %508)
          to label %3226 unwind label %3302

3226:                                             ; preds = %3225
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %508) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %507) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %509) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %509)
          to label %3227 unwind label %3305

3227:                                             ; preds = %3226
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %510) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %510)
          to label %3228 unwind label %3307

3228:                                             ; preds = %3227
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %511) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %512) #11
  %3229 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %513) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %514) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %514) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %513, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %514)
          to label %3230 unwind label %3309

3230:                                             ; preds = %3228
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE2qqIJA16_cEEENS_6rc_ptrIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %512, ptr noundef nonnull align 8 dereferenceable(32) %3229, ptr noundef nonnull align 8 dereferenceable(32) %513, ptr noundef nonnull align 1 dereferenceable(16) @.str.112)
          to label %3231 unwind label %3311

3231:                                             ; preds = %3230
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %515) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %516) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %516) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %516)
          to label %3232 unwind label %3313

3232:                                             ; preds = %3231
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %511, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %510, ptr noundef nonnull align 8 dereferenceable(16) %493, ptr noundef nonnull align 8 dereferenceable(16) %512, ptr noundef nonnull align 8 dereferenceable(32) %515)
          to label %3233 unwind label %3315

3233:                                             ; preds = %3232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %515) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %516) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %516) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %515) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %512) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %514) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %514) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %513) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %512) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %517) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %518) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %519) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %521) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %521, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %521) #11
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %520, ptr noundef nonnull align 8 dereferenceable(24) %521)
          to label %3234 unwind label %3320

3234:                                             ; preds = %3233
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %523) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %522, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %523)
          to label %3235 unwind label %3322

3235:                                             ; preds = %3234
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %519, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %520, ptr noundef nonnull %522)
          to label %3236 unwind label %3324

3236:                                             ; preds = %3235
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %524) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %524) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %518, ptr nonnull %519, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %524)
          to label %3237 unwind label %3326

3237:                                             ; preds = %3236
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %517, ptr noundef nonnull align 8 dereferenceable(24) %518)
          to label %3238 unwind label %3328

3238:                                             ; preds = %3237
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %518) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %524) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %524) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %519) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %523) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %520) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %521) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %521) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %519) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %518) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %525) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %526)
          to label %3239 unwind label %3332

3239:                                             ; preds = %3238
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %525, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %526)
          to label %3240 unwind label %3334

3240:                                             ; preds = %3239
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %526) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %527) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %528)
          to label %3241 unwind label %3336

3241:                                             ; preds = %3240
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %529)
          to label %3242 unwind label %3338

3242:                                             ; preds = %3241
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %527, i32 noundef 20, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %528, ptr noundef nonnull %529)
          to label %3243 unwind label %3340

3243:                                             ; preds = %3242
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %529) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %528) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %530) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %531)
          to label %3244 unwind label %3343

3244:                                             ; preds = %3243
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %532)
          to label %3245 unwind label %3345

3245:                                             ; preds = %3244
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %530, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %531, ptr noundef nonnull %532)
          to label %3246 unwind label %3347

3246:                                             ; preds = %3245
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %532) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %531) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %533) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %534)
          to label %3247 unwind label %3350

3247:                                             ; preds = %3246
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %535, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %3248 unwind label %3352

3248:                                             ; preds = %3247
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %533, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %534, ptr noundef nonnull %535)
          to label %3249 unwind label %3354

3249:                                             ; preds = %3248
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %535) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %534) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %536) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %536)
          to label %3250 unwind label %3357

3250:                                             ; preds = %3249
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %537) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %537)
          to label %3251 unwind label %3359

3251:                                             ; preds = %3250
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %538) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %539) #11
  %3252 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %540) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %541) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %541)
          to label %3253 unwind label %3361

3253:                                             ; preds = %3251
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE2qqIJA16_cEEENS_6rc_ptrIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %539, ptr noundef nonnull align 8 dereferenceable(32) %3252, ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef nonnull align 1 dereferenceable(16) @.str.112)
          to label %3254 unwind label %3363

3254:                                             ; preds = %3253
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %542) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %543) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %542, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %543)
          to label %3255 unwind label %3365

3255:                                             ; preds = %3254
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_param_accINS_6rc_ptrIN4lang2cc4Node2_TEEEEES7_RNS2_INS_3VecIS7_EEEERKNS2_INS8_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKT_RKSH_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %538, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %537, ptr noundef nonnull align 8 dereferenceable(16) %517, ptr noundef nonnull align 8 dereferenceable(16) %539, ptr noundef nonnull align 8 dereferenceable(32) %542)
          to label %3256 unwind label %3367

3256:                                             ; preds = %3255
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %543) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %542) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %539) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %541) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %540) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %539) #11
  br i1 %1961, label %3257, label %3894

3257:                                             ; preds = %3256
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %544) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %544)
          to label %3258 unwind label %3372

3258:                                             ; preds = %3257
  %3259 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %3260 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3259, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3261 unwind label %3374

3261:                                             ; preds = %3258
  %3262 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3260)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %545) #11
  %3263 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3262)
          to label %3264 unwind label %3376

3264:                                             ; preds = %3261
  %3265 = extractvalue { ptr, i64 } %3263, 0
  store ptr %3265, ptr %545, align 8
  %3266 = extractvalue { ptr, i64 } %3263, 1
  store i64 %3266, ptr %1902, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %546) #11
  %3267 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3262)
  %3268 = extractvalue { ptr, i64 } %3267, 0
  store ptr %3268, ptr %546, align 8
  %3269 = extractvalue { ptr, i64 } %3267, 1
  store i64 %3269, ptr %1903, align 8
  br label %3270

3270:                                             ; preds = %3387, %3264
  %3271 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %545, ptr noundef nonnull align 8 dereferenceable(16) %546)
          to label %3272 unwind label %3378

3272:                                             ; preds = %3270
  br i1 %3271, label %3380, label %3273

3273:                                             ; preds = %3272
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %546) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %545) #11
  %3274 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %548) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %549) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %550) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %552)
          to label %3398 unwind label %3430

3275:                                             ; preds = %._crit_edge3597
  %3276 = landingpad { ptr, i32 }
          cleanup
  br label %3286

3277:                                             ; preds = %3214
  %3278 = landingpad { ptr, i32 }
          cleanup
  br label %3285

3279:                                             ; preds = %3215
  %3280 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2666

3281:                                             ; preds = %3216
  %3282 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2666.loopexit

3283:                                             ; preds = %3217
  %3284 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %494) #11
  br label %.loopexit2666.loopexit

.loopexit2666.loopexit:                           ; preds = %3283, %3281
  %.pn1617 = phi { ptr, i32 } [ %3284, %3283 ], [ %3282, %3281 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %500) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %495) #11
  br label %.loopexit2666

.loopexit2666:                                    ; preds = %.loopexit2666.loopexit, %3279
  %.pn1617.pn = phi { ptr, i32 } [ %3280, %3279 ], [ %.pn1617, %.loopexit2666.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %498) #11
  br label %3285

3285:                                             ; preds = %.loopexit2666, %3277
  %.pn1617.pn.pn = phi { ptr, i32 } [ %.pn1617.pn, %.loopexit2666 ], [ %3278, %3277 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %499) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %499) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %496) #11
  br label %3286

3286:                                             ; preds = %3285, %3275
  %.pn1617.pn.pn.pn = phi { ptr, i32 } [ %.pn1617.pn.pn, %3285 ], [ %3276, %3275 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %497) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %497) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %495) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %494) #11
  br label %5948

3287:                                             ; preds = %3218
  %3288 = landingpad { ptr, i32 }
          cleanup
  br label %5947

3289:                                             ; preds = %3219
  %3290 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %502) #11
  br label %5947

3291:                                             ; preds = %3220
  %3292 = landingpad { ptr, i32 }
          cleanup
  br label %5946

3293:                                             ; preds = %3221
  %3294 = landingpad { ptr, i32 }
          cleanup
  br label %3297

3295:                                             ; preds = %3222
  %3296 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %505) #11
  br label %3297

3297:                                             ; preds = %3295, %3293
  %.pn1622 = phi { ptr, i32 } [ %3296, %3295 ], [ %3294, %3293 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %504) #11
  br label %5946

3298:                                             ; preds = %3223
  %3299 = landingpad { ptr, i32 }
          cleanup
  br label %5945

3300:                                             ; preds = %3224
  %3301 = landingpad { ptr, i32 }
          cleanup
  br label %3304

3302:                                             ; preds = %3225
  %3303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %508) #11
  br label %3304

3304:                                             ; preds = %3302, %3300
  %.pn1624 = phi { ptr, i32 } [ %3303, %3302 ], [ %3301, %3300 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %507) #11
  br label %5945

3305:                                             ; preds = %3226
  %3306 = landingpad { ptr, i32 }
          cleanup
  br label %5944

3307:                                             ; preds = %3227
  %3308 = landingpad { ptr, i32 }
          cleanup
  br label %5943

3309:                                             ; preds = %3228
  %3310 = landingpad { ptr, i32 }
          cleanup
  br label %3319

3311:                                             ; preds = %3230
  %3312 = landingpad { ptr, i32 }
          cleanup
  br label %3318

3313:                                             ; preds = %3231
  %3314 = landingpad { ptr, i32 }
          cleanup
  br label %3317

3315:                                             ; preds = %3232
  %3316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %515) #11
  br label %3317

3317:                                             ; preds = %3315, %3313
  %.pn1626 = phi { ptr, i32 } [ %3316, %3315 ], [ %3314, %3313 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %516) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %516) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %515) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %512) #11
  br label %3318

3318:                                             ; preds = %3317, %3311
  %.pn1626.pn = phi { ptr, i32 } [ %.pn1626, %3317 ], [ %3312, %3311 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #11
  br label %3319

3319:                                             ; preds = %3318, %3309
  %.pn1626.pn.pn = phi { ptr, i32 } [ %.pn1626.pn, %3318 ], [ %3310, %3309 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %514) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %514) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %513) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %512) #11
  br label %5942

3320:                                             ; preds = %3233
  %3321 = landingpad { ptr, i32 }
          cleanup
  br label %3331

3322:                                             ; preds = %3234
  %3323 = landingpad { ptr, i32 }
          cleanup
  br label %3330

3324:                                             ; preds = %3235
  %3325 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2665

3326:                                             ; preds = %3236
  %3327 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2665.loopexit

3328:                                             ; preds = %3237
  %3329 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %518) #11
  br label %.loopexit2665.loopexit

.loopexit2665.loopexit:                           ; preds = %3328, %3326
  %.pn1630 = phi { ptr, i32 } [ %3329, %3328 ], [ %3327, %3326 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %524) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %524) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %519) #11
  br label %.loopexit2665

.loopexit2665:                                    ; preds = %.loopexit2665.loopexit, %3324
  %.pn1630.pn = phi { ptr, i32 } [ %3325, %3324 ], [ %.pn1630, %.loopexit2665.loopexit ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #11
  br label %3330

3330:                                             ; preds = %.loopexit2665, %3322
  %.pn1630.pn.pn = phi { ptr, i32 } [ %.pn1630.pn, %.loopexit2665 ], [ %3323, %3322 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %523) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %520) #11
  br label %3331

3331:                                             ; preds = %3330, %3320
  %.pn1630.pn.pn.pn = phi { ptr, i32 } [ %.pn1630.pn.pn, %3330 ], [ %3321, %3320 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %521) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %521) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %519) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %518) #11
  br label %5941

3332:                                             ; preds = %3238
  %3333 = landingpad { ptr, i32 }
          cleanup
  br label %5940

3334:                                             ; preds = %3239
  %3335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %526) #11
  br label %5940

3336:                                             ; preds = %3240
  %3337 = landingpad { ptr, i32 }
          cleanup
  br label %5939

3338:                                             ; preds = %3241
  %3339 = landingpad { ptr, i32 }
          cleanup
  br label %3342

3340:                                             ; preds = %3242
  %3341 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %529) #11
  br label %3342

3342:                                             ; preds = %3340, %3338
  %.pn1635 = phi { ptr, i32 } [ %3341, %3340 ], [ %3339, %3338 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %528) #11
  br label %5939

3343:                                             ; preds = %3243
  %3344 = landingpad { ptr, i32 }
          cleanup
  br label %5938

3345:                                             ; preds = %3244
  %3346 = landingpad { ptr, i32 }
          cleanup
  br label %3349

3347:                                             ; preds = %3245
  %3348 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %532) #11
  br label %3349

3349:                                             ; preds = %3347, %3345
  %.pn1637 = phi { ptr, i32 } [ %3348, %3347 ], [ %3346, %3345 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %531) #11
  br label %5938

3350:                                             ; preds = %3246
  %3351 = landingpad { ptr, i32 }
          cleanup
  br label %5937

3352:                                             ; preds = %3247
  %3353 = landingpad { ptr, i32 }
          cleanup
  br label %3356

3354:                                             ; preds = %3248
  %3355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %535) #11
  br label %3356

3356:                                             ; preds = %3354, %3352
  %.pn1639 = phi { ptr, i32 } [ %3355, %3354 ], [ %3353, %3352 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %534) #11
  br label %5937

3357:                                             ; preds = %3249
  %3358 = landingpad { ptr, i32 }
          cleanup
  br label %5936

3359:                                             ; preds = %3250
  %3360 = landingpad { ptr, i32 }
          cleanup
  br label %5935

3361:                                             ; preds = %3251
  %3362 = landingpad { ptr, i32 }
          cleanup
  br label %3371

3363:                                             ; preds = %3253
  %3364 = landingpad { ptr, i32 }
          cleanup
  br label %3370

3365:                                             ; preds = %3254
  %3366 = landingpad { ptr, i32 }
          cleanup
  br label %3369

3367:                                             ; preds = %3255
  %3368 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #11
  br label %3369

3369:                                             ; preds = %3367, %3365
  %.pn1641 = phi { ptr, i32 } [ %3368, %3367 ], [ %3366, %3365 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %543) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %542) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %539) #11
  br label %3370

3370:                                             ; preds = %3369, %3363
  %.pn1641.pn = phi { ptr, i32 } [ %.pn1641, %3369 ], [ %3364, %3363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #11
  br label %3371

3371:                                             ; preds = %3370, %3361
  %.pn1641.pn.pn = phi { ptr, i32 } [ %.pn1641.pn, %3370 ], [ %3362, %3361 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %541) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %540) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %539) #11
  br label %5934

3372:                                             ; preds = %3257
  %3373 = landingpad { ptr, i32 }
          cleanup
  br label %3893

3374:                                             ; preds = %3258
  %3375 = landingpad { ptr, i32 }
          cleanup
  br label %3892

3376:                                             ; preds = %3261
  %3377 = landingpad { ptr, i32 }
          cleanup
  br label %3397

3378:                                             ; preds = %3387, %3270
  %3379 = landingpad { ptr, i32 }
          cleanup
  br label %3396

3380:                                             ; preds = %3272
  %3381 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %545)
          to label %3382 unwind label %3389

3382:                                             ; preds = %3380
  %3383 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3381) #11
  %3384 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3381) #11
  %3385 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %544)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %547) #11
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %547, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %3383)
          to label %3386 unwind label %3391

3386:                                             ; preds = %3382
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3385, ptr noundef nonnull align 8 dereferenceable(16) %547)
          to label %3387 unwind label %3393

3387:                                             ; preds = %3386
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %547) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %547) #11
  %3388 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %545)
          to label %3270 unwind label %3378

3389:                                             ; preds = %3380
  %3390 = landingpad { ptr, i32 }
          cleanup
  br label %3396

3391:                                             ; preds = %3382
  %3392 = landingpad { ptr, i32 }
          cleanup
  br label %3395

3393:                                             ; preds = %3386
  %3394 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %547) #11
  br label %3395

3395:                                             ; preds = %3393, %3391
  %.pn2210 = phi { ptr, i32 } [ %3394, %3393 ], [ %3392, %3391 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %547) #11
  br label %3396

3396:                                             ; preds = %3389, %3395, %3378
  %.pn2213 = phi { ptr, i32 } [ %3379, %3378 ], [ %.pn2210, %3395 ], [ %3390, %3389 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %546) #11
  br label %3397

3397:                                             ; preds = %3396, %3376
  %.pn2213.pn = phi { ptr, i32 } [ %.pn2213, %3396 ], [ %3377, %3376 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %545) #11
  br label %3892

3398:                                             ; preds = %3273
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %551, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %552)
          to label %3399 unwind label %3432

3399:                                             ; preds = %3398
  invoke void @_ZN6langcc13CppGenContext17gen_cpp_decl_enumENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %550, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %551, ptr noundef nonnull align 8 dereferenceable(16) %544)
          to label %3400 unwind label %3434

3400:                                             ; preds = %3399
  %3401 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %550)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %549, ptr noundef nonnull align 8 dereferenceable(136) %3401)
          to label %3402 unwind label %3436

3402:                                             ; preds = %3400
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %548, ptr noundef nonnull align 8 dereferenceable(16) %549)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3274, ptr noundef nonnull align 8 dereferenceable(16) %548)
          to label %3403 unwind label %3438

3403:                                             ; preds = %3402
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %548) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %549) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %550) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %551) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %552) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %550) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %549) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %548) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %553) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %554)
          to label %3404 unwind label %3444

3404:                                             ; preds = %3403
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %555)
          to label %3405 unwind label %3446

3405:                                             ; preds = %3404
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %553, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %554, ptr noundef nonnull %555)
          to label %3406 unwind label %3448

3406:                                             ; preds = %3405
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %555) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %554) #11
  %3407 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %556) #11
  %3408 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %558) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %559) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %559) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef nonnull @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %559)
          to label %3409 unwind label %3451

3409:                                             ; preds = %3406
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %557, ptr noundef nonnull align 8 dereferenceable(32) %558)
          to label %3410 unwind label %3453

3410:                                             ; preds = %3409
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cA2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %556, ptr noundef nonnull align 8 dereferenceable(32) %3408, ptr noundef nonnull %557, ptr noundef nonnull align 8 dereferenceable(16) %553, ptr noundef nonnull align 1 dereferenceable(3) @.str.146, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %3411 unwind label %3455

3411:                                             ; preds = %3410
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3407, ptr noundef nonnull align 8 dereferenceable(16) %556)
          to label %3412 unwind label %3457

3412:                                             ; preds = %3411
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %556) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %557) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %559) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %559) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %558) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %556) #11
  %3413 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %3414 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3413, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3415 unwind label %3462

3415:                                             ; preds = %3412
  %3416 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3414)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %560) #11
  %3417 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3416)
          to label %3418 unwind label %3464

3418:                                             ; preds = %3415
  %3419 = extractvalue { ptr, i64 } %3417, 0
  store ptr %3419, ptr %560, align 8
  %3420 = extractvalue { ptr, i64 } %3417, 1
  store i64 %3420, ptr %1904, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %561) #11
  %3421 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3416)
  %3422 = extractvalue { ptr, i64 } %3421, 0
  store ptr %3422, ptr %561, align 8
  %3423 = extractvalue { ptr, i64 } %3421, 1
  store i64 %3423, ptr %1905, align 8
  br label %3424

3424:                                             ; preds = %3481, %3418
  %3425 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %560, ptr noundef nonnull align 8 dereferenceable(16) %561)
          to label %3426 unwind label %3466

3426:                                             ; preds = %3424
  br i1 %3425, label %3468, label %3427

3427:                                             ; preds = %3426
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %561) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %560) #11
  %3428 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %3429 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3428, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3503 unwind label %3518

3430:                                             ; preds = %3273
  %3431 = landingpad { ptr, i32 }
          cleanup
  br label %3443

3432:                                             ; preds = %3398
  %3433 = landingpad { ptr, i32 }
          cleanup
  br label %3442

3434:                                             ; preds = %3399
  %3435 = landingpad { ptr, i32 }
          cleanup
  br label %3441

3436:                                             ; preds = %3400
  %3437 = landingpad { ptr, i32 }
          cleanup
  br label %3440

3438:                                             ; preds = %3402
  %3439 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %548) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %549) #11
  br label %3440

3440:                                             ; preds = %3438, %3436
  %.pn1645 = phi { ptr, i32 } [ %3439, %3438 ], [ %3437, %3436 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %550) #11
  br label %3441

3441:                                             ; preds = %3440, %3434
  %.pn1645.pn = phi { ptr, i32 } [ %.pn1645, %3440 ], [ %3435, %3434 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %551) #11
  br label %3442

3442:                                             ; preds = %3441, %3432
  %.pn1645.pn.pn = phi { ptr, i32 } [ %.pn1645.pn, %3441 ], [ %3433, %3432 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %552) #11
  br label %3443

3443:                                             ; preds = %3442, %3430
  %.pn1645.pn.pn.pn = phi { ptr, i32 } [ %.pn1645.pn.pn, %3442 ], [ %3431, %3430 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %550) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %549) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %548) #11
  br label %3892

3444:                                             ; preds = %3403
  %3445 = landingpad { ptr, i32 }
          cleanup
  br label %3891

3446:                                             ; preds = %3404
  %3447 = landingpad { ptr, i32 }
          cleanup
  br label %3450

3448:                                             ; preds = %3405
  %3449 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %555) #11
  br label %3450

3450:                                             ; preds = %3448, %3446
  %.pn1650 = phi { ptr, i32 } [ %3449, %3448 ], [ %3447, %3446 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %554) #11
  br label %3891

3451:                                             ; preds = %3406
  %3452 = landingpad { ptr, i32 }
          cleanup
  br label %3461

3453:                                             ; preds = %3409
  %3454 = landingpad { ptr, i32 }
          cleanup
  br label %3460

3455:                                             ; preds = %3410
  %3456 = landingpad { ptr, i32 }
          cleanup
  br label %3459

3457:                                             ; preds = %3411
  %3458 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %556) #11
  br label %3459

3459:                                             ; preds = %3457, %3455
  %.pn1652 = phi { ptr, i32 } [ %3458, %3457 ], [ %3456, %3455 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %557) #11
  br label %3460

3460:                                             ; preds = %3459, %3453
  %.pn1652.pn = phi { ptr, i32 } [ %.pn1652, %3459 ], [ %3454, %3453 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #11
  br label %3461

3461:                                             ; preds = %3460, %3451
  %.pn1652.pn.pn = phi { ptr, i32 } [ %.pn1652.pn, %3460 ], [ %3452, %3451 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %559) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %559) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %558) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %556) #11
  br label %3890

3462:                                             ; preds = %3412
  %3463 = landingpad { ptr, i32 }
          cleanup
  br label %3890

3464:                                             ; preds = %3415
  %3465 = landingpad { ptr, i32 }
          cleanup
  br label %3502

3466:                                             ; preds = %3481, %3424
  %3467 = landingpad { ptr, i32 }
          cleanup
  br label %3501

3468:                                             ; preds = %3426
  %3469 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %560)
          to label %3470 unwind label %3483

3470:                                             ; preds = %3468
  %3471 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3469) #11
  %3472 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3469) #11
  %3473 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %299, ptr noundef nonnull align 8 dereferenceable(32) %3471)
          to label %3474 unwind label %3485

3474:                                             ; preds = %3470
  %3475 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3473)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %562) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %563) #11
  %3476 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %565) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %566) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %566) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %565, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %566)
          to label %3477 unwind label %3487

3477:                                             ; preds = %3474
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %564, ptr noundef nonnull align 8 dereferenceable(32) %565)
          to label %3478 unwind label %3489

3478:                                             ; preds = %3477
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %563, ptr noundef nonnull align 8 dereferenceable(32) %3476, ptr noundef nonnull %564, ptr noundef nonnull align 1 dereferenceable(7) @.str.147, ptr noundef nonnull align 8 dereferenceable(16) %553, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %3471)
          to label %3479 unwind label %3491

3479:                                             ; preds = %3478
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %562, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %563)
          to label %3480 unwind label %3493

3480:                                             ; preds = %3479
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3475, ptr noundef nonnull align 8 dereferenceable(16) %562)
          to label %3481 unwind label %3495

3481:                                             ; preds = %3480
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %562) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %563) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %564) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %565) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %566) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %566) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %565) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %563) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %562) #11
  %3482 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %560)
          to label %3424 unwind label %3466

3483:                                             ; preds = %3468
  %3484 = landingpad { ptr, i32 }
          cleanup
  br label %3501

3485:                                             ; preds = %3470
  %3486 = landingpad { ptr, i32 }
          cleanup
  br label %3501

3487:                                             ; preds = %3474
  %3488 = landingpad { ptr, i32 }
          cleanup
  br label %3500

3489:                                             ; preds = %3477
  %3490 = landingpad { ptr, i32 }
          cleanup
  br label %3499

3491:                                             ; preds = %3478
  %3492 = landingpad { ptr, i32 }
          cleanup
  br label %3498

3493:                                             ; preds = %3479
  %3494 = landingpad { ptr, i32 }
          cleanup
  br label %3497

3495:                                             ; preds = %3480
  %3496 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %562) #11
  br label %3497

3497:                                             ; preds = %3495, %3493
  %.pn2197 = phi { ptr, i32 } [ %3496, %3495 ], [ %3494, %3493 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %563) #11
  br label %3498

3498:                                             ; preds = %3497, %3491
  %.pn2197.pn = phi { ptr, i32 } [ %.pn2197, %3497 ], [ %3492, %3491 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %564) #11
  br label %3499

3499:                                             ; preds = %3498, %3489
  %.pn2197.pn.pn = phi { ptr, i32 } [ %.pn2197.pn, %3498 ], [ %3490, %3489 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %565) #11
  br label %3500

3500:                                             ; preds = %3499, %3487
  %.pn2197.pn.pn.pn = phi { ptr, i32 } [ %.pn2197.pn.pn, %3499 ], [ %3488, %3487 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %566) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %566) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %565) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %563) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %562) #11
  br label %3501

3501:                                             ; preds = %3483, %3500, %3485, %3466
  %.pn2204 = phi { ptr, i32 } [ %3467, %3466 ], [ %3484, %3483 ], [ %.pn2197.pn.pn.pn, %3500 ], [ %3486, %3485 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %561) #11
  br label %3502

3502:                                             ; preds = %3501, %3464
  %.pn2204.pn = phi { ptr, i32 } [ %.pn2204, %3501 ], [ %3465, %3464 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %560) #11
  br label %3890

3503:                                             ; preds = %3427
  %3504 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3429)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %567) #11
  %3505 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3504)
          to label %3506 unwind label %3520

3506:                                             ; preds = %3503
  %3507 = extractvalue { ptr, i64 } %3505, 0
  store ptr %3507, ptr %567, align 8
  %3508 = extractvalue { ptr, i64 } %3505, 1
  store i64 %3508, ptr %1906, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %568) #11
  %3509 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3504)
  %3510 = extractvalue { ptr, i64 } %3509, 0
  store ptr %3510, ptr %568, align 8
  %3511 = extractvalue { ptr, i64 } %3509, 1
  store i64 %3511, ptr %1907, align 8
  br label %3512

3512:                                             ; preds = %3587, %3506
  %3513 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %567, ptr noundef nonnull align 8 dereferenceable(16) %568)
          to label %3514 unwind label %3522

3514:                                             ; preds = %3512
  br i1 %3513, label %3524, label %3515

3515:                                             ; preds = %3514
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %568) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %567) #11
  %3516 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %3517 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3516, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3619 unwind label %3632

3518:                                             ; preds = %3427
  %3519 = landingpad { ptr, i32 }
          cleanup
  br label %3890

3520:                                             ; preds = %3503
  %3521 = landingpad { ptr, i32 }
          cleanup
  br label %3618

3522:                                             ; preds = %3587, %3512
  %3523 = landingpad { ptr, i32 }
          cleanup
  br label %3617

3524:                                             ; preds = %3514
  %3525 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %567)
          to label %3526 unwind label %3544

3526:                                             ; preds = %3524
  %3527 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3525) #11
  %3528 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3525) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %569) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %570, ptr noundef nonnull align 8 dereferenceable(16) %3528)
          to label %3529 unwind label %3546

3529:                                             ; preds = %3526
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %569, ptr noundef nonnull %570, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %3530 unwind label %3548

3530:                                             ; preds = %3529
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %570) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %571) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %573) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %574) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %575) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %575, ptr noundef nonnull align 8 dereferenceable(32) %3527)
          to label %3531 unwind label %3550

3531:                                             ; preds = %3530
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %576) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %576) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %574, ptr nonnull %575, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %576)
          to label %3532 unwind label %3552

3532:                                             ; preds = %3531
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %573, ptr noundef nonnull align 8 dereferenceable(24) %574)
          to label %3533 unwind label %3554

3533:                                             ; preds = %3532
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %572, ptr noundef nonnull align 8 dereferenceable(16) %573)
          to label %3534 unwind label %3556

3534:                                             ; preds = %3533
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %577)
          to label %3535 unwind label %3558

3535:                                             ; preds = %3534
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %571, i32 noundef 10, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %572, ptr noundef nonnull %577)
          to label %3536 unwind label %3560

3536:                                             ; preds = %3535
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %577) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %572) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %573) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %574) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %576) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %576) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %575) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %575) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %574) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %573) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %578) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %578) #11
  %3537 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %207)
  %3538 = call noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %3537)
  %3539 = call noundef ptr @_ZNK6langcc3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %3537)
  %.not21773598 = icmp eq ptr %3538, %3539
  br i1 %.not21773598, label %._crit_edge3603, label %.lr.ph3602.preheader

.lr.ph3602.preheader:                             ; preds = %3536
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %579) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %579, ptr noundef nonnull align 8 dereferenceable(32) %3538)
          to label %3540 unwind label %.loopexit.split-lp3710

3540:                                             ; preds = %.lr.ph3602.preheader
  %3541 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %578, ptr noundef nonnull align 8 dereferenceable(32) %579)
          to label %3542 unwind label %.loopexit.split-lp3715

3542:                                             ; preds = %3540
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %579) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %579) #11
  %3543 = getelementptr inbounds i8, ptr %3538, i64 32
  %.not2177.peel = icmp eq ptr %3543, %3539
  br i1 %.not2177.peel, label %._crit_edge3603, label %.lr.ph3602

._crit_edge3603:                                  ; preds = %3570, %3542, %3536
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %580) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %581) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %582) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef nonnull @.str.148, ptr noundef nonnull align 1 dereferenceable(1) %582)
          to label %3573 unwind label %3589

3544:                                             ; preds = %3524
  %3545 = landingpad { ptr, i32 }
          cleanup
  br label %3617

3546:                                             ; preds = %3526
  %3547 = landingpad { ptr, i32 }
          cleanup
  br label %3616

3548:                                             ; preds = %3529
  %3549 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %570) #11
  br label %3616

3550:                                             ; preds = %3530
  %3551 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2653

3552:                                             ; preds = %3531
  %3553 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2653.loopexit

3554:                                             ; preds = %3532
  %3555 = landingpad { ptr, i32 }
          cleanup
  br label %3564

3556:                                             ; preds = %3533
  %3557 = landingpad { ptr, i32 }
          cleanup
  br label %3563

3558:                                             ; preds = %3534
  %3559 = landingpad { ptr, i32 }
          cleanup
  br label %3562

3560:                                             ; preds = %3535
  %3561 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %577) #11
  br label %3562

3562:                                             ; preds = %3560, %3558
  %.pn2171 = phi { ptr, i32 } [ %3561, %3560 ], [ %3559, %3558 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %572) #11
  br label %3563

3563:                                             ; preds = %3562, %3556
  %.pn2171.pn = phi { ptr, i32 } [ %.pn2171, %3562 ], [ %3557, %3556 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %573) #11
  br label %3564

3564:                                             ; preds = %3563, %3554
  %.pn2171.pn.pn = phi { ptr, i32 } [ %.pn2171.pn, %3563 ], [ %3555, %3554 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %574) #11
  br label %.loopexit2653.loopexit

.loopexit2653.loopexit:                           ; preds = %3564, %3552
  %.pn2171.pn.pn.pn = phi { ptr, i32 } [ %.pn2171.pn.pn, %3564 ], [ %3553, %3552 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %576) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %576) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %575) #11
  br label %.loopexit2653

.loopexit2653:                                    ; preds = %.loopexit2653.loopexit, %3550
  %.pn2171.pn.pn.pn.pn = phi { ptr, i32 } [ %3551, %3550 ], [ %.pn2171.pn.pn.pn, %.loopexit2653.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %575) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %574) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %573) #11
  br label %3615

.lr.ph3602:                                       ; preds = %3542, %3570
  %.014273599 = phi ptr [ %3571, %3570 ], [ %3543, %3542 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %579) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %579, ptr noundef nonnull align 8 dereferenceable(32) %.014273599)
          to label %3565 unwind label %.loopexit3709

3565:                                             ; preds = %.lr.ph3602
  %3566 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %578, ptr noundef nonnull @.str.82)
          to label %3568 unwind label %.loopexit3714

.loopexit3709:                                    ; preds = %.lr.ph3602
  %lpad.loopexit3711 = landingpad { ptr, i32 }
          cleanup
  br label %3572

.loopexit.split-lp3710:                           ; preds = %.lr.ph3602.preheader
  %lpad.loopexit.split-lp3712 = landingpad { ptr, i32 }
          cleanup
  br label %3572

.loopexit3714:                                    ; preds = %3565, %3568
  %lpad.loopexit3716 = landingpad { ptr, i32 }
          cleanup
  br label %3567

.loopexit.split-lp3715:                           ; preds = %3540
  %lpad.loopexit.split-lp3717 = landingpad { ptr, i32 }
          cleanup
  br label %3567

3567:                                             ; preds = %.loopexit.split-lp3715, %.loopexit3714
  %lpad.phi3718 = phi { ptr, i32 } [ %lpad.loopexit3716, %.loopexit3714 ], [ %lpad.loopexit.split-lp3717, %.loopexit.split-lp3715 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %579) #11
  br label %3572

3568:                                             ; preds = %3565
  %3569 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %578, ptr noundef nonnull align 8 dereferenceable(32) %579)
          to label %3570 unwind label %.loopexit3714

3570:                                             ; preds = %3568
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %579) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %579) #11
  %3571 = getelementptr inbounds i8, ptr %.014273599, i64 32
  %.not2177 = icmp eq ptr %3571, %3539
  br i1 %.not2177, label %._crit_edge3603, label %.lr.ph3602, !llvm.loop !36

3572:                                             ; preds = %.loopexit3709, %.loopexit.split-lp3710, %3567
  %.pn2188 = phi { ptr, i32 } [ %lpad.phi3718, %3567 ], [ %lpad.loopexit3711, %.loopexit3709 ], [ %lpad.loopexit.split-lp3712, %.loopexit.split-lp3710 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %579) #11
  br label %3614

3573:                                             ; preds = %._crit_edge3603
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %580, ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef nonnull align 8 dereferenceable(32) %578, ptr noundef nonnull align 8 dereferenceable(32) %3527)
          to label %3574 unwind label %3591

3574:                                             ; preds = %3573
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %581) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %582) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %581) #11
  %3575 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %312, ptr noundef nonnull align 8 dereferenceable(32) %3527)
          to label %3576 unwind label %3594

3576:                                             ; preds = %3574
  %3577 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3575)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %583) #11
  %3578 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %585) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %586) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %585, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %586)
          to label %3579 unwind label %3596

3579:                                             ; preds = %3576
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %584, ptr noundef nonnull align 8 dereferenceable(32) %585)
          to label %3580 unwind label %3598

3580:                                             ; preds = %3579
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %583, ptr noundef nonnull align 8 dereferenceable(32) %3578, ptr noundef nonnull %584, ptr noundef nonnull align 1 dereferenceable(18) @.str.149, ptr noundef nonnull align 8 dereferenceable(16) %571, ptr noundef nonnull align 1 dereferenceable(4) @.str.150, ptr noundef nonnull align 8 dereferenceable(32) %580, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %3581 unwind label %3600

3581:                                             ; preds = %3580
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3577, ptr noundef nonnull align 8 dereferenceable(16) %583)
          to label %3582 unwind label %3602

3582:                                             ; preds = %3581
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %583) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %584) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %586) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %585) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %583) #11
  %3583 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %312, ptr noundef nonnull align 8 dereferenceable(32) %3527)
          to label %3584 unwind label %3594

3584:                                             ; preds = %3582
  %3585 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3583)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %587) #11
  invoke void @_ZN6langcc13CppGenContext7qq_stmtIJA32_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA5_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %587, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(32) @.str.151, ptr noundef nonnull align 8 dereferenceable(16) %569, ptr noundef nonnull align 1 dereferenceable(5) @.str.152)
          to label %3586 unwind label %3607

3586:                                             ; preds = %3584
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3585, ptr noundef nonnull align 8 dereferenceable(16) %587)
          to label %3587 unwind label %3609

3587:                                             ; preds = %3586
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %587) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %587) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %580) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %580) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %578) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %578) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %571) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %571) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %569) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %569) #11
  %3588 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %567)
          to label %3512 unwind label %3522

3589:                                             ; preds = %._crit_edge3603
  %3590 = landingpad { ptr, i32 }
          cleanup
  br label %3593

3591:                                             ; preds = %3573
  %3592 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %581) #11
  br label %3593

3593:                                             ; preds = %3591, %3589
  %.pn2178 = phi { ptr, i32 } [ %3592, %3591 ], [ %3590, %3589 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %582) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %581) #11
  br label %3613

3594:                                             ; preds = %3582, %3574
  %3595 = landingpad { ptr, i32 }
          cleanup
  br label %3612

3596:                                             ; preds = %3576
  %3597 = landingpad { ptr, i32 }
          cleanup
  br label %3606

3598:                                             ; preds = %3579
  %3599 = landingpad { ptr, i32 }
          cleanup
  br label %3605

3600:                                             ; preds = %3580
  %3601 = landingpad { ptr, i32 }
          cleanup
  br label %3604

3602:                                             ; preds = %3581
  %3603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %583) #11
  br label %3604

3604:                                             ; preds = %3602, %3600
  %.pn2180 = phi { ptr, i32 } [ %3603, %3602 ], [ %3601, %3600 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %584) #11
  br label %3605

3605:                                             ; preds = %3604, %3598
  %.pn2180.pn = phi { ptr, i32 } [ %.pn2180, %3604 ], [ %3599, %3598 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #11
  br label %3606

3606:                                             ; preds = %3605, %3596
  %.pn2180.pn.pn = phi { ptr, i32 } [ %.pn2180.pn, %3605 ], [ %3597, %3596 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %586) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %585) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %583) #11
  br label %3612

3607:                                             ; preds = %3584
  %3608 = landingpad { ptr, i32 }
          cleanup
  br label %3611

3609:                                             ; preds = %3586
  %3610 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %587) #11
  br label %3611

3611:                                             ; preds = %3609, %3607
  %.pn2184 = phi { ptr, i32 } [ %3610, %3609 ], [ %3608, %3607 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %587) #11
  br label %3612

3612:                                             ; preds = %3611, %3606, %3594
  %.pn2184.pn = phi { ptr, i32 } [ %.pn2184, %3611 ], [ %3595, %3594 ], [ %.pn2180.pn.pn, %3606 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %580) #11
  br label %3613

3613:                                             ; preds = %3612, %3593
  %.pn2184.pn.pn = phi { ptr, i32 } [ %.pn2184.pn, %3612 ], [ %.pn2178, %3593 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %580) #11
  br label %3614

3614:                                             ; preds = %3613, %3572
  %.pn2188.pn = phi { ptr, i32 } [ %.pn2188, %3572 ], [ %.pn2184.pn.pn, %3613 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %578) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %578) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %571) #11
  br label %3615

3615:                                             ; preds = %3614, %.loopexit2653
  %.pn2188.pn.pn = phi { ptr, i32 } [ %.pn2188.pn, %3614 ], [ %.pn2171.pn.pn.pn.pn, %.loopexit2653 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %571) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %569) #11
  br label %3616

3616:                                             ; preds = %3615, %3548, %3546
  %.pn2188.pn.pn.pn = phi { ptr, i32 } [ %.pn2188.pn.pn, %3615 ], [ %3549, %3548 ], [ %3547, %3546 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %569) #11
  br label %3617

3617:                                             ; preds = %3544, %3616, %3522
  %.pn2188.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %3523, %3522 ], [ %.pn2188.pn.pn.pn, %3616 ], [ %3545, %3544 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %568) #11
  br label %3618

3618:                                             ; preds = %3617, %3520
  %.pn2188.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2188.pn.pn.pn.pn.pn, %3617 ], [ %3521, %3520 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %567) #11
  br label %3890

3619:                                             ; preds = %3515
  %3620 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3517)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %588) #11
  %3621 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3620)
          to label %3622 unwind label %3634

3622:                                             ; preds = %3619
  %3623 = extractvalue { ptr, i64 } %3621, 0
  store ptr %3623, ptr %588, align 8
  %3624 = extractvalue { ptr, i64 } %3621, 1
  store i64 %3624, ptr %1908, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %589) #11
  %3625 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3620)
  %3626 = extractvalue { ptr, i64 } %3625, 0
  store ptr %3626, ptr %589, align 8
  %3627 = extractvalue { ptr, i64 } %3625, 1
  store i64 %3627, ptr %1909, align 8
  br label %3628

3628:                                             ; preds = %3649, %3622
  %3629 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %588, ptr noundef nonnull align 8 dereferenceable(16) %589)
          to label %3630 unwind label %3636

3630:                                             ; preds = %3628
  br i1 %3629, label %3638, label %3631

3631:                                             ; preds = %3630
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %589) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %588) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %593) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %593)
          to label %3668 unwind label %3685

3632:                                             ; preds = %3515
  %3633 = landingpad { ptr, i32 }
          cleanup
  br label %3890

3634:                                             ; preds = %3619
  %3635 = landingpad { ptr, i32 }
          cleanup
  br label %3667

3636:                                             ; preds = %3649, %3628
  %3637 = landingpad { ptr, i32 }
          cleanup
  br label %3666

3638:                                             ; preds = %3630
  %3639 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %588)
          to label %3640 unwind label %3651

3640:                                             ; preds = %3638
  %3641 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3639) #11
  %3642 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3639) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %590) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %591, ptr noundef nonnull align 8 dereferenceable(16) %3642)
          to label %3643 unwind label %3653

3643:                                             ; preds = %3640
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %590, ptr noundef nonnull %591, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %3644 unwind label %3655

3644:                                             ; preds = %3643
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %591) #11
  %3645 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %325, ptr noundef nonnull align 8 dereferenceable(32) %3641)
          to label %3646 unwind label %3657

3646:                                             ; preds = %3644
  %3647 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3645)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %592) #11
  invoke void @_ZN6langcc13CppGenContext7qq_stmtIJA37_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %592, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(37) @.str.153, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef nonnull align 1 dereferenceable(10) @.str.154)
          to label %3648 unwind label %3659

3648:                                             ; preds = %3646
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3647, ptr noundef nonnull align 8 dereferenceable(16) %592)
          to label %3649 unwind label %3661

3649:                                             ; preds = %3648
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %592) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %592) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %590) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %590) #11
  %3650 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %588)
          to label %3628 unwind label %3636

3651:                                             ; preds = %3638
  %3652 = landingpad { ptr, i32 }
          cleanup
  br label %3666

3653:                                             ; preds = %3640
  %3654 = landingpad { ptr, i32 }
          cleanup
  br label %3665

3655:                                             ; preds = %3643
  %3656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %591) #11
  br label %3665

3657:                                             ; preds = %3644
  %3658 = landingpad { ptr, i32 }
          cleanup
  br label %3664

3659:                                             ; preds = %3646
  %3660 = landingpad { ptr, i32 }
          cleanup
  br label %3663

3661:                                             ; preds = %3648
  %3662 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %592) #11
  br label %3663

3663:                                             ; preds = %3661, %3659
  %.pn2162 = phi { ptr, i32 } [ %3662, %3661 ], [ %3660, %3659 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %592) #11
  br label %3664

3664:                                             ; preds = %3663, %3657
  %.pn2162.pn = phi { ptr, i32 } [ %.pn2162, %3663 ], [ %3658, %3657 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %590) #11
  br label %3665

3665:                                             ; preds = %3664, %3655, %3653
  %.pn2162.pn.pn = phi { ptr, i32 } [ %.pn2162.pn, %3664 ], [ %3656, %3655 ], [ %3654, %3653 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %590) #11
  br label %3666

3666:                                             ; preds = %3651, %3665, %3636
  %.pn2167 = phi { ptr, i32 } [ %3637, %3636 ], [ %.pn2162.pn.pn, %3665 ], [ %3652, %3651 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %589) #11
  br label %3667

3667:                                             ; preds = %3666, %3634
  %.pn2167.pn = phi { ptr, i32 } [ %.pn2167, %3666 ], [ %3635, %3634 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %588) #11
  br label %3890

3668:                                             ; preds = %3631
  %3669 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %3670 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3669, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3671 unwind label %3687

3671:                                             ; preds = %3668
  %3672 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3670)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %594) #11
  %3673 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3672)
          to label %3674 unwind label %3689

3674:                                             ; preds = %3671
  %3675 = extractvalue { ptr, i64 } %3673, 0
  store ptr %3675, ptr %594, align 8
  %3676 = extractvalue { ptr, i64 } %3673, 1
  store i64 %3676, ptr %1910, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %595) #11
  %3677 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3672)
  %3678 = extractvalue { ptr, i64 } %3677, 0
  store ptr %3678, ptr %595, align 8
  %3679 = extractvalue { ptr, i64 } %3677, 1
  store i64 %3679, ptr %1911, align 8
  br label %3680

3680:                                             ; preds = %3714, %3674
  %.01428 = phi i64 [ 0, %3674 ], [ %3715, %3714 ]
  %3681 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %594, ptr noundef nonnull align 8 dereferenceable(16) %595)
          to label %3682 unwind label %3691

3682:                                             ; preds = %3680
  br i1 %3681, label %3693, label %3683

3683:                                             ; preds = %3682
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %595) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %594) #11
  %3684 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %593)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %609) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %609, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %3757 unwind label %3780

3685:                                             ; preds = %3631
  %3686 = landingpad { ptr, i32 }
          cleanup
  br label %3791

3687:                                             ; preds = %3668
  %3688 = landingpad { ptr, i32 }
          cleanup
  br label %3790

3689:                                             ; preds = %3671
  %3690 = landingpad { ptr, i32 }
          cleanup
  br label %3756

3691:                                             ; preds = %3714, %3680
  %3692 = landingpad { ptr, i32 }
          cleanup
  br label %3755

3693:                                             ; preds = %3682
  %3694 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %594)
          to label %3695 unwind label %3717

3695:                                             ; preds = %3693
  %3696 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3694) #11
  %3697 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3694) #11
  %3698 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %593)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %596) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %597) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %598) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %599) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %600)
          to label %3699 unwind label %3719

3699:                                             ; preds = %3695
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %601)
          to label %3700 unwind label %3721

3700:                                             ; preds = %3699
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %599, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %600, ptr noundef nonnull %601)
          to label %3701 unwind label %3723

3701:                                             ; preds = %3700
  %3702 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %349)
  %3703 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %3702, i64 noundef %.01428)
          to label %3704 unwind label %3725

3704:                                             ; preds = %3701
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %602) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %604) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %605) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %606) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %606, ptr noundef nonnull align 8 dereferenceable(32) %3696)
          to label %3705 unwind label %3727

3705:                                             ; preds = %3704
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %607) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %607) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %605, ptr nonnull %606, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %607)
          to label %3706 unwind label %3729

3706:                                             ; preds = %3705
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %604, ptr noundef nonnull align 8 dereferenceable(24) %605)
          to label %3707 unwind label %3731

3707:                                             ; preds = %3706
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %603, ptr noundef nonnull align 8 dereferenceable(16) %604)
          to label %3708 unwind label %3733

3708:                                             ; preds = %3707
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %608)
          to label %3709 unwind label %3735

3709:                                             ; preds = %3708
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %602, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %603, ptr noundef nonnull %608)
          to label %3710 unwind label %3737

3710:                                             ; preds = %3709
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %598, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %599, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %3696, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 8 dereferenceable(16) %3703, ptr noundef nonnull align 1 dereferenceable(8) @.str.155, ptr noundef nonnull align 8 dereferenceable(16) %602, ptr noundef nonnull align 1 dereferenceable(5) @.str.134, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %3711 unwind label %3739

3711:                                             ; preds = %3710
  %3712 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %598)
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.124") align 8 %597, ptr noundef nonnull align 8 dereferenceable(136) %3712)
          to label %3713 unwind label %3741

3713:                                             ; preds = %3711
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %596, ptr noundef nonnull align 8 dereferenceable(16) %597)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3698, ptr noundef nonnull align 8 dereferenceable(16) %596)
          to label %3714 unwind label %3743

3714:                                             ; preds = %3713
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %596) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %597) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %598) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %602) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %608) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %603) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %604) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %605) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %607) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %607) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %606) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %606) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %605) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %604) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %602) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %599) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %601) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %600) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %599) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %598) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %597) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %596) #11
  %3715 = add nuw nsw i64 %.01428, 1
  %3716 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %594)
          to label %3680 unwind label %3691

3717:                                             ; preds = %3693
  %3718 = landingpad { ptr, i32 }
          cleanup
  br label %3755

3719:                                             ; preds = %3695
  %3720 = landingpad { ptr, i32 }
          cleanup
  br label %3754

3721:                                             ; preds = %3699
  %3722 = landingpad { ptr, i32 }
          cleanup
  br label %3753

3723:                                             ; preds = %3700
  %3724 = landingpad { ptr, i32 }
          cleanup
  br label %3752

3725:                                             ; preds = %3701
  %3726 = landingpad { ptr, i32 }
          cleanup
  br label %3751

3727:                                             ; preds = %3704
  %3728 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2654

3729:                                             ; preds = %3705
  %3730 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2654.loopexit

3731:                                             ; preds = %3706
  %3732 = landingpad { ptr, i32 }
          cleanup
  br label %3750

3733:                                             ; preds = %3707
  %3734 = landingpad { ptr, i32 }
          cleanup
  br label %3749

3735:                                             ; preds = %3708
  %3736 = landingpad { ptr, i32 }
          cleanup
  br label %3748

3737:                                             ; preds = %3709
  %3738 = landingpad { ptr, i32 }
          cleanup
  br label %3747

3739:                                             ; preds = %3710
  %3740 = landingpad { ptr, i32 }
          cleanup
  br label %3746

3741:                                             ; preds = %3711
  %3742 = landingpad { ptr, i32 }
          cleanup
  br label %3745

3743:                                             ; preds = %3713
  %3744 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %596) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %597) #11
  br label %3745

3745:                                             ; preds = %3743, %3741
  %.pn2142 = phi { ptr, i32 } [ %3744, %3743 ], [ %3742, %3741 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %598) #11
  br label %3746

3746:                                             ; preds = %3745, %3739
  %.pn2142.pn = phi { ptr, i32 } [ %.pn2142, %3745 ], [ %3740, %3739 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %602) #11
  br label %3747

3747:                                             ; preds = %3746, %3737
  %.pn2142.pn.pn = phi { ptr, i32 } [ %.pn2142.pn, %3746 ], [ %3738, %3737 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %608) #11
  br label %3748

3748:                                             ; preds = %3747, %3735
  %.pn2142.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn, %3747 ], [ %3736, %3735 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %603) #11
  br label %3749

3749:                                             ; preds = %3748, %3733
  %.pn2142.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn.pn, %3748 ], [ %3734, %3733 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %604) #11
  br label %3750

3750:                                             ; preds = %3749, %3731
  %.pn2142.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn.pn.pn, %3749 ], [ %3732, %3731 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %605) #11
  br label %.loopexit2654.loopexit

.loopexit2654.loopexit:                           ; preds = %3750, %3729
  %.pn2142.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn.pn.pn.pn, %3750 ], [ %3730, %3729 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %607) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %607) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %606) #11
  br label %.loopexit2654

.loopexit2654:                                    ; preds = %.loopexit2654.loopexit, %3727
  %.pn2142.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %3728, %3727 ], [ %.pn2142.pn.pn.pn.pn.pn.pn, %.loopexit2654.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %606) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %605) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %604) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %602) #11
  br label %3751

3751:                                             ; preds = %.loopexit2654, %3725
  %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn.pn.pn.pn.pn.pn, %.loopexit2654 ], [ %3726, %3725 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %599) #11
  br label %3752

3752:                                             ; preds = %3751, %3723
  %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn, %3751 ], [ %3724, %3723 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %601) #11
  br label %3753

3753:                                             ; preds = %3752, %3721
  %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3752 ], [ %3722, %3721 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %600) #11
  br label %3754

3754:                                             ; preds = %3753, %3719
  %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3753 ], [ %3720, %3719 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %599) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %598) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %597) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %596) #11
  br label %3755

3755:                                             ; preds = %3717, %3754, %3691
  %.pn2156 = phi { ptr, i32 } [ %3692, %3691 ], [ %.pn2142.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3754 ], [ %3718, %3717 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %595) #11
  br label %3756

3756:                                             ; preds = %3755, %3689
  %.pn2156.pn = phi { ptr, i32 } [ %.pn2156, %3755 ], [ %3690, %3689 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %594) #11
  br label %3790

3757:                                             ; preds = %3683
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3684, ptr noundef nonnull align 8 dereferenceable(16) %609)
          to label %3758 unwind label %3782

3758:                                             ; preds = %3757
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %609) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %609) #11
  %3759 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %347)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %610) #11
  %3760 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %593)
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cS3_A4_cNS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEA2_cEEESB_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %610, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 1 dereferenceable(9) @.str.156, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %3760, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %3761 unwind label %3785

3761:                                             ; preds = %3758
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3759, ptr noundef nonnull align 8 dereferenceable(16) %610)
          to label %3762 unwind label %3787

3762:                                             ; preds = %3761
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %610) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %610) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %593) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %593) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %611) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %611)
          to label %3763 unwind label %3792

3763:                                             ; preds = %3762
  %3764 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %3765 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3764, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3766 unwind label %3794

3766:                                             ; preds = %3763
  %3767 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %3765)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %612) #11
  %3768 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %3767)
          to label %3769 unwind label %3796

3769:                                             ; preds = %3766
  %3770 = extractvalue { ptr, i64 } %3768, 0
  store ptr %3770, ptr %612, align 8
  %3771 = extractvalue { ptr, i64 } %3768, 1
  store i64 %3771, ptr %1912, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %613) #11
  %3772 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %3767)
  %3773 = extractvalue { ptr, i64 } %3772, 0
  store ptr %3773, ptr %613, align 8
  %3774 = extractvalue { ptr, i64 } %3772, 1
  store i64 %3774, ptr %1913, align 8
  br label %3775

3775:                                             ; preds = %3821, %3769
  %.01429 = phi i64 [ 0, %3769 ], [ %3822, %3821 ]
  %3776 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %612, ptr noundef nonnull align 8 dereferenceable(16) %613)
          to label %3777 unwind label %3798

3777:                                             ; preds = %3775
  br i1 %3776, label %3800, label %3778

3778:                                             ; preds = %3777
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %613) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %612) #11
  %3779 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %611)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %627) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA27_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %627, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(27) @.str.98)
          to label %3864 unwind label %3873

3780:                                             ; preds = %3683
  %3781 = landingpad { ptr, i32 }
          cleanup
  br label %3784

3782:                                             ; preds = %3757
  %3783 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %609) #11
  br label %3784

3784:                                             ; preds = %3782, %3780
  %.pn1656 = phi { ptr, i32 } [ %3783, %3782 ], [ %3781, %3780 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %609) #11
  br label %3790

3785:                                             ; preds = %3758
  %3786 = landingpad { ptr, i32 }
          cleanup
  br label %3789

3787:                                             ; preds = %3761
  %3788 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %610) #11
  br label %3789

3789:                                             ; preds = %3787, %3785
  %.pn1658 = phi { ptr, i32 } [ %3788, %3787 ], [ %3786, %3785 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %610) #11
  br label %3790

3790:                                             ; preds = %3687, %3756, %3789, %3784
  %.pn2156.pn.pn.pn = phi { ptr, i32 } [ %.pn1658, %3789 ], [ %.pn1656, %3784 ], [ %.pn2156.pn, %3756 ], [ %3688, %3687 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %593) #11
  br label %3791

3791:                                             ; preds = %3790, %3685
  %.pn2156.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2156.pn.pn.pn, %3790 ], [ %3686, %3685 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %593) #11
  br label %3890

3792:                                             ; preds = %3762
  %3793 = landingpad { ptr, i32 }
          cleanup
  br label %3884

3794:                                             ; preds = %3763
  %3795 = landingpad { ptr, i32 }
          cleanup
  br label %3883

3796:                                             ; preds = %3766
  %3797 = landingpad { ptr, i32 }
          cleanup
  br label %3863

3798:                                             ; preds = %3821, %3775
  %3799 = landingpad { ptr, i32 }
          cleanup
  br label %3862

3800:                                             ; preds = %3777
  %3801 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %612)
          to label %3802 unwind label %3824

3802:                                             ; preds = %3800
  %3803 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3801) #11
  %3804 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %3801) #11
  %3805 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %611)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %614) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %615) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %616) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %617) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %618)
          to label %3806 unwind label %3826

3806:                                             ; preds = %3802
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %619)
          to label %3807 unwind label %3828

3807:                                             ; preds = %3806
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %617, i32 noundef 7, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %618, ptr noundef nonnull %619)
          to label %3808 unwind label %3830

3808:                                             ; preds = %3807
  %3809 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %375)
  %3810 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %3809, i64 noundef %.01429)
          to label %3811 unwind label %3832

3811:                                             ; preds = %3808
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %620) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %622) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %623) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %624) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %624, ptr noundef nonnull align 8 dereferenceable(32) %3803)
          to label %3812 unwind label %3834

3812:                                             ; preds = %3811
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %625) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %623, ptr nonnull %624, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %625)
          to label %3813 unwind label %3836

3813:                                             ; preds = %3812
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %622, ptr noundef nonnull align 8 dereferenceable(24) %623)
          to label %3814 unwind label %3838

3814:                                             ; preds = %3813
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %621, ptr noundef nonnull align 8 dereferenceable(16) %622)
          to label %3815 unwind label %3840

3815:                                             ; preds = %3814
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %626)
          to label %3816 unwind label %3842

3816:                                             ; preds = %3815
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %620, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %621, ptr noundef nonnull %626)
          to label %3817 unwind label %3844

3817:                                             ; preds = %3816
  invoke void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %616, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(11) @.str.94, ptr noundef nonnull align 1 dereferenceable(5) @.str.95, ptr noundef nonnull align 8 dereferenceable(16) %617, ptr noundef nonnull align 1 dereferenceable(3) @.str.82, ptr noundef nonnull align 8 dereferenceable(32) %3803, ptr noundef nonnull align 1 dereferenceable(4) @.str.96, ptr noundef nonnull align 1 dereferenceable(7) @.str.92, ptr noundef nonnull align 8 dereferenceable(16) %3810, ptr noundef nonnull align 1 dereferenceable(8) @.str.155, ptr noundef nonnull align 8 dereferenceable(16) %620, ptr noundef nonnull align 1 dereferenceable(5) @.str.134, ptr noundef nonnull align 1 dereferenceable(9) @.str.97)
          to label %3818 unwind label %3846

3818:                                             ; preds = %3817
  %3819 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %616)
  invoke void @_ZN4lang2cc4Node2_T13as_SwitchCaseEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.124") align 8 %615, ptr noundef nonnull align 8 dereferenceable(136) %3819)
          to label %3820 unwind label %3848

3820:                                             ; preds = %3818
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_10SwitchCase2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %614, ptr noundef nonnull align 8 dereferenceable(16) %615)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3805, ptr noundef nonnull align 8 dereferenceable(16) %614)
          to label %3821 unwind label %3850

3821:                                             ; preds = %3820
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %614) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %615) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %616) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %620) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %626) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %621) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %622) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %623) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %625) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %624) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %624) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %623) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %622) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %620) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %617) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %619) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %618) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %617) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %616) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %615) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %614) #11
  %3822 = add nuw nsw i64 %.01429, 1
  %3823 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %612)
          to label %3775 unwind label %3798

3824:                                             ; preds = %3800
  %3825 = landingpad { ptr, i32 }
          cleanup
  br label %3862

3826:                                             ; preds = %3802
  %3827 = landingpad { ptr, i32 }
          cleanup
  br label %3861

3828:                                             ; preds = %3806
  %3829 = landingpad { ptr, i32 }
          cleanup
  br label %3860

3830:                                             ; preds = %3807
  %3831 = landingpad { ptr, i32 }
          cleanup
  br label %3859

3832:                                             ; preds = %3808
  %3833 = landingpad { ptr, i32 }
          cleanup
  br label %3858

3834:                                             ; preds = %3811
  %3835 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2655

3836:                                             ; preds = %3812
  %3837 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2655.loopexit

3838:                                             ; preds = %3813
  %3839 = landingpad { ptr, i32 }
          cleanup
  br label %3857

3840:                                             ; preds = %3814
  %3841 = landingpad { ptr, i32 }
          cleanup
  br label %3856

3842:                                             ; preds = %3815
  %3843 = landingpad { ptr, i32 }
          cleanup
  br label %3855

3844:                                             ; preds = %3816
  %3845 = landingpad { ptr, i32 }
          cleanup
  br label %3854

3846:                                             ; preds = %3817
  %3847 = landingpad { ptr, i32 }
          cleanup
  br label %3853

3848:                                             ; preds = %3818
  %3849 = landingpad { ptr, i32 }
          cleanup
  br label %3852

3850:                                             ; preds = %3820
  %3851 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %614) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node10SwitchCase2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %615) #11
  br label %3852

3852:                                             ; preds = %3850, %3848
  %.pn2122 = phi { ptr, i32 } [ %3851, %3850 ], [ %3849, %3848 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %616) #11
  br label %3853

3853:                                             ; preds = %3852, %3846
  %.pn2122.pn = phi { ptr, i32 } [ %.pn2122, %3852 ], [ %3847, %3846 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %620) #11
  br label %3854

3854:                                             ; preds = %3853, %3844
  %.pn2122.pn.pn = phi { ptr, i32 } [ %.pn2122.pn, %3853 ], [ %3845, %3844 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %626) #11
  br label %3855

3855:                                             ; preds = %3854, %3842
  %.pn2122.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn, %3854 ], [ %3843, %3842 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %621) #11
  br label %3856

3856:                                             ; preds = %3855, %3840
  %.pn2122.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn.pn, %3855 ], [ %3841, %3840 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %622) #11
  br label %3857

3857:                                             ; preds = %3856, %3838
  %.pn2122.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn.pn.pn, %3856 ], [ %3839, %3838 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %623) #11
  br label %.loopexit2655.loopexit

.loopexit2655.loopexit:                           ; preds = %3857, %3836
  %.pn2122.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn.pn.pn.pn, %3857 ], [ %3837, %3836 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %625) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %624) #11
  br label %.loopexit2655

.loopexit2655:                                    ; preds = %.loopexit2655.loopexit, %3834
  %.pn2122.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %3835, %3834 ], [ %.pn2122.pn.pn.pn.pn.pn.pn, %.loopexit2655.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %624) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %623) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %622) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %620) #11
  br label %3858

3858:                                             ; preds = %.loopexit2655, %3832
  %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn.pn.pn.pn.pn.pn, %.loopexit2655 ], [ %3833, %3832 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %617) #11
  br label %3859

3859:                                             ; preds = %3858, %3830
  %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn, %3858 ], [ %3831, %3830 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %619) #11
  br label %3860

3860:                                             ; preds = %3859, %3828
  %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3859 ], [ %3829, %3828 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %618) #11
  br label %3861

3861:                                             ; preds = %3860, %3826
  %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3860 ], [ %3827, %3826 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %617) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %616) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %615) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %614) #11
  br label %3862

3862:                                             ; preds = %3824, %3861, %3798
  %.pn2136 = phi { ptr, i32 } [ %3799, %3798 ], [ %.pn2122.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3861 ], [ %3825, %3824 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %613) #11
  br label %3863

3863:                                             ; preds = %3862, %3796
  %.pn2136.pn = phi { ptr, i32 } [ %.pn2136, %3862 ], [ %3797, %3796 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %612) #11
  br label %3883

3864:                                             ; preds = %3778
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3779, ptr noundef nonnull align 8 dereferenceable(16) %627)
          to label %3865 unwind label %3875

3865:                                             ; preds = %3864
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %627) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %627) #11
  %3866 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %373)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %628) #11
  %3867 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %611)
  invoke void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cS3_A4_cNS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEA2_cEEESB_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %628, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.65, ptr noundef nonnull align 1 dereferenceable(9) @.str.99, ptr noundef nonnull align 1 dereferenceable(9) @.str.156, ptr noundef nonnull align 1 dereferenceable(4) @.str.101, ptr noundef nonnull align 8 dereferenceable(64) %3867, ptr noundef nonnull align 1 dereferenceable(2) @.str.72)
          to label %3868 unwind label %3878

3868:                                             ; preds = %3865
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3866, ptr noundef nonnull align 8 dereferenceable(16) %628)
          to label %3869 unwind label %3880

3869:                                             ; preds = %3868
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %628) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %628) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %611) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %611) #11
  %3870 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %629) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA6_cA15_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %629, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(6) @.str.145, ptr noundef nonnull align 1 dereferenceable(15) @.str.157)
          to label %3871 unwind label %3885

3871:                                             ; preds = %3869
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3870, ptr noundef nonnull align 8 dereferenceable(16) %629)
          to label %3872 unwind label %3887

3872:                                             ; preds = %3871
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %629) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %629) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %553) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %553) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %544) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %544) #11
  br label %3894

3873:                                             ; preds = %3778
  %3874 = landingpad { ptr, i32 }
          cleanup
  br label %3877

3875:                                             ; preds = %3864
  %3876 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %627) #11
  br label %3877

3877:                                             ; preds = %3875, %3873
  %.pn1660 = phi { ptr, i32 } [ %3876, %3875 ], [ %3874, %3873 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %627) #11
  br label %3883

3878:                                             ; preds = %3865
  %3879 = landingpad { ptr, i32 }
          cleanup
  br label %3882

3880:                                             ; preds = %3868
  %3881 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %628) #11
  br label %3882

3882:                                             ; preds = %3880, %3878
  %.pn1662 = phi { ptr, i32 } [ %3881, %3880 ], [ %3879, %3878 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %628) #11
  br label %3883

3883:                                             ; preds = %3794, %3863, %3882, %3877
  %.pn2136.pn.pn.pn = phi { ptr, i32 } [ %.pn1662, %3882 ], [ %.pn1660, %3877 ], [ %.pn2136.pn, %3863 ], [ %3795, %3794 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %611) #11
  br label %3884

3884:                                             ; preds = %3883, %3792
  %.pn2136.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2136.pn.pn.pn, %3883 ], [ %3793, %3792 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %611) #11
  br label %3890

3885:                                             ; preds = %3869
  %3886 = landingpad { ptr, i32 }
          cleanup
  br label %3889

3887:                                             ; preds = %3871
  %3888 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %629) #11
  br label %3889

3889:                                             ; preds = %3887, %3885
  %.pn1664 = phi { ptr, i32 } [ %3888, %3887 ], [ %3886, %3885 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %629) #11
  br label %3890

3890:                                             ; preds = %3632, %3667, %3518, %3618, %3462, %3502, %3889, %3884, %3791, %3461
  %.pn2204.pn.pn.pn = phi { ptr, i32 } [ %.pn2156.pn.pn.pn.pn, %3791 ], [ %.pn2136.pn.pn.pn.pn, %3884 ], [ %.pn1664, %3889 ], [ %.pn1652.pn.pn, %3461 ], [ %.pn2204.pn, %3502 ], [ %3463, %3462 ], [ %.pn2188.pn.pn.pn.pn.pn.pn, %3618 ], [ %3519, %3518 ], [ %.pn2167.pn, %3667 ], [ %3633, %3632 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %553) #11
  br label %3891

3891:                                             ; preds = %3890, %3450, %3444
  %.pn2204.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2204.pn.pn.pn, %3890 ], [ %.pn1650, %3450 ], [ %3445, %3444 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %553) #11
  br label %3892

3892:                                             ; preds = %3374, %3397, %3891, %3443
  %.pn2213.pn.pn.pn = phi { ptr, i32 } [ %.pn2204.pn.pn.pn.pn, %3891 ], [ %.pn1645.pn.pn.pn, %3443 ], [ %.pn2213.pn, %3397 ], [ %3375, %3374 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %544) #11
  br label %3893

3893:                                             ; preds = %3892, %3372
  %.pn2213.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn, %3892 ], [ %3373, %3372 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %544) #11
  br label %5933

3894:                                             ; preds = %3872, %3256
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %630, ptr noundef nonnull align 8 dereferenceable(16) %1914)
          to label %3895 unwind label %3918

3895:                                             ; preds = %3894
  %3896 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef nonnull %630)
          to label %3897 unwind label %3920

3897:                                             ; preds = %3895
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %630) #11
  br i1 %3896, label %3980, label %3898

3898:                                             ; preds = %3897
  %3899 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1888)
  %3900 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3899, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3901 unwind label %3918

3901:                                             ; preds = %3898
  br i1 %3900, label %3902, label %3944

3902:                                             ; preds = %3901
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %631) #11
  %3903 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1888)
  %3904 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %3903, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3905 unwind label %3922

3905:                                             ; preds = %3902
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(48) %631, ptr noundef nonnull align 8 dereferenceable(48) %3904)
          to label %3906 unwind label %3922

3906:                                             ; preds = %3905
  %3907 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %631) #11
  %3908 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %631) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %632) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %633)
          to label %3909 unwind label %3924

3909:                                             ; preds = %3906
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %634)
          to label %3910 unwind label %3926

3910:                                             ; preds = %3909
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %632, i32 noundef 20, ptr noundef nonnull align 8 dereferenceable(16) %3907, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %633, ptr noundef nonnull %634)
          to label %3911 unwind label %3928

3911:                                             ; preds = %3910
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %634) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %633) #11
  %3912 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %536)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %635) #11
  %3913 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %637) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %638) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %638) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %637, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %638)
          to label %3914 unwind label %3931

3914:                                             ; preds = %3911
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %636, ptr noundef nonnull align 8 dereferenceable(32) %637)
          to label %3915 unwind label %3933

3915:                                             ; preds = %3914
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA2_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %635, ptr noundef nonnull align 8 dereferenceable(32) %3913, ptr noundef nonnull %636, ptr noundef nonnull align 1 dereferenceable(7) @.str.158, ptr noundef nonnull align 8 dereferenceable(16) %632, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %538, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %3916 unwind label %3935

3916:                                             ; preds = %3915
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3912, ptr noundef nonnull align 8 dereferenceable(16) %635)
          to label %3917 unwind label %3937

3917:                                             ; preds = %3916
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %635) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %636) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %637) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %638) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %638) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %637) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %635) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %632) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %632) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %631) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %631) #11
  br label %3944

3918:                                             ; preds = %4874, %3898, %3894
  %3919 = landingpad { ptr, i32 }
          cleanup
  br label %5933

3920:                                             ; preds = %3895
  %3921 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %630) #11
  br label %5933

3922:                                             ; preds = %3905, %3902
  %3923 = landingpad { ptr, i32 }
          cleanup
  br label %3943

3924:                                             ; preds = %3906
  %3925 = landingpad { ptr, i32 }
          cleanup
  br label %3942

3926:                                             ; preds = %3909
  %3927 = landingpad { ptr, i32 }
          cleanup
  br label %3930

3928:                                             ; preds = %3910
  %3929 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %634) #11
  br label %3930

3930:                                             ; preds = %3928, %3926
  %.pn1666 = phi { ptr, i32 } [ %3929, %3928 ], [ %3927, %3926 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %633) #11
  br label %3942

3931:                                             ; preds = %3911
  %3932 = landingpad { ptr, i32 }
          cleanup
  br label %3941

3933:                                             ; preds = %3914
  %3934 = landingpad { ptr, i32 }
          cleanup
  br label %3940

3935:                                             ; preds = %3915
  %3936 = landingpad { ptr, i32 }
          cleanup
  br label %3939

3937:                                             ; preds = %3916
  %3938 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %635) #11
  br label %3939

3939:                                             ; preds = %3937, %3935
  %.pn1668 = phi { ptr, i32 } [ %3938, %3937 ], [ %3936, %3935 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %636) #11
  br label %3940

3940:                                             ; preds = %3939, %3933
  %.pn1668.pn = phi { ptr, i32 } [ %.pn1668, %3939 ], [ %3934, %3933 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %637) #11
  br label %3941

3941:                                             ; preds = %3940, %3931
  %.pn1668.pn.pn = phi { ptr, i32 } [ %.pn1668.pn, %3940 ], [ %3932, %3931 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %638) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %638) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %637) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %635) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %632) #11
  br label %3942

3942:                                             ; preds = %3941, %3930, %3924
  %.pn1668.pn.pn.pn = phi { ptr, i32 } [ %.pn1668.pn.pn, %3941 ], [ %.pn1666, %3930 ], [ %3925, %3924 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %632) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %631) #11
  br label %3943

3943:                                             ; preds = %3942, %3922
  %.pn1668.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1668.pn.pn.pn, %3942 ], [ %3923, %3922 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %631) #11
  br label %5933

3944:                                             ; preds = %3917, %3901
  br i1 %1961, label %3945, label %.critedge2619

3945:                                             ; preds = %3944
  %3946 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %536)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %639) #11
  %3947 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %641) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %642) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %642) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %642)
          to label %3948 unwind label %3952

3948:                                             ; preds = %3945
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %640, ptr noundef nonnull align 8 dereferenceable(32) %641)
          to label %3949 unwind label %3954

3949:                                             ; preds = %3948
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA33_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %639, ptr noundef nonnull align 8 dereferenceable(32) %3947, ptr noundef nonnull %640, ptr noundef nonnull align 1 dereferenceable(10) @.str.159, ptr noundef nonnull align 8 dereferenceable(16) %538, ptr noundef nonnull align 1 dereferenceable(33) @.str.160)
          to label %3950 unwind label %3956

3950:                                             ; preds = %3949
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3946, ptr noundef nonnull align 8 dereferenceable(16) %639)
          to label %3951 unwind label %3958

3951:                                             ; preds = %3950
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %639) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %640) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %642) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %642) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %641) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %639) #11
  br label %3980

3952:                                             ; preds = %3945
  %3953 = landingpad { ptr, i32 }
          cleanup
  br label %3962

3954:                                             ; preds = %3948
  %3955 = landingpad { ptr, i32 }
          cleanup
  br label %3961

3956:                                             ; preds = %3949
  %3957 = landingpad { ptr, i32 }
          cleanup
  br label %3960

3958:                                             ; preds = %3950
  %3959 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %639) #11
  br label %3960

3960:                                             ; preds = %3958, %3956
  %.pn1674 = phi { ptr, i32 } [ %3959, %3958 ], [ %3957, %3956 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %640) #11
  br label %3961

3961:                                             ; preds = %3960, %3954
  %.pn1674.pn = phi { ptr, i32 } [ %.pn1674, %3960 ], [ %3955, %3954 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #11
  br label %3962

3962:                                             ; preds = %3961, %3952
  %.pn1674.pn.pn = phi { ptr, i32 } [ %.pn1674.pn, %3961 ], [ %3953, %3952 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %642) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %642) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %641) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %639) #11
  br label %5933

.critedge2619:                                    ; preds = %3944
  %3963 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %509)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %643) #11
  %3964 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %645) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %646) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %646)
          to label %3965 unwind label %3969

3965:                                             ; preds = %.critedge2619
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %644, ptr noundef nonnull align 8 dereferenceable(32) %645)
          to label %3966 unwind label %3971

3966:                                             ; preds = %3965
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA2_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %643, ptr noundef nonnull align 8 dereferenceable(32) %3964, ptr noundef nonnull %644, ptr noundef nonnull align 1 dereferenceable(7) @.str.158, ptr noundef nonnull align 8 dereferenceable(16) %533, ptr noundef nonnull align 1 dereferenceable(2) @.str.52, ptr noundef nonnull align 8 dereferenceable(16) %511, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %3967 unwind label %3973

3967:                                             ; preds = %3966
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3963, ptr noundef nonnull align 8 dereferenceable(16) %643)
          to label %3968 unwind label %3975

3968:                                             ; preds = %3967
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %643) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %644) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %646) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %645) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %643) #11
  br label %3980

3969:                                             ; preds = %.critedge2619
  %3970 = landingpad { ptr, i32 }
          cleanup
  br label %3979

3971:                                             ; preds = %3965
  %3972 = landingpad { ptr, i32 }
          cleanup
  br label %3978

3973:                                             ; preds = %3966
  %3974 = landingpad { ptr, i32 }
          cleanup
  br label %3977

3975:                                             ; preds = %3967
  %3976 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %643) #11
  br label %3977

3977:                                             ; preds = %3975, %3973
  %.pn1678 = phi { ptr, i32 } [ %3976, %3975 ], [ %3974, %3973 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %644) #11
  br label %3978

3978:                                             ; preds = %3977, %3971
  %.pn1678.pn = phi { ptr, i32 } [ %.pn1678, %3977 ], [ %3972, %3971 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #11
  br label %3979

3979:                                             ; preds = %3978, %3969
  %.pn1678.pn.pn = phi { ptr, i32 } [ %.pn1678.pn, %3978 ], [ %3970, %3969 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %646) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %645) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %643) #11
  br label %5933

3980:                                             ; preds = %3951, %3968, %3897
  %3981 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1967)
  %3982 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %3981)
  %3983 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %3981)
  %.not16823604 = icmp eq ptr %3982, %3983
  br i1 %.not16823604, label %._crit_edge3608, label %.lr.ph3607

._crit_edge3608:                                  ; preds = %4002, %3980
  %3984 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1966)
  %3985 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %3984)
  %3986 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %3984)
  %.not16833614 = icmp eq ptr %3985, %3986
  br i1 %.not16833614, label %._crit_edge3618, label %.lr.ph3617

.lr.ph3607:                                       ; preds = %3980, %4002
  %.014303605 = phi ptr [ %4003, %4002 ], [ %3982, %3980 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %647) #11
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %647, ptr noundef nonnull align 8 dereferenceable(48) %.014303605)
          to label %3987 unwind label %4004

3987:                                             ; preds = %.lr.ph3607
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %648) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %648, ptr noundef nonnull align 8 dereferenceable(32) %647)
          to label %3988 unwind label %4006

3988:                                             ; preds = %3987
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %649) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %649, ptr noundef nonnull align 8 dereferenceable(16) %1915)
          to label %3989 unwind label %4008

3989:                                             ; preds = %3988
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %650) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %650, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %3990 unwind label %4010

3990:                                             ; preds = %3989
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %651) #11
  %3991 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %649)
  %3992 = getelementptr inbounds i8, ptr %3991, i64 184
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %652, ptr noundef nonnull align 8 dereferenceable(16) %3992)
          to label %3993 unwind label %4012

3993:                                             ; preds = %3990
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %651, ptr noundef nonnull %652, ptr noundef nonnull align 8 dereferenceable(16) %650, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %3994 unwind label %4014

3994:                                             ; preds = %3993
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %652) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %653) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %654) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %654, ptr noundef nonnull align 8 dereferenceable(32) %648, ptr noundef nonnull @.str.161)
          to label %3995 unwind label %4016

3995:                                             ; preds = %3994
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %653, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %654)
          to label %3996 unwind label %4018

3996:                                             ; preds = %3995
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %654) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %654) #11
  %3997 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %655) #11
  %3998 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %657) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %658) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %658) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %657, ptr noundef nonnull @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %658)
          to label %3999 unwind label %4021

3999:                                             ; preds = %3996
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %656, ptr noundef nonnull align 8 dereferenceable(32) %657)
          to label %4000 unwind label %4023

4000:                                             ; preds = %3999
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %655, ptr noundef nonnull align 8 dereferenceable(32) %3998, ptr noundef nonnull %656, ptr noundef nonnull align 8 dereferenceable(16) %651, ptr noundef nonnull align 8 dereferenceable(16) %653, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %4001 unwind label %4025

4001:                                             ; preds = %4000
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %3997, ptr noundef nonnull align 8 dereferenceable(16) %655)
          to label %4002 unwind label %4027

4002:                                             ; preds = %4001
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %655) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %656) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %657) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %658) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %658) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %657) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %655) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %653) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %653) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %651) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %651) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %650) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %650) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %649) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %649) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %648) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %648) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %647) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %647) #11
  %4003 = getelementptr inbounds i8, ptr %.014303605, i64 48
  %.not1682 = icmp eq ptr %4003, %3983
  br i1 %.not1682, label %._crit_edge3608, label %.lr.ph3607

4004:                                             ; preds = %.lr.ph3607
  %4005 = landingpad { ptr, i32 }
          cleanup
  br label %4037

4006:                                             ; preds = %3987
  %4007 = landingpad { ptr, i32 }
          cleanup
  br label %4036

4008:                                             ; preds = %3988
  %4009 = landingpad { ptr, i32 }
          cleanup
  br label %4035

4010:                                             ; preds = %3989
  %4011 = landingpad { ptr, i32 }
          cleanup
  br label %4034

4012:                                             ; preds = %3990
  %4013 = landingpad { ptr, i32 }
          cleanup
  br label %4033

4014:                                             ; preds = %3993
  %4015 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %652) #11
  br label %4033

4016:                                             ; preds = %3994
  %4017 = landingpad { ptr, i32 }
          cleanup
  br label %4020

4018:                                             ; preds = %3995
  %4019 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %654) #11
  br label %4020

4020:                                             ; preds = %4018, %4016
  %.pn2110 = phi { ptr, i32 } [ %4019, %4018 ], [ %4017, %4016 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %654) #11
  br label %4032

4021:                                             ; preds = %3996
  %4022 = landingpad { ptr, i32 }
          cleanup
  br label %4031

4023:                                             ; preds = %3999
  %4024 = landingpad { ptr, i32 }
          cleanup
  br label %4030

4025:                                             ; preds = %4000
  %4026 = landingpad { ptr, i32 }
          cleanup
  br label %4029

4027:                                             ; preds = %4001
  %4028 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %655) #11
  br label %4029

4029:                                             ; preds = %4027, %4025
  %.pn2112 = phi { ptr, i32 } [ %4028, %4027 ], [ %4026, %4025 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %656) #11
  br label %4030

4030:                                             ; preds = %4029, %4023
  %.pn2112.pn = phi { ptr, i32 } [ %.pn2112, %4029 ], [ %4024, %4023 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %657) #11
  br label %4031

4031:                                             ; preds = %4030, %4021
  %.pn2112.pn.pn = phi { ptr, i32 } [ %.pn2112.pn, %4030 ], [ %4022, %4021 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %658) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %658) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %657) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %655) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %653) #11
  br label %4032

4032:                                             ; preds = %4031, %4020
  %.pn2112.pn.pn.pn = phi { ptr, i32 } [ %.pn2112.pn.pn, %4031 ], [ %.pn2110, %4020 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %653) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %651) #11
  br label %4033

4033:                                             ; preds = %4032, %4014, %4012
  %.pn2112.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2112.pn.pn.pn, %4032 ], [ %4015, %4014 ], [ %4013, %4012 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %651) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %650) #11
  br label %4034

4034:                                             ; preds = %4033, %4010
  %.pn2112.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2112.pn.pn.pn.pn, %4033 ], [ %4011, %4010 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %650) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %649) #11
  br label %4035

4035:                                             ; preds = %4034, %4008
  %.pn2112.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2112.pn.pn.pn.pn.pn, %4034 ], [ %4009, %4008 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %649) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %648) #11
  br label %4036

4036:                                             ; preds = %4035, %4006
  %.pn2112.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2112.pn.pn.pn.pn.pn.pn, %4035 ], [ %4007, %4006 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %648) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %647) #11
  br label %4037

4037:                                             ; preds = %4036, %4004
  %.pn2112.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2112.pn.pn.pn.pn.pn.pn.pn, %4036 ], [ %4005, %4004 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %647) #11
  br label %5933

._crit_edge3618:                                  ; preds = %4307, %._crit_edge3608
  %4038 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %253)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %716) #11
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %716, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %254)
          to label %4326 unwind label %4347

.lr.ph3617:                                       ; preds = %._crit_edge3608, %4307
  %.014313615 = phi ptr [ %4308, %4307 ], [ %3985, %._crit_edge3608 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %659) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %659, ptr noundef nonnull align 8 dereferenceable(32) %.014313615)
          to label %4039 unwind label %4103

4039:                                             ; preds = %.lr.ph3617
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %660) #11
  %4040 = getelementptr inbounds i8, ptr %.014313615, i64 32
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %660, ptr noundef nonnull align 8 dereferenceable(16) %4040)
          to label %4041 unwind label %4105

4041:                                             ; preds = %4039
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %661) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %661, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %4042 unwind label %4107

4042:                                             ; preds = %4041
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %662) #11
  %4043 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %660)
  %4044 = getelementptr inbounds i8, ptr %4043, i64 184
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %663, ptr noundef nonnull align 8 dereferenceable(16) %4044)
          to label %4045 unwind label %4109

4045:                                             ; preds = %4042
  invoke void @_ZN6langcc21data_type_expr_to_cppENS_6rc_ptrIN4lang4data4Node4Expr2_TEEERKNS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %662, ptr noundef nonnull %663, ptr noundef nonnull align 8 dereferenceable(16) %661, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %4046 unwind label %4111

4046:                                             ; preds = %4045
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %663) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %664) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %665) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %665, ptr noundef nonnull align 8 dereferenceable(32) %659, ptr noundef nonnull @.str.161)
          to label %4047 unwind label %4113

4047:                                             ; preds = %4046
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %664, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %665)
          to label %4048 unwind label %4115

4048:                                             ; preds = %4047
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %665) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %665) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %666) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %667, ptr noundef nonnull align 8 dereferenceable(16) %250)
          to label %4049 unwind label %4118

4049:                                             ; preds = %4048
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %668, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4050 unwind label %4120

4050:                                             ; preds = %4049
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %666, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %667, ptr noundef nonnull %668)
          to label %4051 unwind label %4122

4051:                                             ; preds = %4050
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %668) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %667) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %669) #11
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %669, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %666)
          to label %4052 unwind label %4125

4052:                                             ; preds = %4051
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %670) #11
  %4053 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %672) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %673) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %673) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %672, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %673)
          to label %4054 unwind label %4127

4054:                                             ; preds = %4052
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %671, ptr noundef nonnull align 8 dereferenceable(32) %672)
          to label %4055 unwind label %4129

4055:                                             ; preds = %4054
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %670, ptr noundef nonnull align 8 dereferenceable(32) %4053, ptr noundef nonnull %671, ptr noundef nonnull align 8 dereferenceable(16) %662, ptr noundef nonnull align 8 dereferenceable(16) %669)
          to label %4056 unwind label %4131

4056:                                             ; preds = %4055
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %671) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %672) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %673) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %673) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %672) #11
  %4057 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %252)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4057, ptr noundef nonnull align 8 dereferenceable(16) %670)
          to label %4058 unwind label %4135

4058:                                             ; preds = %4056
  %4059 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %253)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %674) #11
  %4060 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %676) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %677) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %676, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %677)
          to label %4061 unwind label %4137

4061:                                             ; preds = %4058
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %675, ptr noundef nonnull align 8 dereferenceable(32) %676)
          to label %4062 unwind label %4139

4062:                                             ; preds = %4061
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %674, ptr noundef nonnull align 8 dereferenceable(32) %4060, ptr noundef nonnull %675, ptr noundef nonnull align 8 dereferenceable(16) %254, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %664, ptr noundef nonnull align 1 dereferenceable(4) @.str.162, ptr noundef nonnull align 8 dereferenceable(16) %669, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %4063 unwind label %4141

4063:                                             ; preds = %4062
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4059, ptr noundef nonnull align 8 dereferenceable(16) %674)
          to label %4064 unwind label %4143

4064:                                             ; preds = %4063
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %674) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %675) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %677) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %676) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %674) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %678) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %679, ptr noundef nonnull align 8 dereferenceable(16) %266)
          to label %4065 unwind label %4148

4065:                                             ; preds = %4064
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %680, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4066 unwind label %4150

4066:                                             ; preds = %4065
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %678, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %679, ptr noundef nonnull %680)
          to label %4067 unwind label %4152

4067:                                             ; preds = %4066
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %680) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %679) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %681) #11
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %681, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %678)
          to label %4068 unwind label %4155

4068:                                             ; preds = %4067
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %682) #11
  %4069 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %684) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %685) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %685) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %684, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %685)
          to label %4070 unwind label %4157

4070:                                             ; preds = %4068
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %683, ptr noundef nonnull align 8 dereferenceable(32) %684)
          to label %4071 unwind label %4159

4071:                                             ; preds = %4070
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %682, ptr noundef nonnull align 8 dereferenceable(32) %4069, ptr noundef nonnull %683, ptr noundef nonnull align 8 dereferenceable(16) %662, ptr noundef nonnull align 8 dereferenceable(16) %681)
          to label %4072 unwind label %4161

4072:                                             ; preds = %4071
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %683) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %684) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %685) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %685) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %684) #11
  %4073 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %268)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4073, ptr noundef nonnull align 8 dereferenceable(16) %682)
          to label %4074 unwind label %4165

4074:                                             ; preds = %4072
  %4075 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %273)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %686) #11
  %4076 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %688) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %689) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %688, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %689)
          to label %4077 unwind label %4167

4077:                                             ; preds = %4074
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %687, ptr noundef nonnull align 8 dereferenceable(32) %688)
          to label %4078 unwind label %4169

4078:                                             ; preds = %4077
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %686, ptr noundef nonnull align 8 dereferenceable(32) %4076, ptr noundef nonnull %687, ptr noundef nonnull align 8 dereferenceable(16) %274, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %664, ptr noundef nonnull align 1 dereferenceable(4) @.str.162, ptr noundef nonnull align 8 dereferenceable(16) %681, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %4079 unwind label %4171

4079:                                             ; preds = %4078
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4075, ptr noundef nonnull align 8 dereferenceable(16) %686)
          to label %4080 unwind label %4173

4080:                                             ; preds = %4079
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %686) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %687) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %688) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %689) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %688) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %686) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %690) #11
  %4081 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %278, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4082 unwind label %4178

4082:                                             ; preds = %4080
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %691, ptr noundef nonnull align 8 dereferenceable(16) %4081)
          to label %4083 unwind label %4178

4083:                                             ; preds = %4082
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %692, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4084 unwind label %4180

4084:                                             ; preds = %4083
  invoke void @_ZN6langcc13CppGenContext12gen_id_freshENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %690, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %691, ptr noundef nonnull %692)
          to label %4085 unwind label %4182

4085:                                             ; preds = %4084
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %692) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %691) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %693) #11
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %693, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %666)
          to label %4086 unwind label %4185

4086:                                             ; preds = %4085
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %694) #11
  %4087 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %696) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %697) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %697) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %696, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %697)
          to label %4088 unwind label %4187

4088:                                             ; preds = %4086
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %695, ptr noundef nonnull align 8 dereferenceable(32) %696)
          to label %4089 unwind label %4189

4089:                                             ; preds = %4088
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %694, ptr noundef nonnull align 8 dereferenceable(32) %4087, ptr noundef nonnull %695, ptr noundef nonnull align 8 dereferenceable(16) %662, ptr noundef nonnull align 8 dereferenceable(16) %693)
          to label %4090 unwind label %4191

4090:                                             ; preds = %4089
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %695) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %696) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %697) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %697) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %696) #11
  %4091 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %280, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4092 unwind label %4195

4092:                                             ; preds = %4090
  %4093 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4091)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4093, ptr noundef nonnull align 8 dereferenceable(16) %693)
          to label %4094 unwind label %4195

4094:                                             ; preds = %4092
  %4095 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %279, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4096 unwind label %4195

4096:                                             ; preds = %4094
  %4097 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4095)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4097, ptr noundef nonnull align 8 dereferenceable(16) %694)
          to label %4098 unwind label %4195

4098:                                             ; preds = %4096
  %4099 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1966)
  %4100 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %4099)
  %4101 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %4099)
  %.not20723609 = icmp eq ptr %4100, %4101
  br i1 %.not20723609, label %._crit_edge3613, label %.lr.ph3612

._crit_edge3613:                                  ; preds = %4262, %4098
  %4102 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %281, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4268 unwind label %4195

4103:                                             ; preds = %.lr.ph3617
  %4104 = landingpad { ptr, i32 }
          cleanup
  br label %4325

4105:                                             ; preds = %4039
  %4106 = landingpad { ptr, i32 }
          cleanup
  br label %4324

4107:                                             ; preds = %4041
  %4108 = landingpad { ptr, i32 }
          cleanup
  br label %4323

4109:                                             ; preds = %4042
  %4110 = landingpad { ptr, i32 }
          cleanup
  br label %4322

4111:                                             ; preds = %4045
  %4112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %663) #11
  br label %4322

4113:                                             ; preds = %4046
  %4114 = landingpad { ptr, i32 }
          cleanup
  br label %4117

4115:                                             ; preds = %4047
  %4116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %665) #11
  br label %4117

4117:                                             ; preds = %4115, %4113
  %.pn2047 = phi { ptr, i32 } [ %4116, %4115 ], [ %4114, %4113 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %665) #11
  br label %4321

4118:                                             ; preds = %4048
  %4119 = landingpad { ptr, i32 }
          cleanup
  br label %4320

4120:                                             ; preds = %4049
  %4121 = landingpad { ptr, i32 }
          cleanup
  br label %4124

4122:                                             ; preds = %4050
  %4123 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %668) #11
  br label %4124

4124:                                             ; preds = %4122, %4120
  %.pn2049 = phi { ptr, i32 } [ %4123, %4122 ], [ %4121, %4120 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %667) #11
  br label %4320

4125:                                             ; preds = %4051
  %4126 = landingpad { ptr, i32 }
          cleanup
  br label %4319

4127:                                             ; preds = %4052
  %4128 = landingpad { ptr, i32 }
          cleanup
  br label %4134

4129:                                             ; preds = %4054
  %4130 = landingpad { ptr, i32 }
          cleanup
  br label %4133

4131:                                             ; preds = %4055
  %4132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %671) #11
  br label %4133

4133:                                             ; preds = %4131, %4129
  %.pn2051 = phi { ptr, i32 } [ %4132, %4131 ], [ %4130, %4129 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %672) #11
  br label %4134

4134:                                             ; preds = %4133, %4127
  %.pn2051.pn = phi { ptr, i32 } [ %.pn2051, %4133 ], [ %4128, %4127 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %673) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %673) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %672) #11
  br label %4318

4135:                                             ; preds = %4056
  %4136 = landingpad { ptr, i32 }
          cleanup
  br label %4317

4137:                                             ; preds = %4058
  %4138 = landingpad { ptr, i32 }
          cleanup
  br label %4147

4139:                                             ; preds = %4061
  %4140 = landingpad { ptr, i32 }
          cleanup
  br label %4146

4141:                                             ; preds = %4062
  %4142 = landingpad { ptr, i32 }
          cleanup
  br label %4145

4143:                                             ; preds = %4063
  %4144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %674) #11
  br label %4145

4145:                                             ; preds = %4143, %4141
  %.pn2054 = phi { ptr, i32 } [ %4144, %4143 ], [ %4142, %4141 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %675) #11
  br label %4146

4146:                                             ; preds = %4145, %4139
  %.pn2054.pn = phi { ptr, i32 } [ %.pn2054, %4145 ], [ %4140, %4139 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #11
  br label %4147

4147:                                             ; preds = %4146, %4137
  %.pn2054.pn.pn = phi { ptr, i32 } [ %.pn2054.pn, %4146 ], [ %4138, %4137 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %677) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %676) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %674) #11
  br label %4317

4148:                                             ; preds = %4064
  %4149 = landingpad { ptr, i32 }
          cleanup
  br label %4316

4150:                                             ; preds = %4065
  %4151 = landingpad { ptr, i32 }
          cleanup
  br label %4154

4152:                                             ; preds = %4066
  %4153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %680) #11
  br label %4154

4154:                                             ; preds = %4152, %4150
  %.pn2058 = phi { ptr, i32 } [ %4153, %4152 ], [ %4151, %4150 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %679) #11
  br label %4316

4155:                                             ; preds = %4067
  %4156 = landingpad { ptr, i32 }
          cleanup
  br label %4315

4157:                                             ; preds = %4068
  %4158 = landingpad { ptr, i32 }
          cleanup
  br label %4164

4159:                                             ; preds = %4070
  %4160 = landingpad { ptr, i32 }
          cleanup
  br label %4163

4161:                                             ; preds = %4071
  %4162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %683) #11
  br label %4163

4163:                                             ; preds = %4161, %4159
  %.pn2060 = phi { ptr, i32 } [ %4162, %4161 ], [ %4160, %4159 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %684) #11
  br label %4164

4164:                                             ; preds = %4163, %4157
  %.pn2060.pn = phi { ptr, i32 } [ %.pn2060, %4163 ], [ %4158, %4157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %685) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %685) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %684) #11
  br label %4314

4165:                                             ; preds = %4072
  %4166 = landingpad { ptr, i32 }
          cleanup
  br label %4313

4167:                                             ; preds = %4074
  %4168 = landingpad { ptr, i32 }
          cleanup
  br label %4177

4169:                                             ; preds = %4077
  %4170 = landingpad { ptr, i32 }
          cleanup
  br label %4176

4171:                                             ; preds = %4078
  %4172 = landingpad { ptr, i32 }
          cleanup
  br label %4175

4173:                                             ; preds = %4079
  %4174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %686) #11
  br label %4175

4175:                                             ; preds = %4173, %4171
  %.pn2063 = phi { ptr, i32 } [ %4174, %4173 ], [ %4172, %4171 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %687) #11
  br label %4176

4176:                                             ; preds = %4175, %4169
  %.pn2063.pn = phi { ptr, i32 } [ %.pn2063, %4175 ], [ %4170, %4169 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %688) #11
  br label %4177

4177:                                             ; preds = %4176, %4167
  %.pn2063.pn.pn = phi { ptr, i32 } [ %.pn2063.pn, %4176 ], [ %4168, %4167 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %689) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %688) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %686) #11
  br label %4313

4178:                                             ; preds = %4082, %4080
  %4179 = landingpad { ptr, i32 }
          cleanup
  br label %4312

4180:                                             ; preds = %4083
  %4181 = landingpad { ptr, i32 }
          cleanup
  br label %4184

4182:                                             ; preds = %4084
  %4183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %692) #11
  br label %4184

4184:                                             ; preds = %4182, %4180
  %.pn2067 = phi { ptr, i32 } [ %4183, %4182 ], [ %4181, %4180 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %691) #11
  br label %4312

4185:                                             ; preds = %4085
  %4186 = landingpad { ptr, i32 }
          cleanup
  br label %4311

4187:                                             ; preds = %4086
  %4188 = landingpad { ptr, i32 }
          cleanup
  br label %4194

4189:                                             ; preds = %4088
  %4190 = landingpad { ptr, i32 }
          cleanup
  br label %4193

4191:                                             ; preds = %4089
  %4192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %695) #11
  br label %4193

4193:                                             ; preds = %4191, %4189
  %.pn2069 = phi { ptr, i32 } [ %4192, %4191 ], [ %4190, %4189 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %696) #11
  br label %4194

4194:                                             ; preds = %4193, %4187
  %.pn2069.pn = phi { ptr, i32 } [ %.pn2069, %4193 ], [ %4188, %4187 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %697) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %697) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %696) #11
  br label %4310

4195:                                             ; preds = %4273, %._crit_edge3613, %4096, %4094, %4092, %4090
  %4196 = landingpad { ptr, i32 }
          cleanup
  br label %4309

.lr.ph3612:                                       ; preds = %4098, %4262
  %.014323610 = phi ptr [ %4263, %4262 ], [ %4100, %4098 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %698) #11
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %698, ptr noundef nonnull align 8 dereferenceable(48) %.014323610)
          to label %4197 unwind label %4218

4197:                                             ; preds = %.lr.ph3612
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %699) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %699, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %4198 unwind label %4220

4198:                                             ; preds = %4197
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %700) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %701) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %701, ptr noundef nonnull align 8 dereferenceable(32) %699, ptr noundef nonnull @.str.161)
          to label %4199 unwind label %4222

4199:                                             ; preds = %4198
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %700, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %701)
          to label %4200 unwind label %4224

4200:                                             ; preds = %4199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %701) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %701) #11
  %4201 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %699, ptr noundef nonnull align 8 dereferenceable(32) %659) #11
  br i1 %4201, label %4202, label %4240

4202:                                             ; preds = %4200
  %4203 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %281, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4204 unwind label %4227

4204:                                             ; preds = %4202
  %4205 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4203)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %702) #11
  %4206 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %704) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %705) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %705) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %704, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %705)
          to label %4207 unwind label %4229

4207:                                             ; preds = %4204
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %703, ptr noundef nonnull align 8 dereferenceable(32) %704)
          to label %4208 unwind label %4231

4208:                                             ; preds = %4207
  %4209 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %282, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4210 unwind label %4233

4210:                                             ; preds = %4208
  %4211 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %280, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4212 unwind label %4233

4212:                                             ; preds = %4210
  %4213 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4211)
  %4214 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4onlyEv(ptr noundef nonnull align 8 dereferenceable(64) %4213)
          to label %4215 unwind label %4233

4215:                                             ; preds = %4212
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %702, ptr noundef nonnull align 8 dereferenceable(32) %4206, ptr noundef nonnull %703, ptr noundef nonnull align 8 dereferenceable(16) %4209, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %700, ptr noundef nonnull align 1 dereferenceable(4) @.str.162, ptr noundef nonnull align 8 dereferenceable(16) %4214, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %4216 unwind label %4233

4216:                                             ; preds = %4215
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4205, ptr noundef nonnull align 8 dereferenceable(16) %702)
          to label %4217 unwind label %4235

4217:                                             ; preds = %4216
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %702) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %703) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %704) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %705) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %705) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %704) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %702) #11
  br label %4262

4218:                                             ; preds = %.lr.ph3612
  %4219 = landingpad { ptr, i32 }
          cleanup
  br label %4267

4220:                                             ; preds = %4197
  %4221 = landingpad { ptr, i32 }
          cleanup
  br label %4266

4222:                                             ; preds = %4198
  %4223 = landingpad { ptr, i32 }
          cleanup
  br label %4226

4224:                                             ; preds = %4199
  %4225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %701) #11
  br label %4226

4226:                                             ; preds = %4224, %4222
  %.pn2079 = phi { ptr, i32 } [ %4225, %4224 ], [ %4223, %4222 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %701) #11
  br label %4265

4227:                                             ; preds = %4240, %4202
  %4228 = landingpad { ptr, i32 }
          cleanup
  br label %4264

4229:                                             ; preds = %4204
  %4230 = landingpad { ptr, i32 }
          cleanup
  br label %4239

4231:                                             ; preds = %4207
  %4232 = landingpad { ptr, i32 }
          cleanup
  br label %4238

4233:                                             ; preds = %4215, %4212, %4210, %4208
  %4234 = landingpad { ptr, i32 }
          cleanup
  br label %4237

4235:                                             ; preds = %4216
  %4236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %702) #11
  br label %4237

4237:                                             ; preds = %4235, %4233
  %.pn2085 = phi { ptr, i32 } [ %4236, %4235 ], [ %4234, %4233 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %703) #11
  br label %4238

4238:                                             ; preds = %4237, %4231
  %.pn2085.pn = phi { ptr, i32 } [ %.pn2085, %4237 ], [ %4232, %4231 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %704) #11
  br label %4239

4239:                                             ; preds = %4238, %4229
  %.pn2085.pn.pn = phi { ptr, i32 } [ %.pn2085.pn, %4238 ], [ %4230, %4229 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %705) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %705) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %704) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %702) #11
  br label %4264

4240:                                             ; preds = %4200
  %4241 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %281, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4242 unwind label %4227

4242:                                             ; preds = %4240
  %4243 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4241)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %706) #11
  %4244 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %708) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %709) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %709) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %708, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %709)
          to label %4245 unwind label %4251

4245:                                             ; preds = %4242
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %707, ptr noundef nonnull align 8 dereferenceable(32) %708)
          to label %4246 unwind label %4253

4246:                                             ; preds = %4245
  %4247 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %282, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4248 unwind label %4255

4248:                                             ; preds = %4246
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A10_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %706, ptr noundef nonnull align 8 dereferenceable(32) %4244, ptr noundef nonnull %707, ptr noundef nonnull align 8 dereferenceable(16) %4247, ptr noundef nonnull align 1 dereferenceable(3) @.str.90, ptr noundef nonnull align 8 dereferenceable(16) %700, ptr noundef nonnull align 1 dereferenceable(10) @.str.163, ptr noundef nonnull align 8 dereferenceable(16) %700, ptr noundef nonnull align 1 dereferenceable(2) @.str.93)
          to label %4249 unwind label %4255

4249:                                             ; preds = %4248
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4243, ptr noundef nonnull align 8 dereferenceable(16) %706)
          to label %4250 unwind label %4257

4250:                                             ; preds = %4249
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %706) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %707) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %708) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %709) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %709) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %708) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %706) #11
  br label %4262

4251:                                             ; preds = %4242
  %4252 = landingpad { ptr, i32 }
          cleanup
  br label %4261

4253:                                             ; preds = %4245
  %4254 = landingpad { ptr, i32 }
          cleanup
  br label %4260

4255:                                             ; preds = %4248, %4246
  %4256 = landingpad { ptr, i32 }
          cleanup
  br label %4259

4257:                                             ; preds = %4249
  %4258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %706) #11
  br label %4259

4259:                                             ; preds = %4257, %4255
  %.pn2081 = phi { ptr, i32 } [ %4258, %4257 ], [ %4256, %4255 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %707) #11
  br label %4260

4260:                                             ; preds = %4259, %4253
  %.pn2081.pn = phi { ptr, i32 } [ %.pn2081, %4259 ], [ %4254, %4253 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %708) #11
  br label %4261

4261:                                             ; preds = %4260, %4251
  %.pn2081.pn.pn = phi { ptr, i32 } [ %.pn2081.pn, %4260 ], [ %4252, %4251 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %709) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %709) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %708) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %706) #11
  br label %4264

4262:                                             ; preds = %4250, %4217
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %700) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %700) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %699) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %699) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %698) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %698) #11
  %4263 = getelementptr inbounds i8, ptr %.014323610, i64 48
  %.not2072 = icmp eq ptr %4263, %4101
  br i1 %.not2072, label %._crit_edge3613, label %.lr.ph3612

4264:                                             ; preds = %4261, %4239, %4227
  %.pn2085.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn, %4239 ], [ %4228, %4227 ], [ %.pn2081.pn.pn, %4261 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %700) #11
  br label %4265

4265:                                             ; preds = %4264, %4226
  %.pn2085.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn, %4264 ], [ %.pn2079, %4226 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %700) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %699) #11
  br label %4266

4266:                                             ; preds = %4265, %4220
  %.pn2085.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn, %4265 ], [ %4221, %4220 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %699) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %698) #11
  br label %4267

4267:                                             ; preds = %4266, %4218
  %.pn2085.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn, %4266 ], [ %4219, %4218 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %698) #11
  br label %4309

4268:                                             ; preds = %._crit_edge3613
  %4269 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4102)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %710) #11
  %4270 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %282, ptr noundef nonnull align 8 dereferenceable(32) %659)
          to label %4271 unwind label %4289

4271:                                             ; preds = %4268
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %710, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %4270)
          to label %4272 unwind label %4289

4272:                                             ; preds = %4271
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4269, ptr noundef nonnull align 8 dereferenceable(16) %710)
          to label %4273 unwind label %4291

4273:                                             ; preds = %4272
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %710) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %710) #11
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %711, ptr noundef nonnull align 8 dereferenceable(16) %1914)
          to label %4274 unwind label %4195

4274:                                             ; preds = %4273
  %4275 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef nonnull %711)
          to label %4276 unwind label %4294

4276:                                             ; preds = %4274
  br i1 %4275, label %.critedge, label %4277

4277:                                             ; preds = %4276
  %4278 = call noundef ptr @_ZNK6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %4040)
  %4279 = getelementptr inbounds i8, ptr %4278, i64 176
  %4280 = load i8, ptr %4279, align 8, !tbaa !37, !range !31, !noundef !32
  %4281 = trunc nuw i8 %4280 to i1
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %711) #11
  br i1 %4281, label %4307, label %4282

4282:                                             ; preds = %4277
  %4283 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %536)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %712) #11
  %4284 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %714) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %715) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %715) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %714, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %715)
          to label %4285 unwind label %4296

4285:                                             ; preds = %4282
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %713, ptr noundef nonnull align 8 dereferenceable(32) %714)
          to label %4286 unwind label %4298

4286:                                             ; preds = %4285
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA9_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %712, ptr noundef nonnull align 8 dereferenceable(32) %4284, ptr noundef nonnull %713, ptr noundef nonnull align 1 dereferenceable(10) @.str.159, ptr noundef nonnull align 8 dereferenceable(16) %511, ptr noundef nonnull align 1 dereferenceable(9) @.str.164, ptr noundef nonnull align 8 dereferenceable(16) %664, ptr noundef nonnull align 1 dereferenceable(3) @.str.54)
          to label %4287 unwind label %4300

4287:                                             ; preds = %4286
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4283, ptr noundef nonnull align 8 dereferenceable(16) %712)
          to label %4288 unwind label %4302

4288:                                             ; preds = %4287
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %712) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %713) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %714) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %715) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %715) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %714) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %712) #11
  br label %4307

4289:                                             ; preds = %4271, %4268
  %4290 = landingpad { ptr, i32 }
          cleanup
  br label %4293

4291:                                             ; preds = %4272
  %4292 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %710) #11
  br label %4293

4293:                                             ; preds = %4291, %4289
  %.pn2073 = phi { ptr, i32 } [ %4292, %4291 ], [ %4290, %4289 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %710) #11
  br label %4309

4294:                                             ; preds = %4274
  %4295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %711) #11
  br label %4309

4296:                                             ; preds = %4282
  %4297 = landingpad { ptr, i32 }
          cleanup
  br label %4306

4298:                                             ; preds = %4285
  %4299 = landingpad { ptr, i32 }
          cleanup
  br label %4305

4300:                                             ; preds = %4286
  %4301 = landingpad { ptr, i32 }
          cleanup
  br label %4304

4302:                                             ; preds = %4287
  %4303 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %712) #11
  br label %4304

4304:                                             ; preds = %4302, %4300
  %.pn2075 = phi { ptr, i32 } [ %4303, %4302 ], [ %4301, %4300 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %713) #11
  br label %4305

4305:                                             ; preds = %4304, %4298
  %.pn2075.pn = phi { ptr, i32 } [ %.pn2075, %4304 ], [ %4299, %4298 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %714) #11
  br label %4306

4306:                                             ; preds = %4305, %4296
  %.pn2075.pn.pn = phi { ptr, i32 } [ %.pn2075.pn, %4305 ], [ %4297, %4296 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %715) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %715) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %714) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %712) #11
  br label %4309

.critedge:                                        ; preds = %4276
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %711) #11
  br label %4307

4307:                                             ; preds = %.critedge, %4288, %4277
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %694) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %694) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %693) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %693) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %690) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %690) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %682) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %682) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %681) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %681) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %678) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %678) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %670) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %670) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %669) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %669) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %666) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %666) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %664) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %664) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %662) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %662) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %661) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %661) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %660) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %660) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %659) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %659) #11
  %4308 = getelementptr inbounds i8, ptr %.014313615, i64 48
  %.not1683 = icmp eq ptr %4308, %3986
  br i1 %.not1683, label %._crit_edge3618, label %.lr.ph3617

4309:                                             ; preds = %4306, %4294, %4293, %4267, %4195
  %.pn2085.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn, %4267 ], [ %.pn2075.pn.pn, %4306 ], [ %4295, %4294 ], [ %4196, %4195 ], [ %.pn2073, %4293 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %694) #11
  br label %4310

4310:                                             ; preds = %4309, %4194
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn, %4309 ], [ %.pn2069.pn, %4194 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %694) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %693) #11
  br label %4311

4311:                                             ; preds = %4310, %4185
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn, %4310 ], [ %4186, %4185 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %693) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %690) #11
  br label %4312

4312:                                             ; preds = %4311, %4184, %4178
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4311 ], [ %.pn2067, %4184 ], [ %4179, %4178 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %690) #11
  br label %4313

4313:                                             ; preds = %4312, %4177, %4165
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4312 ], [ %.pn2063.pn.pn, %4177 ], [ %4166, %4165 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %682) #11
  br label %4314

4314:                                             ; preds = %4313, %4164
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4313 ], [ %.pn2060.pn, %4164 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %682) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %681) #11
  br label %4315

4315:                                             ; preds = %4314, %4155
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4314 ], [ %4156, %4155 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %681) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %678) #11
  br label %4316

4316:                                             ; preds = %4315, %4154, %4148
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4315 ], [ %.pn2058, %4154 ], [ %4149, %4148 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %678) #11
  br label %4317

4317:                                             ; preds = %4316, %4147, %4135
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4316 ], [ %.pn2054.pn.pn, %4147 ], [ %4136, %4135 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %670) #11
  br label %4318

4318:                                             ; preds = %4317, %4134
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4317 ], [ %.pn2051.pn, %4134 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %670) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %669) #11
  br label %4319

4319:                                             ; preds = %4318, %4125
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4318 ], [ %4126, %4125 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %669) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %666) #11
  br label %4320

4320:                                             ; preds = %4319, %4124, %4118
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4319 ], [ %.pn2049, %4124 ], [ %4119, %4118 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %666) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %664) #11
  br label %4321

4321:                                             ; preds = %4320, %4117
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4320 ], [ %.pn2047, %4117 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %664) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %662) #11
  br label %4322

4322:                                             ; preds = %4321, %4111, %4109
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4321 ], [ %4112, %4111 ], [ %4110, %4109 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %662) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %661) #11
  br label %4323

4323:                                             ; preds = %4322, %4107
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4322 ], [ %4108, %4107 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %661) #11
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %660) #11
  br label %4324

4324:                                             ; preds = %4323, %4105
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4323 ], [ %4106, %4105 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %660) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %659) #11
  br label %4325

4325:                                             ; preds = %4324, %4103
  %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4324 ], [ %4104, %4103 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %659) #11
  br label %5933

4326:                                             ; preds = %._crit_edge3618
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4038, ptr noundef nonnull align 8 dereferenceable(16) %716)
          to label %4327 unwind label %4349

4327:                                             ; preds = %4326
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %716) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %716) #11
  %4328 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %273)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %717) #11
  invoke void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %717, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %274)
          to label %4329 unwind label %4352

4329:                                             ; preds = %4327
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4328, ptr noundef nonnull align 8 dereferenceable(16) %717)
          to label %4330 unwind label %4354

4330:                                             ; preds = %4329
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %717) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %717) #11
  %4331 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %718) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %719) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %719)
          to label %4332 unwind label %4357

4332:                                             ; preds = %4330
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %720) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %720)
          to label %4333 unwind label %4359

4333:                                             ; preds = %4332
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %721) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %721)
          to label %4334 unwind label %4361

4334:                                             ; preds = %4333
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %722) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %723) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %724)
          to label %4335 unwind label %4363

4335:                                             ; preds = %4334
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %725)
          to label %4336 unwind label %4365

4336:                                             ; preds = %4335
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %723, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %724, ptr noundef nonnull %725)
          to label %4337 unwind label %4367

4337:                                             ; preds = %4336
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %722, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %723, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %4338 unwind label %4369

4338:                                             ; preds = %4337
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %718, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %719, ptr noundef nonnull align 8 dereferenceable(16) %720, ptr noundef nonnull align 4 dereferenceable(20) %721, ptr noundef nonnull align 8 dereferenceable(16) %722, ptr noundef nonnull align 8 dereferenceable(16) %224)
          to label %4339 unwind label %4371

4339:                                             ; preds = %4338
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4331, ptr noundef nonnull align 8 dereferenceable(16) %718)
          to label %4340 unwind label %4373

4340:                                             ; preds = %4339
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %718) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %722) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %723) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %725) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %724) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %723) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %722) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %721) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %721) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %720) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %720) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %719) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %719) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %718) #11
  br i1 %1961, label %.critedge2621, label %4341

4341:                                             ; preds = %4340
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %726) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %726)
          to label %4342 unwind label %4383

4342:                                             ; preds = %4341
  br i1 %1916, label %4343, label %4390

4343:                                             ; preds = %4342
  %4344 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %726)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %727) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA4_cA31_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %727, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(4) @.str.165, ptr noundef nonnull align 1 dereferenceable(31) @.str.166)
          to label %4345 unwind label %4385

4345:                                             ; preds = %4343
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4344, ptr noundef nonnull align 8 dereferenceable(16) %727)
          to label %4346 unwind label %4387

4346:                                             ; preds = %4345
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %727) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %727) #11
  br label %4390

4347:                                             ; preds = %._crit_edge3618
  %4348 = landingpad { ptr, i32 }
          cleanup
  br label %4351

4349:                                             ; preds = %4326
  %4350 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %716) #11
  br label %4351

4351:                                             ; preds = %4349, %4347
  %.pn1684 = phi { ptr, i32 } [ %4350, %4349 ], [ %4348, %4347 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %716) #11
  br label %5933

4352:                                             ; preds = %4327
  %4353 = landingpad { ptr, i32 }
          cleanup
  br label %4356

4354:                                             ; preds = %4329
  %4355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %717) #11
  br label %4356

4356:                                             ; preds = %4354, %4352
  %.pn1686 = phi { ptr, i32 } [ %4355, %4354 ], [ %4353, %4352 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %717) #11
  br label %5933

4357:                                             ; preds = %4330
  %4358 = landingpad { ptr, i32 }
          cleanup
  br label %4382

4359:                                             ; preds = %4332
  %4360 = landingpad { ptr, i32 }
          cleanup
  br label %4381

4361:                                             ; preds = %4333
  %4362 = landingpad { ptr, i32 }
          cleanup
  br label %4380

4363:                                             ; preds = %4334
  %4364 = landingpad { ptr, i32 }
          cleanup
  br label %4379

4365:                                             ; preds = %4335
  %4366 = landingpad { ptr, i32 }
          cleanup
  br label %4378

4367:                                             ; preds = %4336
  %4368 = landingpad { ptr, i32 }
          cleanup
  br label %4377

4369:                                             ; preds = %4337
  %4370 = landingpad { ptr, i32 }
          cleanup
  br label %4376

4371:                                             ; preds = %4338
  %4372 = landingpad { ptr, i32 }
          cleanup
  br label %4375

4373:                                             ; preds = %4339
  %4374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %718) #11
  br label %4375

4375:                                             ; preds = %4373, %4371
  %.pn1688 = phi { ptr, i32 } [ %4374, %4373 ], [ %4372, %4371 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %722) #11
  br label %4376

4376:                                             ; preds = %4375, %4369
  %.pn1688.pn = phi { ptr, i32 } [ %.pn1688, %4375 ], [ %4370, %4369 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %723) #11
  br label %4377

4377:                                             ; preds = %4376, %4367
  %.pn1688.pn.pn = phi { ptr, i32 } [ %.pn1688.pn, %4376 ], [ %4368, %4367 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %725) #11
  br label %4378

4378:                                             ; preds = %4377, %4365
  %.pn1688.pn.pn.pn = phi { ptr, i32 } [ %.pn1688.pn.pn, %4377 ], [ %4366, %4365 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %724) #11
  br label %4379

4379:                                             ; preds = %4378, %4363
  %.pn1688.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1688.pn.pn.pn, %4378 ], [ %4364, %4363 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %723) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %722) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %721) #11
  br label %4380

4380:                                             ; preds = %4379, %4361
  %.pn1688.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1688.pn.pn.pn.pn, %4379 ], [ %4362, %4361 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %721) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %720) #11
  br label %4381

4381:                                             ; preds = %4380, %4359
  %.pn1688.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1688.pn.pn.pn.pn.pn, %4380 ], [ %4360, %4359 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %720) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %719) #11
  br label %4382

4382:                                             ; preds = %4381, %4357
  %.pn1688.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1688.pn.pn.pn.pn.pn.pn, %4381 ], [ %4358, %4357 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %719) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %718) #11
  br label %5933

4383:                                             ; preds = %4341
  %4384 = landingpad { ptr, i32 }
          cleanup
  br label %4546

4385:                                             ; preds = %4343
  %4386 = landingpad { ptr, i32 }
          cleanup
  br label %4389

4387:                                             ; preds = %4345
  %4388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %727) #11
  br label %4389

4389:                                             ; preds = %4387, %4385
  %.pn1697 = phi { ptr, i32 } [ %4388, %4387 ], [ %4386, %4385 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %727) #11
  br label %4545

4390:                                             ; preds = %4346, %4342
  %4391 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %728) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %729) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %730) #11
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %731) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %732) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %733) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %734)
          to label %4392 unwind label %4418

4392:                                             ; preds = %4390
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %735)
          to label %4393 unwind label %4420

4393:                                             ; preds = %4392
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %733, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %734, ptr noundef nonnull %735)
          to label %4394 unwind label %4422

4394:                                             ; preds = %4393
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %732, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %733, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %4395 unwind label %4424

4395:                                             ; preds = %4394
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %731, ptr noundef nonnull align 8 dereferenceable(16) %732)
          to label %4396 unwind label %4426

4396:                                             ; preds = %4395
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %736) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %737)
          to label %4397 unwind label %4428

4397:                                             ; preds = %4396
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %736, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %737)
          to label %4398 unwind label %4430

4398:                                             ; preds = %4397
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %730, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %726, ptr noundef nonnull align 4 dereferenceable(20) %731, ptr noundef nonnull align 8 dereferenceable(16) %736, ptr noundef nonnull align 8 dereferenceable(16) %252)
          to label %4399 unwind label %4432

4399:                                             ; preds = %4398
  %4400 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %730)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %729, ptr noundef nonnull align 8 dereferenceable(136) %4400)
          to label %4401 unwind label %4434

4401:                                             ; preds = %4399
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %728, ptr noundef nonnull align 8 dereferenceable(16) %729)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4391, ptr noundef nonnull align 8 dereferenceable(16) %728)
          to label %4402 unwind label %4436

4402:                                             ; preds = %4401
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %728) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %729) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %730) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %736) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %737) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %736) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %731) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %732) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %733) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %735) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %734) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %733) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %732) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %731) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %730) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %729) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %728) #11
  %4403 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %738) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %739) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %740) #11
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %741) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %742) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %743) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %744)
          to label %4404 unwind label %4447

4404:                                             ; preds = %4402
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %745)
          to label %4405 unwind label %4449

4405:                                             ; preds = %4404
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %743, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %744, ptr noundef nonnull %745)
          to label %4406 unwind label %4451

4406:                                             ; preds = %4405
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %742, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %743, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %4407 unwind label %4453

4407:                                             ; preds = %4406
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %741, ptr noundef nonnull align 8 dereferenceable(16) %742)
          to label %4408 unwind label %4455

4408:                                             ; preds = %4407
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %746) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %747)
          to label %4409 unwind label %4457

4409:                                             ; preds = %4408
  invoke void @_ZN6langcc10lower_nameENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_6Option2_TISA_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %746, i32 noundef 6, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull %747)
          to label %4410 unwind label %4459

4410:                                             ; preds = %4409
  invoke void @_ZN6langcc13CppGenContext22gen_cpp_fun_proto_declERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKNS1_INS2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %740, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %726, ptr noundef nonnull align 4 dereferenceable(20) %741, ptr noundef nonnull align 8 dereferenceable(16) %746, ptr noundef nonnull align 8 dereferenceable(16) %268)
          to label %4411 unwind label %4461

4411:                                             ; preds = %4410
  %4412 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %740)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %739, ptr noundef nonnull align 8 dereferenceable(136) %4412)
          to label %4413 unwind label %4463

4413:                                             ; preds = %4411
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %738, ptr noundef nonnull align 8 dereferenceable(16) %739)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4403, ptr noundef nonnull align 8 dereferenceable(16) %738)
          to label %4414 unwind label %4465

4414:                                             ; preds = %4413
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %738) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %739) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %740) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %746) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %747) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %746) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %741) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %742) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %743) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %745) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %744) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %743) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %742) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %741) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %740) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %739) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %738) #11
  %4415 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1966)
  %4416 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %4415)
  %4417 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %4415)
  %.not17193619 = icmp eq ptr %4416, %4417
  br i1 %.not17193619, label %._crit_edge3623, label %.lr.ph3622

._crit_edge3623:                                  ; preds = %4495, %4414
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %726) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %726) #11
  br label %4874

4418:                                             ; preds = %4390
  %4419 = landingpad { ptr, i32 }
          cleanup
  br label %4446

4420:                                             ; preds = %4392
  %4421 = landingpad { ptr, i32 }
          cleanup
  br label %4445

4422:                                             ; preds = %4393
  %4423 = landingpad { ptr, i32 }
          cleanup
  br label %4444

4424:                                             ; preds = %4394
  %4425 = landingpad { ptr, i32 }
          cleanup
  br label %4443

4426:                                             ; preds = %4395
  %4427 = landingpad { ptr, i32 }
          cleanup
  br label %4442

4428:                                             ; preds = %4396
  %4429 = landingpad { ptr, i32 }
          cleanup
  br label %4441

4430:                                             ; preds = %4397
  %4431 = landingpad { ptr, i32 }
          cleanup
  br label %4440

4432:                                             ; preds = %4398
  %4433 = landingpad { ptr, i32 }
          cleanup
  br label %4439

4434:                                             ; preds = %4399
  %4435 = landingpad { ptr, i32 }
          cleanup
  br label %4438

4436:                                             ; preds = %4401
  %4437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %728) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %729) #11
  br label %4438

4438:                                             ; preds = %4436, %4434
  %.pn1699 = phi { ptr, i32 } [ %4437, %4436 ], [ %4435, %4434 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %730) #11
  br label %4439

4439:                                             ; preds = %4438, %4432
  %.pn1699.pn = phi { ptr, i32 } [ %.pn1699, %4438 ], [ %4433, %4432 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %736) #11
  br label %4440

4440:                                             ; preds = %4439, %4430
  %.pn1699.pn.pn = phi { ptr, i32 } [ %.pn1699.pn, %4439 ], [ %4431, %4430 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %737) #11
  br label %4441

4441:                                             ; preds = %4440, %4428
  %.pn1699.pn.pn.pn = phi { ptr, i32 } [ %.pn1699.pn.pn, %4440 ], [ %4429, %4428 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %736) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %731) #11
  br label %4442

4442:                                             ; preds = %4441, %4426
  %.pn1699.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1699.pn.pn.pn, %4441 ], [ %4427, %4426 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %732) #11
  br label %4443

4443:                                             ; preds = %4442, %4424
  %.pn1699.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1699.pn.pn.pn.pn, %4442 ], [ %4425, %4424 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %733) #11
  br label %4444

4444:                                             ; preds = %4443, %4422
  %.pn1699.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1699.pn.pn.pn.pn.pn, %4443 ], [ %4423, %4422 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %735) #11
  br label %4445

4445:                                             ; preds = %4444, %4420
  %.pn1699.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1699.pn.pn.pn.pn.pn.pn, %4444 ], [ %4421, %4420 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %734) #11
  br label %4446

4446:                                             ; preds = %4445, %4418
  %.pn1699.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1699.pn.pn.pn.pn.pn.pn.pn, %4445 ], [ %4419, %4418 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %733) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %732) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %731) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %730) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %729) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %728) #11
  br label %4545

4447:                                             ; preds = %4402
  %4448 = landingpad { ptr, i32 }
          cleanup
  br label %4475

4449:                                             ; preds = %4404
  %4450 = landingpad { ptr, i32 }
          cleanup
  br label %4474

4451:                                             ; preds = %4405
  %4452 = landingpad { ptr, i32 }
          cleanup
  br label %4473

4453:                                             ; preds = %4406
  %4454 = landingpad { ptr, i32 }
          cleanup
  br label %4472

4455:                                             ; preds = %4407
  %4456 = landingpad { ptr, i32 }
          cleanup
  br label %4471

4457:                                             ; preds = %4408
  %4458 = landingpad { ptr, i32 }
          cleanup
  br label %4470

4459:                                             ; preds = %4409
  %4460 = landingpad { ptr, i32 }
          cleanup
  br label %4469

4461:                                             ; preds = %4410
  %4462 = landingpad { ptr, i32 }
          cleanup
  br label %4468

4463:                                             ; preds = %4411
  %4464 = landingpad { ptr, i32 }
          cleanup
  br label %4467

4465:                                             ; preds = %4413
  %4466 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %738) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %739) #11
  br label %4467

4467:                                             ; preds = %4465, %4463
  %.pn1709 = phi { ptr, i32 } [ %4466, %4465 ], [ %4464, %4463 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %740) #11
  br label %4468

4468:                                             ; preds = %4467, %4461
  %.pn1709.pn = phi { ptr, i32 } [ %.pn1709, %4467 ], [ %4462, %4461 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %746) #11
  br label %4469

4469:                                             ; preds = %4468, %4459
  %.pn1709.pn.pn = phi { ptr, i32 } [ %.pn1709.pn, %4468 ], [ %4460, %4459 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %747) #11
  br label %4470

4470:                                             ; preds = %4469, %4457
  %.pn1709.pn.pn.pn = phi { ptr, i32 } [ %.pn1709.pn.pn, %4469 ], [ %4458, %4457 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %746) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %741) #11
  br label %4471

4471:                                             ; preds = %4470, %4455
  %.pn1709.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1709.pn.pn.pn, %4470 ], [ %4456, %4455 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %742) #11
  br label %4472

4472:                                             ; preds = %4471, %4453
  %.pn1709.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1709.pn.pn.pn.pn, %4471 ], [ %4454, %4453 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %743) #11
  br label %4473

4473:                                             ; preds = %4472, %4451
  %.pn1709.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1709.pn.pn.pn.pn.pn, %4472 ], [ %4452, %4451 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %745) #11
  br label %4474

4474:                                             ; preds = %4473, %4449
  %.pn1709.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1709.pn.pn.pn.pn.pn.pn, %4473 ], [ %4450, %4449 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %744) #11
  br label %4475

4475:                                             ; preds = %4474, %4447
  %.pn1709.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1709.pn.pn.pn.pn.pn.pn.pn, %4474 ], [ %4448, %4447 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %743) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %742) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %741) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %740) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %739) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %738) #11
  br label %4545

.lr.ph3622:                                       ; preds = %4414, %4495
  %.014333620 = phi ptr [ %4496, %4495 ], [ %4416, %4414 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %748) #11
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %748, ptr noundef nonnull align 8 dereferenceable(48) %.014333620)
          to label %4476 unwind label %4497

4476:                                             ; preds = %.lr.ph3622
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %749) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %749, ptr noundef nonnull align 8 dereferenceable(32) %748)
          to label %4477 unwind label %4499

4477:                                             ; preds = %4476
  %4478 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %750) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %751) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %751)
          to label %4479 unwind label %4501

4479:                                             ; preds = %4477
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %752) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %752)
          to label %4480 unwind label %4503

4480:                                             ; preds = %4479
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %753) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %754) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %755) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %756)
          to label %4481 unwind label %4505

4481:                                             ; preds = %4480
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %757)
          to label %4482 unwind label %4507

4482:                                             ; preds = %4481
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %755, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %756, ptr noundef nonnull %757)
          to label %4483 unwind label %4509

4483:                                             ; preds = %4482
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %754, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %755, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %4484 unwind label %4511

4484:                                             ; preds = %4483
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %753, ptr noundef nonnull align 8 dereferenceable(16) %754)
          to label %4485 unwind label %4513

4485:                                             ; preds = %4484
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %758) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %760) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %761) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %762) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %762, ptr noundef nonnull align 8 dereferenceable(32) %749)
          to label %4486 unwind label %4515

4486:                                             ; preds = %4485
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %763) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %763) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %761, ptr nonnull %762, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %763)
          to label %4487 unwind label %4517

4487:                                             ; preds = %4486
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %760, ptr noundef nonnull align 8 dereferenceable(24) %761)
          to label %4488 unwind label %4519

4488:                                             ; preds = %4487
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %759, ptr noundef nonnull align 8 dereferenceable(16) %760)
          to label %4489 unwind label %4521

4489:                                             ; preds = %4488
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %764)
          to label %4490 unwind label %4523

4490:                                             ; preds = %4489
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %758, i32 noundef 8, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %759, ptr noundef nonnull %764)
          to label %4491 unwind label %4525

4491:                                             ; preds = %4490
  %4492 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %279, ptr noundef nonnull align 8 dereferenceable(32) %749)
          to label %4493 unwind label %4527

4493:                                             ; preds = %4491
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %750, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %751, ptr noundef nonnull align 8 dereferenceable(16) %752, ptr noundef nonnull align 4 dereferenceable(20) %753, ptr noundef nonnull align 8 dereferenceable(16) %758, ptr noundef nonnull align 8 dereferenceable(16) %4492)
          to label %4494 unwind label %4527

4494:                                             ; preds = %4493
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4478, ptr noundef nonnull align 8 dereferenceable(16) %750)
          to label %4495 unwind label %4529

4495:                                             ; preds = %4494
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %750) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %758) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %764) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %759) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %760) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %761) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %763) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %763) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %762) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %762) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %761) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %760) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %758) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %753) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %754) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %755) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %757) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %756) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %755) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %754) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %753) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %752) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %752) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %751) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %751) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %750) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %749) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %749) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %748) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %748) #11
  %4496 = getelementptr inbounds i8, ptr %.014333620, i64 48
  %.not1719 = icmp eq ptr %4496, %4417
  br i1 %.not1719, label %._crit_edge3623, label %.lr.ph3622

4497:                                             ; preds = %.lr.ph3622
  %4498 = landingpad { ptr, i32 }
          cleanup
  br label %4544

4499:                                             ; preds = %4476
  %4500 = landingpad { ptr, i32 }
          cleanup
  br label %4543

4501:                                             ; preds = %4477
  %4502 = landingpad { ptr, i32 }
          cleanup
  br label %4542

4503:                                             ; preds = %4479
  %4504 = landingpad { ptr, i32 }
          cleanup
  br label %4541

4505:                                             ; preds = %4480
  %4506 = landingpad { ptr, i32 }
          cleanup
  br label %4540

4507:                                             ; preds = %4481
  %4508 = landingpad { ptr, i32 }
          cleanup
  br label %4539

4509:                                             ; preds = %4482
  %4510 = landingpad { ptr, i32 }
          cleanup
  br label %4538

4511:                                             ; preds = %4483
  %4512 = landingpad { ptr, i32 }
          cleanup
  br label %4537

4513:                                             ; preds = %4484
  %4514 = landingpad { ptr, i32 }
          cleanup
  br label %4536

4515:                                             ; preds = %4485
  %4516 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2664

4517:                                             ; preds = %4486
  %4518 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2664.loopexit

4519:                                             ; preds = %4487
  %4520 = landingpad { ptr, i32 }
          cleanup
  br label %4535

4521:                                             ; preds = %4488
  %4522 = landingpad { ptr, i32 }
          cleanup
  br label %4534

4523:                                             ; preds = %4489
  %4524 = landingpad { ptr, i32 }
          cleanup
  br label %4533

4525:                                             ; preds = %4490
  %4526 = landingpad { ptr, i32 }
          cleanup
  br label %4532

4527:                                             ; preds = %4493, %4491
  %4528 = landingpad { ptr, i32 }
          cleanup
  br label %4531

4529:                                             ; preds = %4494
  %4530 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %750) #11
  br label %4531

4531:                                             ; preds = %4529, %4527
  %.pn1720 = phi { ptr, i32 } [ %4530, %4529 ], [ %4528, %4527 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %758) #11
  br label %4532

4532:                                             ; preds = %4531, %4525
  %.pn1720.pn = phi { ptr, i32 } [ %.pn1720, %4531 ], [ %4526, %4525 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %764) #11
  br label %4533

4533:                                             ; preds = %4532, %4523
  %.pn1720.pn.pn = phi { ptr, i32 } [ %.pn1720.pn, %4532 ], [ %4524, %4523 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %759) #11
  br label %4534

4534:                                             ; preds = %4533, %4521
  %.pn1720.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn, %4533 ], [ %4522, %4521 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %760) #11
  br label %4535

4535:                                             ; preds = %4534, %4519
  %.pn1720.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn, %4534 ], [ %4520, %4519 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %761) #11
  br label %.loopexit2664.loopexit

.loopexit2664.loopexit:                           ; preds = %4535, %4517
  %.pn1720.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn, %4535 ], [ %4518, %4517 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %763) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %763) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %762) #11
  br label %.loopexit2664

.loopexit2664:                                    ; preds = %.loopexit2664.loopexit, %4515
  %.pn1720.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %4516, %4515 ], [ %.pn1720.pn.pn.pn.pn.pn, %.loopexit2664.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %762) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %761) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %760) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %758) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %753) #11
  br label %4536

4536:                                             ; preds = %.loopexit2664, %4513
  %.pn1720.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn, %.loopexit2664 ], [ %4514, %4513 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %754) #11
  br label %4537

4537:                                             ; preds = %4536, %4511
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn, %4536 ], [ %4512, %4511 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %755) #11
  br label %4538

4538:                                             ; preds = %4537, %4509
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn, %4537 ], [ %4510, %4509 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %757) #11
  br label %4539

4539:                                             ; preds = %4538, %4507
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4538 ], [ %4508, %4507 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %756) #11
  br label %4540

4540:                                             ; preds = %4539, %4505
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4539 ], [ %4506, %4505 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %755) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %754) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %753) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %752) #11
  br label %4541

4541:                                             ; preds = %4540, %4503
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4540 ], [ %4504, %4503 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %752) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %751) #11
  br label %4542

4542:                                             ; preds = %4541, %4501
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4541 ], [ %4502, %4501 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %751) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %750) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %749) #11
  br label %4543

4543:                                             ; preds = %4542, %4499
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4542 ], [ %4500, %4499 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %749) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %748) #11
  br label %4544

4544:                                             ; preds = %4543, %4497
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4543 ], [ %4498, %4497 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %748) #11
  br label %4545

4545:                                             ; preds = %4544, %4475, %4446, %4389
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4544 ], [ %.pn1709.pn.pn.pn.pn.pn.pn.pn.pn, %4475 ], [ %.pn1699.pn.pn.pn.pn.pn.pn.pn.pn, %4446 ], [ %.pn1697, %4389 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %726) #11
  br label %4546

4546:                                             ; preds = %4545, %4383
  %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4545 ], [ %4384, %4383 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %726) #11
  br label %5933

.critedge2621:                                    ; preds = %4340
  %4547 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %4548 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4547, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %4549 unwind label %4564

4549:                                             ; preds = %.critedge2621
  %4550 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %4548)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %765) #11
  %4551 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %4550)
          to label %4552 unwind label %4566

4552:                                             ; preds = %4549
  %4553 = extractvalue { ptr, i64 } %4551, 0
  store ptr %4553, ptr %765, align 8
  %4554 = extractvalue { ptr, i64 } %4551, 1
  store i64 %4554, ptr %1917, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %766) #11
  %4555 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %4550)
  %4556 = extractvalue { ptr, i64 } %4555, 0
  store ptr %4556, ptr %766, align 8
  %4557 = extractvalue { ptr, i64 } %4555, 1
  store i64 %4557, ptr %1918, align 8
  br label %4558

4558:                                             ; preds = %4590, %4552
  %4559 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %765, ptr noundef nonnull align 8 dereferenceable(16) %766)
          to label %4560 unwind label %4568

4560:                                             ; preds = %4558
  br i1 %4559, label %4570, label %4561

4561:                                             ; preds = %4560
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %766) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %765) #11
  %4562 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %4563 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4562, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %4632 unwind label %4647

4564:                                             ; preds = %.critedge2621
  %4565 = landingpad { ptr, i32 }
          cleanup
  br label %5933

4566:                                             ; preds = %4549
  %4567 = landingpad { ptr, i32 }
          cleanup
  br label %4631

4568:                                             ; preds = %4590, %4558
  %4569 = landingpad { ptr, i32 }
          cleanup
  br label %4630

4570:                                             ; preds = %4560
  %4571 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %765)
          to label %4572 unwind label %4592

4572:                                             ; preds = %4570
  %4573 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4571) #11
  %4574 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4571) #11
  %4575 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %767) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %768) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %768)
          to label %4576 unwind label %4594

4576:                                             ; preds = %4572
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %769) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %769)
          to label %4577 unwind label %4596

4577:                                             ; preds = %4576
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %770) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %771) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %772) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %773) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %773) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %772, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %773)
          to label %4578 unwind label %4598

4578:                                             ; preds = %4577
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %771, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %772)
          to label %4579 unwind label %4600

4579:                                             ; preds = %4578
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %770, ptr noundef nonnull align 8 dereferenceable(16) %771)
          to label %4580 unwind label %4602

4580:                                             ; preds = %4579
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %774) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %776) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %777) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %778) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %778, ptr noundef nonnull align 8 dereferenceable(32) %4573)
          to label %4581 unwind label %4604

4581:                                             ; preds = %4580
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %779) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %779) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %777, ptr nonnull %778, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %779)
          to label %4582 unwind label %4606

4582:                                             ; preds = %4581
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %776, ptr noundef nonnull align 8 dereferenceable(24) %777)
          to label %4583 unwind label %4608

4583:                                             ; preds = %4582
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %775, ptr noundef nonnull align 8 dereferenceable(16) %776)
          to label %4584 unwind label %4610

4584:                                             ; preds = %4583
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %780)
          to label %4585 unwind label %4612

4585:                                             ; preds = %4584
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %774, i32 noundef 10, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %775, ptr noundef nonnull %780)
          to label %4586 unwind label %4614

4586:                                             ; preds = %4585
  %4587 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %300, ptr noundef nonnull align 8 dereferenceable(32) %4573)
          to label %4588 unwind label %4616

4588:                                             ; preds = %4586
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %767, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %768, ptr noundef nonnull align 8 dereferenceable(16) %769, ptr noundef nonnull align 4 dereferenceable(20) %770, ptr noundef nonnull align 8 dereferenceable(16) %774, ptr noundef nonnull align 8 dereferenceable(16) %4587)
          to label %4589 unwind label %4616

4589:                                             ; preds = %4588
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4575, ptr noundef nonnull align 8 dereferenceable(16) %767)
          to label %4590 unwind label %4618

4590:                                             ; preds = %4589
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %767) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %774) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %780) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %775) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %776) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %777) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %779) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %779) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %778) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %778) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %777) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %776) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %774) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %770) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %771) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %772) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %773) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %773) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %772) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %771) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %770) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %769) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %769) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %768) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %768) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %767) #11
  %4591 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %765)
          to label %4558 unwind label %4568

4592:                                             ; preds = %4570
  %4593 = landingpad { ptr, i32 }
          cleanup
  br label %4630

4594:                                             ; preds = %4572
  %4595 = landingpad { ptr, i32 }
          cleanup
  br label %4629

4596:                                             ; preds = %4576
  %4597 = landingpad { ptr, i32 }
          cleanup
  br label %4628

4598:                                             ; preds = %4577
  %4599 = landingpad { ptr, i32 }
          cleanup
  br label %4627

4600:                                             ; preds = %4578
  %4601 = landingpad { ptr, i32 }
          cleanup
  br label %4626

4602:                                             ; preds = %4579
  %4603 = landingpad { ptr, i32 }
          cleanup
  br label %4625

4604:                                             ; preds = %4580
  %4605 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2656

4606:                                             ; preds = %4581
  %4607 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2656.loopexit

4608:                                             ; preds = %4582
  %4609 = landingpad { ptr, i32 }
          cleanup
  br label %4624

4610:                                             ; preds = %4583
  %4611 = landingpad { ptr, i32 }
          cleanup
  br label %4623

4612:                                             ; preds = %4584
  %4613 = landingpad { ptr, i32 }
          cleanup
  br label %4622

4614:                                             ; preds = %4585
  %4615 = landingpad { ptr, i32 }
          cleanup
  br label %4621

4616:                                             ; preds = %4588, %4586
  %4617 = landingpad { ptr, i32 }
          cleanup
  br label %4620

4618:                                             ; preds = %4589
  %4619 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %767) #11
  br label %4620

4620:                                             ; preds = %4618, %4616
  %.pn2029 = phi { ptr, i32 } [ %4619, %4618 ], [ %4617, %4616 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %774) #11
  br label %4621

4621:                                             ; preds = %4620, %4614
  %.pn2029.pn = phi { ptr, i32 } [ %.pn2029, %4620 ], [ %4615, %4614 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %780) #11
  br label %4622

4622:                                             ; preds = %4621, %4612
  %.pn2029.pn.pn = phi { ptr, i32 } [ %.pn2029.pn, %4621 ], [ %4613, %4612 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %775) #11
  br label %4623

4623:                                             ; preds = %4622, %4610
  %.pn2029.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn, %4622 ], [ %4611, %4610 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %776) #11
  br label %4624

4624:                                             ; preds = %4623, %4608
  %.pn2029.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn.pn, %4623 ], [ %4609, %4608 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %777) #11
  br label %.loopexit2656.loopexit

.loopexit2656.loopexit:                           ; preds = %4624, %4606
  %.pn2029.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn.pn.pn, %4624 ], [ %4607, %4606 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %779) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %779) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %778) #11
  br label %.loopexit2656

.loopexit2656:                                    ; preds = %.loopexit2656.loopexit, %4604
  %.pn2029.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %4605, %4604 ], [ %.pn2029.pn.pn.pn.pn.pn, %.loopexit2656.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %778) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %777) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %776) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %774) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %770) #11
  br label %4625

4625:                                             ; preds = %.loopexit2656, %4602
  %.pn2029.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn.pn.pn.pn.pn, %.loopexit2656 ], [ %4603, %4602 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %771) #11
  br label %4626

4626:                                             ; preds = %4625, %4600
  %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn.pn.pn.pn.pn.pn, %4625 ], [ %4601, %4600 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %772) #11
  br label %4627

4627:                                             ; preds = %4626, %4598
  %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn, %4626 ], [ %4599, %4598 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %773) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %773) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %772) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %771) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %770) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %769) #11
  br label %4628

4628:                                             ; preds = %4627, %4596
  %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4627 ], [ %4597, %4596 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %769) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %768) #11
  br label %4629

4629:                                             ; preds = %4628, %4594
  %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4628 ], [ %4595, %4594 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %768) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %767) #11
  br label %4630

4630:                                             ; preds = %4592, %4629, %4568
  %.pn2043 = phi { ptr, i32 } [ %4569, %4568 ], [ %.pn2029.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4629 ], [ %4593, %4592 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %766) #11
  br label %4631

4631:                                             ; preds = %4630, %4566
  %.pn2043.pn = phi { ptr, i32 } [ %.pn2043, %4630 ], [ %4567, %4566 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %765) #11
  br label %5933

4632:                                             ; preds = %4561
  %4633 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %4563)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %781) #11
  %4634 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %4633)
          to label %4635 unwind label %4649

4635:                                             ; preds = %4632
  %4636 = extractvalue { ptr, i64 } %4634, 0
  store ptr %4636, ptr %781, align 8
  %4637 = extractvalue { ptr, i64 } %4634, 1
  store i64 %4637, ptr %1919, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %782) #11
  %4638 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %4633)
  %4639 = extractvalue { ptr, i64 } %4638, 0
  store ptr %4639, ptr %782, align 8
  %4640 = extractvalue { ptr, i64 } %4638, 1
  store i64 %4640, ptr %1920, align 8
  br label %4641

4641:                                             ; preds = %4673, %4635
  %4642 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %781, ptr noundef nonnull align 8 dereferenceable(16) %782)
          to label %4643 unwind label %4651

4643:                                             ; preds = %4641
  br i1 %4642, label %4653, label %4644

4644:                                             ; preds = %4643
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %782) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %781) #11
  %4645 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %4646 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4645, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %4714 unwind label %4728

4647:                                             ; preds = %4561
  %4648 = landingpad { ptr, i32 }
          cleanup
  br label %5933

4649:                                             ; preds = %4632
  %4650 = landingpad { ptr, i32 }
          cleanup
  br label %4713

4651:                                             ; preds = %4673, %4641
  %4652 = landingpad { ptr, i32 }
          cleanup
  br label %4712

4653:                                             ; preds = %4643
  %4654 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %781)
          to label %4655 unwind label %4675

4655:                                             ; preds = %4653
  %4656 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4654) #11
  %4657 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4654) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %783) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %784, ptr noundef nonnull align 8 dereferenceable(16) %4657)
          to label %4658 unwind label %4677

4658:                                             ; preds = %4655
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %783, ptr noundef nonnull %784, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %4659 unwind label %4679

4659:                                             ; preds = %4658
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %784) #11
  %4660 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %785) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %786) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %786)
          to label %4661 unwind label %4681

4661:                                             ; preds = %4659
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %787) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %787)
          to label %4662 unwind label %4683

4662:                                             ; preds = %4661
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %788) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %788, ptr noundef nonnull align 8 dereferenceable(16) %783)
          to label %4663 unwind label %4685

4663:                                             ; preds = %4662
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %789) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %791) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %792) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %793) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %793, ptr noundef nonnull align 8 dereferenceable(32) %4656)
          to label %4664 unwind label %4687

4664:                                             ; preds = %4663
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %794) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %794) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %792, ptr nonnull %793, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %794)
          to label %4665 unwind label %4689

4665:                                             ; preds = %4664
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %791, ptr noundef nonnull align 8 dereferenceable(24) %792)
          to label %4666 unwind label %4691

4666:                                             ; preds = %4665
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %790, ptr noundef nonnull align 8 dereferenceable(16) %791)
          to label %4667 unwind label %4693

4667:                                             ; preds = %4666
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %795)
          to label %4668 unwind label %4695

4668:                                             ; preds = %4667
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %789, i32 noundef 12, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %790, ptr noundef nonnull %795)
          to label %4669 unwind label %4697

4669:                                             ; preds = %4668
  %4670 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %313, ptr noundef nonnull align 8 dereferenceable(32) %4656)
          to label %4671 unwind label %4699

4671:                                             ; preds = %4669
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %785, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %786, ptr noundef nonnull align 8 dereferenceable(16) %787, ptr noundef nonnull align 4 dereferenceable(20) %788, ptr noundef nonnull align 8 dereferenceable(16) %789, ptr noundef nonnull align 8 dereferenceable(16) %4670)
          to label %4672 unwind label %4699

4672:                                             ; preds = %4671
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4660, ptr noundef nonnull align 8 dereferenceable(16) %785)
          to label %4673 unwind label %4701

4673:                                             ; preds = %4672
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %785) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %789) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %795) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %790) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %791) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %792) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %794) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %794) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %793) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %793) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %792) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %791) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %789) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %788) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %788) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %787) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %787) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %786) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %786) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %785) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %783) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %783) #11
  %4674 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %781)
          to label %4641 unwind label %4651

4675:                                             ; preds = %4653
  %4676 = landingpad { ptr, i32 }
          cleanup
  br label %4712

4677:                                             ; preds = %4655
  %4678 = landingpad { ptr, i32 }
          cleanup
  br label %4711

4679:                                             ; preds = %4658
  %4680 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %784) #11
  br label %4711

4681:                                             ; preds = %4659
  %4682 = landingpad { ptr, i32 }
          cleanup
  br label %4710

4683:                                             ; preds = %4661
  %4684 = landingpad { ptr, i32 }
          cleanup
  br label %4709

4685:                                             ; preds = %4662
  %4686 = landingpad { ptr, i32 }
          cleanup
  br label %4708

4687:                                             ; preds = %4663
  %4688 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2657

4689:                                             ; preds = %4664
  %4690 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2657.loopexit

4691:                                             ; preds = %4665
  %4692 = landingpad { ptr, i32 }
          cleanup
  br label %4707

4693:                                             ; preds = %4666
  %4694 = landingpad { ptr, i32 }
          cleanup
  br label %4706

4695:                                             ; preds = %4667
  %4696 = landingpad { ptr, i32 }
          cleanup
  br label %4705

4697:                                             ; preds = %4668
  %4698 = landingpad { ptr, i32 }
          cleanup
  br label %4704

4699:                                             ; preds = %4671, %4669
  %4700 = landingpad { ptr, i32 }
          cleanup
  br label %4703

4701:                                             ; preds = %4672
  %4702 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %785) #11
  br label %4703

4703:                                             ; preds = %4701, %4699
  %.pn2012 = phi { ptr, i32 } [ %4702, %4701 ], [ %4700, %4699 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %789) #11
  br label %4704

4704:                                             ; preds = %4703, %4697
  %.pn2012.pn = phi { ptr, i32 } [ %.pn2012, %4703 ], [ %4698, %4697 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %795) #11
  br label %4705

4705:                                             ; preds = %4704, %4695
  %.pn2012.pn.pn = phi { ptr, i32 } [ %.pn2012.pn, %4704 ], [ %4696, %4695 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %790) #11
  br label %4706

4706:                                             ; preds = %4705, %4693
  %.pn2012.pn.pn.pn = phi { ptr, i32 } [ %.pn2012.pn.pn, %4705 ], [ %4694, %4693 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %791) #11
  br label %4707

4707:                                             ; preds = %4706, %4691
  %.pn2012.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2012.pn.pn.pn, %4706 ], [ %4692, %4691 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %792) #11
  br label %.loopexit2657.loopexit

.loopexit2657.loopexit:                           ; preds = %4707, %4689
  %.pn2012.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2012.pn.pn.pn.pn, %4707 ], [ %4690, %4689 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %794) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %794) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %793) #11
  br label %.loopexit2657

.loopexit2657:                                    ; preds = %.loopexit2657.loopexit, %4687
  %.pn2012.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %4688, %4687 ], [ %.pn2012.pn.pn.pn.pn.pn, %.loopexit2657.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %793) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %792) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %791) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %789) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %788) #11
  br label %4708

4708:                                             ; preds = %.loopexit2657, %4685
  %.pn2012.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2012.pn.pn.pn.pn.pn.pn, %.loopexit2657 ], [ %4686, %4685 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %788) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %787) #11
  br label %4709

4709:                                             ; preds = %4708, %4683
  %.pn2012.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2012.pn.pn.pn.pn.pn.pn.pn, %4708 ], [ %4684, %4683 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %787) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %786) #11
  br label %4710

4710:                                             ; preds = %4709, %4681
  %.pn2012.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2012.pn.pn.pn.pn.pn.pn.pn.pn, %4709 ], [ %4682, %4681 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %786) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %785) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %783) #11
  br label %4711

4711:                                             ; preds = %4710, %4679, %4677
  %.pn2012.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2012.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4710 ], [ %4680, %4679 ], [ %4678, %4677 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %783) #11
  br label %4712

4712:                                             ; preds = %4675, %4711, %4651
  %.pn2025 = phi { ptr, i32 } [ %4652, %4651 ], [ %.pn2012.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4711 ], [ %4676, %4675 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %782) #11
  br label %4713

4713:                                             ; preds = %4712, %4649
  %.pn2025.pn = phi { ptr, i32 } [ %.pn2025, %4712 ], [ %4650, %4649 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %781) #11
  br label %5933

4714:                                             ; preds = %4644
  %4715 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %4646)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %796) #11
  %4716 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %4715)
          to label %4717 unwind label %4730

4717:                                             ; preds = %4714
  %4718 = extractvalue { ptr, i64 } %4716, 0
  store ptr %4718, ptr %796, align 8
  %4719 = extractvalue { ptr, i64 } %4716, 1
  store i64 %4719, ptr %1921, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %797) #11
  %4720 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %4715)
  %4721 = extractvalue { ptr, i64 } %4720, 0
  store ptr %4721, ptr %797, align 8
  %4722 = extractvalue { ptr, i64 } %4720, 1
  store i64 %4722, ptr %1922, align 8
  br label %4723

4723:                                             ; preds = %4755, %4717
  %4724 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %796, ptr noundef nonnull align 8 dereferenceable(16) %797)
          to label %4725 unwind label %4732

4725:                                             ; preds = %4723
  br i1 %4724, label %4734, label %4726

4726:                                             ; preds = %4725
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %797) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %796) #11
  %4727 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %812) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %813) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %813)
          to label %4799 unwind label %4819

4728:                                             ; preds = %4644
  %4729 = landingpad { ptr, i32 }
          cleanup
  br label %5933

4730:                                             ; preds = %4714
  %4731 = landingpad { ptr, i32 }
          cleanup
  br label %4798

4732:                                             ; preds = %4755, %4723
  %4733 = landingpad { ptr, i32 }
          cleanup
  br label %4797

4734:                                             ; preds = %4725
  %4735 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %796)
          to label %4736 unwind label %4757

4736:                                             ; preds = %4734
  %4737 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4735) #11
  %4738 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %4735) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %798) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %799, ptr noundef nonnull align 8 dereferenceable(16) %4738)
          to label %4739 unwind label %4759

4739:                                             ; preds = %4736
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %798, ptr noundef nonnull %799, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %4740 unwind label %4761

4740:                                             ; preds = %4739
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %799) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %800) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA13_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %800, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(13) @.str.167, ptr noundef nonnull align 8 dereferenceable(16) %798, ptr noundef nonnull align 1 dereferenceable(2) @.str.45)
          to label %4741 unwind label %4763

4741:                                             ; preds = %4740
  %4742 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %801) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %802) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %802)
          to label %4743 unwind label %4765

4743:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %803) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %803)
          to label %4744 unwind label %4767

4744:                                             ; preds = %4743
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %804) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %804, ptr noundef nonnull align 8 dereferenceable(16) %800)
          to label %4745 unwind label %4769

4745:                                             ; preds = %4744
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %805) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %807) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %808) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %809) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %809, ptr noundef nonnull align 8 dereferenceable(32) %4737)
          to label %4746 unwind label %4771

4746:                                             ; preds = %4745
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %810) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %810) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %808, ptr nonnull %809, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %810)
          to label %4747 unwind label %4773

4747:                                             ; preds = %4746
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %807, ptr noundef nonnull align 8 dereferenceable(24) %808)
          to label %4748 unwind label %4775

4748:                                             ; preds = %4747
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %806, ptr noundef nonnull align 8 dereferenceable(16) %807)
          to label %4749 unwind label %4777

4749:                                             ; preds = %4748
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %811)
          to label %4750 unwind label %4779

4750:                                             ; preds = %4749
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %805, i32 noundef 14, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %806, ptr noundef nonnull %811)
          to label %4751 unwind label %4781

4751:                                             ; preds = %4750
  %4752 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %313, ptr noundef nonnull align 8 dereferenceable(32) %4737)
          to label %4753 unwind label %4783

4753:                                             ; preds = %4751
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %801, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %802, ptr noundef nonnull align 8 dereferenceable(16) %803, ptr noundef nonnull align 4 dereferenceable(20) %804, ptr noundef nonnull align 8 dereferenceable(16) %805, ptr noundef nonnull align 8 dereferenceable(16) %4752)
          to label %4754 unwind label %4783

4754:                                             ; preds = %4753
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4742, ptr noundef nonnull align 8 dereferenceable(16) %801)
          to label %4755 unwind label %4785

4755:                                             ; preds = %4754
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %801) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %805) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %811) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %806) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %807) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %808) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %810) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %810) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %809) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %809) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %808) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %807) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %805) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %804) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %804) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %803) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %803) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %802) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %802) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %801) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %800) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %800) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %798) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %798) #11
  %4756 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %796)
          to label %4723 unwind label %4732

4757:                                             ; preds = %4734
  %4758 = landingpad { ptr, i32 }
          cleanup
  br label %4797

4759:                                             ; preds = %4736
  %4760 = landingpad { ptr, i32 }
          cleanup
  br label %4796

4761:                                             ; preds = %4739
  %4762 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %799) #11
  br label %4796

4763:                                             ; preds = %4740
  %4764 = landingpad { ptr, i32 }
          cleanup
  br label %4795

4765:                                             ; preds = %4741
  %4766 = landingpad { ptr, i32 }
          cleanup
  br label %4794

4767:                                             ; preds = %4743
  %4768 = landingpad { ptr, i32 }
          cleanup
  br label %4793

4769:                                             ; preds = %4744
  %4770 = landingpad { ptr, i32 }
          cleanup
  br label %4792

4771:                                             ; preds = %4745
  %4772 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2658

4773:                                             ; preds = %4746
  %4774 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2658.loopexit

4775:                                             ; preds = %4747
  %4776 = landingpad { ptr, i32 }
          cleanup
  br label %4791

4777:                                             ; preds = %4748
  %4778 = landingpad { ptr, i32 }
          cleanup
  br label %4790

4779:                                             ; preds = %4749
  %4780 = landingpad { ptr, i32 }
          cleanup
  br label %4789

4781:                                             ; preds = %4750
  %4782 = landingpad { ptr, i32 }
          cleanup
  br label %4788

4783:                                             ; preds = %4753, %4751
  %4784 = landingpad { ptr, i32 }
          cleanup
  br label %4787

4785:                                             ; preds = %4754
  %4786 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %801) #11
  br label %4787

4787:                                             ; preds = %4785, %4783
  %.pn1994 = phi { ptr, i32 } [ %4786, %4785 ], [ %4784, %4783 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %805) #11
  br label %4788

4788:                                             ; preds = %4787, %4781
  %.pn1994.pn = phi { ptr, i32 } [ %.pn1994, %4787 ], [ %4782, %4781 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %811) #11
  br label %4789

4789:                                             ; preds = %4788, %4779
  %.pn1994.pn.pn = phi { ptr, i32 } [ %.pn1994.pn, %4788 ], [ %4780, %4779 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %806) #11
  br label %4790

4790:                                             ; preds = %4789, %4777
  %.pn1994.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn, %4789 ], [ %4778, %4777 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %807) #11
  br label %4791

4791:                                             ; preds = %4790, %4775
  %.pn1994.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn.pn, %4790 ], [ %4776, %4775 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %808) #11
  br label %.loopexit2658.loopexit

.loopexit2658.loopexit:                           ; preds = %4791, %4773
  %.pn1994.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn.pn.pn, %4791 ], [ %4774, %4773 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %810) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %810) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %809) #11
  br label %.loopexit2658

.loopexit2658:                                    ; preds = %.loopexit2658.loopexit, %4771
  %.pn1994.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %4772, %4771 ], [ %.pn1994.pn.pn.pn.pn.pn, %.loopexit2658.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %809) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %808) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %807) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %805) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %804) #11
  br label %4792

4792:                                             ; preds = %.loopexit2658, %4769
  %.pn1994.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn.pn.pn.pn.pn, %.loopexit2658 ], [ %4770, %4769 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %804) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %803) #11
  br label %4793

4793:                                             ; preds = %4792, %4767
  %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn.pn.pn.pn.pn.pn, %4792 ], [ %4768, %4767 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %803) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %802) #11
  br label %4794

4794:                                             ; preds = %4793, %4765
  %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn, %4793 ], [ %4766, %4765 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %802) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %801) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %800) #11
  br label %4795

4795:                                             ; preds = %4794, %4763
  %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4794 ], [ %4764, %4763 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %800) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %798) #11
  br label %4796

4796:                                             ; preds = %4795, %4761, %4759
  %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4795 ], [ %4762, %4761 ], [ %4760, %4759 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %798) #11
  br label %4797

4797:                                             ; preds = %4757, %4796, %4732
  %.pn2008 = phi { ptr, i32 } [ %4733, %4732 ], [ %.pn1994.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4796 ], [ %4758, %4757 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %797) #11
  br label %4798

4798:                                             ; preds = %4797, %4730
  %.pn2008.pn = phi { ptr, i32 } [ %.pn2008, %4797 ], [ %4731, %4730 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %796) #11
  br label %5933

4799:                                             ; preds = %4726
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %814) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %814)
          to label %4800 unwind label %4821

4800:                                             ; preds = %4799
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %815) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %816) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA5_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %816, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.18)
          to label %4801 unwind label %4823

4801:                                             ; preds = %4800
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %815, ptr noundef nonnull align 8 dereferenceable(16) %816)
          to label %4802 unwind label %4825

4802:                                             ; preds = %4801
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %817) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %818)
          to label %4803 unwind label %4827

4803:                                             ; preds = %4802
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %819)
          to label %4804 unwind label %4829

4804:                                             ; preds = %4803
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %817, i32 noundef 18, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %818, ptr noundef nonnull %819)
          to label %4805 unwind label %4831

4805:                                             ; preds = %4804
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %812, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %813, ptr noundef nonnull align 8 dereferenceable(16) %814, ptr noundef nonnull align 4 dereferenceable(20) %815, ptr noundef nonnull align 8 dereferenceable(16) %817, ptr noundef nonnull align 8 dereferenceable(16) %348)
          to label %4806 unwind label %4833

4806:                                             ; preds = %4805
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4727, ptr noundef nonnull align 8 dereferenceable(16) %812)
          to label %4807 unwind label %4835

4807:                                             ; preds = %4806
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %812) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %817) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %819) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %818) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %817) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %815) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %816) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %816) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %815) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %814) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %814) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %813) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %813) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %812) #11
  %4808 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %820) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %821) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %822) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %822, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %367)
          to label %4809 unwind label %4845

4809:                                             ; preds = %4807
  invoke void @_ZN6langcc15NodeV_singletonERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %821, ptr noundef nonnull align 8 dereferenceable(16) %822)
          to label %4810 unwind label %4847

4810:                                             ; preds = %4809
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %823) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %823)
          to label %4811 unwind label %4849

4811:                                             ; preds = %4810
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %824) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %825) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %825, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %367)
          to label %4812 unwind label %4851

4812:                                             ; preds = %4811
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %824, ptr noundef nonnull align 8 dereferenceable(16) %825)
          to label %4813 unwind label %4853

4813:                                             ; preds = %4812
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %826) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %827)
          to label %4814 unwind label %4855

4814:                                             ; preds = %4813
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %828)
          to label %4815 unwind label %4857

4815:                                             ; preds = %4814
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %826, i32 noundef 16, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %827, ptr noundef nonnull %828)
          to label %4816 unwind label %4859

4816:                                             ; preds = %4815
  invoke void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %820, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %821, ptr noundef nonnull align 8 dereferenceable(16) %823, ptr noundef nonnull align 4 dereferenceable(20) %824, ptr noundef nonnull align 8 dereferenceable(16) %826, ptr noundef nonnull align 8 dereferenceable(16) %374)
          to label %4817 unwind label %4861

4817:                                             ; preds = %4816
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4808, ptr noundef nonnull align 8 dereferenceable(16) %820)
          to label %4818 unwind label %4863

4818:                                             ; preds = %4817
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %820) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %826) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %828) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %827) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %826) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %824) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %825) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %825) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %824) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %823) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %823) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %821) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %822) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %822) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %821) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %820) #11
  br label %4874

4819:                                             ; preds = %4726
  %4820 = landingpad { ptr, i32 }
          cleanup
  br label %4844

4821:                                             ; preds = %4799
  %4822 = landingpad { ptr, i32 }
          cleanup
  br label %4843

4823:                                             ; preds = %4800
  %4824 = landingpad { ptr, i32 }
          cleanup
  br label %4842

4825:                                             ; preds = %4801
  %4826 = landingpad { ptr, i32 }
          cleanup
  br label %4841

4827:                                             ; preds = %4802
  %4828 = landingpad { ptr, i32 }
          cleanup
  br label %4840

4829:                                             ; preds = %4803
  %4830 = landingpad { ptr, i32 }
          cleanup
  br label %4839

4831:                                             ; preds = %4804
  %4832 = landingpad { ptr, i32 }
          cleanup
  br label %4838

4833:                                             ; preds = %4805
  %4834 = landingpad { ptr, i32 }
          cleanup
  br label %4837

4835:                                             ; preds = %4806
  %4836 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %812) #11
  br label %4837

4837:                                             ; preds = %4835, %4833
  %.pn1739 = phi { ptr, i32 } [ %4836, %4835 ], [ %4834, %4833 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %817) #11
  br label %4838

4838:                                             ; preds = %4837, %4831
  %.pn1739.pn = phi { ptr, i32 } [ %.pn1739, %4837 ], [ %4832, %4831 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %819) #11
  br label %4839

4839:                                             ; preds = %4838, %4829
  %.pn1739.pn.pn = phi { ptr, i32 } [ %.pn1739.pn, %4838 ], [ %4830, %4829 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %818) #11
  br label %4840

4840:                                             ; preds = %4839, %4827
  %.pn1739.pn.pn.pn = phi { ptr, i32 } [ %.pn1739.pn.pn, %4839 ], [ %4828, %4827 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %817) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %815) #11
  br label %4841

4841:                                             ; preds = %4840, %4825
  %.pn1739.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1739.pn.pn.pn, %4840 ], [ %4826, %4825 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %816) #11
  br label %4842

4842:                                             ; preds = %4841, %4823
  %.pn1739.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1739.pn.pn.pn.pn, %4841 ], [ %4824, %4823 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %816) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %815) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %814) #11
  br label %4843

4843:                                             ; preds = %4842, %4821
  %.pn1739.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1739.pn.pn.pn.pn.pn, %4842 ], [ %4822, %4821 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %814) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %813) #11
  br label %4844

4844:                                             ; preds = %4843, %4819
  %.pn1739.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1739.pn.pn.pn.pn.pn.pn, %4843 ], [ %4820, %4819 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %813) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %812) #11
  br label %5933

4845:                                             ; preds = %4807
  %4846 = landingpad { ptr, i32 }
          cleanup
  br label %4873

4847:                                             ; preds = %4809
  %4848 = landingpad { ptr, i32 }
          cleanup
  br label %4872

4849:                                             ; preds = %4810
  %4850 = landingpad { ptr, i32 }
          cleanup
  br label %4871

4851:                                             ; preds = %4811
  %4852 = landingpad { ptr, i32 }
          cleanup
  br label %4870

4853:                                             ; preds = %4812
  %4854 = landingpad { ptr, i32 }
          cleanup
  br label %4869

4855:                                             ; preds = %4813
  %4856 = landingpad { ptr, i32 }
          cleanup
  br label %4868

4857:                                             ; preds = %4814
  %4858 = landingpad { ptr, i32 }
          cleanup
  br label %4867

4859:                                             ; preds = %4815
  %4860 = landingpad { ptr, i32 }
          cleanup
  br label %4866

4861:                                             ; preds = %4816
  %4862 = landingpad { ptr, i32 }
          cleanup
  br label %4865

4863:                                             ; preds = %4817
  %4864 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %820) #11
  br label %4865

4865:                                             ; preds = %4863, %4861
  %.pn1748 = phi { ptr, i32 } [ %4864, %4863 ], [ %4862, %4861 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %826) #11
  br label %4866

4866:                                             ; preds = %4865, %4859
  %.pn1748.pn = phi { ptr, i32 } [ %.pn1748, %4865 ], [ %4860, %4859 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %828) #11
  br label %4867

4867:                                             ; preds = %4866, %4857
  %.pn1748.pn.pn = phi { ptr, i32 } [ %.pn1748.pn, %4866 ], [ %4858, %4857 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %827) #11
  br label %4868

4868:                                             ; preds = %4867, %4855
  %.pn1748.pn.pn.pn = phi { ptr, i32 } [ %.pn1748.pn.pn, %4867 ], [ %4856, %4855 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %826) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %824) #11
  br label %4869

4869:                                             ; preds = %4868, %4853
  %.pn1748.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1748.pn.pn.pn, %4868 ], [ %4854, %4853 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %825) #11
  br label %4870

4870:                                             ; preds = %4869, %4851
  %.pn1748.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1748.pn.pn.pn.pn, %4869 ], [ %4852, %4851 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %825) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %824) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %823) #11
  br label %4871

4871:                                             ; preds = %4870, %4849
  %.pn1748.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1748.pn.pn.pn.pn.pn, %4870 ], [ %4850, %4849 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %823) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %821) #11
  br label %4872

4872:                                             ; preds = %4871, %4847
  %.pn1748.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1748.pn.pn.pn.pn.pn.pn, %4871 ], [ %4848, %4847 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %822) #11
  br label %4873

4873:                                             ; preds = %4872, %4845
  %.pn1748.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1748.pn.pn.pn.pn.pn.pn.pn, %4872 ], [ %4846, %4845 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %822) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %821) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %820) #11
  br label %5933

4874:                                             ; preds = %._crit_edge3623, %4818
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %829, ptr noundef nonnull align 8 dereferenceable(16) %1914)
          to label %4875 unwind label %3918

4875:                                             ; preds = %4874
  %4876 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef nonnull %829)
          to label %4877 unwind label %4889

4877:                                             ; preds = %4875
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %829) #11
  br i1 %4876, label %4927, label %4878

4878:                                             ; preds = %4877
  %4879 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %830) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %831) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %832)
          to label %4880 unwind label %4891

4880:                                             ; preds = %4878
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %833)
          to label %4881 unwind label %4893

4881:                                             ; preds = %4880
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %831, i32 noundef 20, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %832, ptr noundef nonnull %833)
          to label %4882 unwind label %4895

4882:                                             ; preds = %4881
  invoke void @_ZN6langcc13CppGenContext2qqIJA6_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA18_cS9_A9_cEEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %830, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(6) @.str.145, ptr noundef nonnull align 1 dereferenceable(5) @.str.18, ptr noundef nonnull align 8 dereferenceable(16) %831, ptr noundef nonnull align 1 dereferenceable(18) @.str.168, ptr noundef nonnull align 8 dereferenceable(16) %538, ptr noundef nonnull align 1 dereferenceable(9) @.str.169)
          to label %4883 unwind label %4897

4883:                                             ; preds = %4882
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4879, ptr noundef nonnull align 8 dereferenceable(16) %830)
          to label %4884 unwind label %4899

4884:                                             ; preds = %4883
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %830) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %831) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %833) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %832) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %831) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %830) #11
  %4885 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  br i1 %1961, label %4910, label %4886

4886:                                             ; preds = %4884
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %834) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA6_cA43_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA9_cEEES9_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %834, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(6) @.str.145, ptr noundef nonnull align 1 dereferenceable(43) @.str.170, ptr noundef nonnull align 8 dereferenceable(16) %511, ptr noundef nonnull align 1 dereferenceable(9) @.str.169)
          to label %4887 unwind label %4905

4887:                                             ; preds = %4886
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4885, ptr noundef nonnull align 8 dereferenceable(16) %834)
          to label %4888 unwind label %4907

4888:                                             ; preds = %4887
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %834) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %834) #11
  br label %4927

4889:                                             ; preds = %4875
  %4890 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %829) #11
  br label %5933

4891:                                             ; preds = %4878
  %4892 = landingpad { ptr, i32 }
          cleanup
  br label %4904

4893:                                             ; preds = %4880
  %4894 = landingpad { ptr, i32 }
          cleanup
  br label %4903

4895:                                             ; preds = %4881
  %4896 = landingpad { ptr, i32 }
          cleanup
  br label %4902

4897:                                             ; preds = %4882
  %4898 = landingpad { ptr, i32 }
          cleanup
  br label %4901

4899:                                             ; preds = %4883
  %4900 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %830) #11
  br label %4901

4901:                                             ; preds = %4899, %4897
  %.pn1758 = phi { ptr, i32 } [ %4900, %4899 ], [ %4898, %4897 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %831) #11
  br label %4902

4902:                                             ; preds = %4901, %4895
  %.pn1758.pn = phi { ptr, i32 } [ %.pn1758, %4901 ], [ %4896, %4895 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %833) #11
  br label %4903

4903:                                             ; preds = %4902, %4893
  %.pn1758.pn.pn = phi { ptr, i32 } [ %.pn1758.pn, %4902 ], [ %4894, %4893 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %832) #11
  br label %4904

4904:                                             ; preds = %4903, %4891
  %.pn1758.pn.pn.pn = phi { ptr, i32 } [ %.pn1758.pn.pn, %4903 ], [ %4892, %4891 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %831) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %830) #11
  br label %5933

4905:                                             ; preds = %4886
  %4906 = landingpad { ptr, i32 }
          cleanup
  br label %4909

4907:                                             ; preds = %4887
  %4908 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %834) #11
  br label %4909

4909:                                             ; preds = %4907, %4905
  %.pn1763 = phi { ptr, i32 } [ %4908, %4907 ], [ %4906, %4905 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %834) #11
  br label %5933

4910:                                             ; preds = %4884
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %835) #11
  %4911 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %837) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %838) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %838) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %837, ptr noundef nonnull @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %838)
          to label %4912 unwind label %4916

4912:                                             ; preds = %4910
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %836, ptr noundef nonnull align 8 dereferenceable(32) %837)
          to label %4913 unwind label %4918

4913:                                             ; preds = %4912
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA43_cNS_6rc_ptrIS4_EEA13_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %835, ptr noundef nonnull align 8 dereferenceable(32) %4911, ptr noundef nonnull %836, ptr noundef nonnull align 1 dereferenceable(43) @.str.170, ptr noundef nonnull align 8 dereferenceable(16) %511, ptr noundef nonnull align 1 dereferenceable(13) @.str.171)
          to label %4914 unwind label %4920

4914:                                             ; preds = %4913
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4885, ptr noundef nonnull align 8 dereferenceable(16) %835)
          to label %4915 unwind label %4922

4915:                                             ; preds = %4914
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %835) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %836) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %837) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %838) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %838) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %837) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %835) #11
  br label %4927

4916:                                             ; preds = %4910
  %4917 = landingpad { ptr, i32 }
          cleanup
  br label %4926

4918:                                             ; preds = %4912
  %4919 = landingpad { ptr, i32 }
          cleanup
  br label %4925

4920:                                             ; preds = %4913
  %4921 = landingpad { ptr, i32 }
          cleanup
  br label %4924

4922:                                             ; preds = %4914
  %4923 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %835) #11
  br label %4924

4924:                                             ; preds = %4922, %4920
  %.pn1765 = phi { ptr, i32 } [ %4923, %4922 ], [ %4921, %4920 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %836) #11
  br label %4925

4925:                                             ; preds = %4924, %4918
  %.pn1765.pn = phi { ptr, i32 } [ %.pn1765, %4924 ], [ %4919, %4918 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %837) #11
  br label %4926

4926:                                             ; preds = %4925, %4916
  %.pn1765.pn.pn = phi { ptr, i32 } [ %.pn1765.pn, %4925 ], [ %4917, %4916 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %838) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %838) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %837) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %835) #11
  br label %5933

4927:                                             ; preds = %4888, %4915, %4877
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %839) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %839)
          to label %4928 unwind label %4943

4928:                                             ; preds = %4927
  %4929 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1888)
  %4930 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4929, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %4931 unwind label %4945

4931:                                             ; preds = %4928
  br i1 %4930, label %4932, label %4957

4932:                                             ; preds = %4931
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %840) #11
  %4933 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1888)
  %4934 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4933, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %4935 unwind label %4947

4935:                                             ; preds = %4932
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(48) %840, ptr noundef nonnull align 8 dereferenceable(48) %4934)
          to label %4936 unwind label %4947

4936:                                             ; preds = %4935
  %4937 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm0EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %840) #11
  %4938 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(48) %840) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %841) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %842, ptr noundef nonnull align 8 dereferenceable(16) %4937)
          to label %4939 unwind label %4949

4939:                                             ; preds = %4936
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %841, ptr noundef nonnull %842, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %4940 unwind label %4951

4940:                                             ; preds = %4939
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %842) #11
  %4941 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %839)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4941, ptr noundef nonnull align 8 dereferenceable(16) %841)
          to label %4942 unwind label %4953

4942:                                             ; preds = %4940
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %841) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %841) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %840) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %840) #11
  br label %4957

4943:                                             ; preds = %4927
  %4944 = landingpad { ptr, i32 }
          cleanup
  br label %5932

4945:                                             ; preds = %5806, %4957, %4928
  %4946 = landingpad { ptr, i32 }
          cleanup
  br label %5931

4947:                                             ; preds = %4935, %4932
  %4948 = landingpad { ptr, i32 }
          cleanup
  br label %4956

4949:                                             ; preds = %4936
  %4950 = landingpad { ptr, i32 }
          cleanup
  br label %4955

4951:                                             ; preds = %4939
  %4952 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %842) #11
  br label %4955

4953:                                             ; preds = %4940
  %4954 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %841) #11
  br label %4955

4955:                                             ; preds = %4953, %4951, %4949
  %.pn1769 = phi { ptr, i32 } [ %4954, %4953 ], [ %4952, %4951 ], [ %4950, %4949 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %841) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES8_ED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %840) #11
  br label %4956

4956:                                             ; preds = %4955, %4947
  %.pn1769.pn = phi { ptr, i32 } [ %.pn1769, %4955 ], [ %4948, %4947 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %840) #11
  br label %5931

4957:                                             ; preds = %4942, %4931
  %4958 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1888)
  %4959 = invoke noundef zeroext i1 @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EE12contains_keyERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %4958, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %4960 unwind label %4945

4960:                                             ; preds = %4957
  br i1 %4959, label %4978, label %4961

4961:                                             ; preds = %4960
  %4962 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %839)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %843) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %843, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(17) @.str.172)
          to label %4963 unwind label %4968

4963:                                             ; preds = %4961
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4962, ptr noundef nonnull align 8 dereferenceable(16) %843)
          to label %4964 unwind label %4970

4964:                                             ; preds = %4963
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %843) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %843) #11
  %4965 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %839)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %844) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA33_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %844, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(33) @.str.173)
          to label %4966 unwind label %4973

4966:                                             ; preds = %4964
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4965, ptr noundef nonnull align 8 dereferenceable(16) %844)
          to label %4967 unwind label %4975

4967:                                             ; preds = %4966
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %844) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %844) #11
  br label %4978

4968:                                             ; preds = %4961
  %4969 = landingpad { ptr, i32 }
          cleanup
  br label %4972

4970:                                             ; preds = %4963
  %4971 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %843) #11
  br label %4972

4972:                                             ; preds = %4970, %4968
  %.pn1772 = phi { ptr, i32 } [ %4971, %4970 ], [ %4969, %4968 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %843) #11
  br label %5931

4973:                                             ; preds = %4964
  %4974 = landingpad { ptr, i32 }
          cleanup
  br label %4977

4975:                                             ; preds = %4966
  %4976 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %844) #11
  br label %4977

4977:                                             ; preds = %4975, %4973
  %.pn1774 = phi { ptr, i32 } [ %4976, %4975 ], [ %4974, %4973 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %844) #11
  br label %5931

4978:                                             ; preds = %4967, %4960
  %4979 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %845) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %846) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %847) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %848, ptr noundef nonnull align 8 dereferenceable(16) %208)
          to label %4980 unwind label %5040

4980:                                             ; preds = %4978
  invoke void @_ZN6langcc13CppGenContext19gen_cpp_decl_structENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEESJ_SJ_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %847, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %848, ptr noundef nonnull align 8 dereferenceable(16) %219, ptr noundef nonnull align 8 dereferenceable(16) %839, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %4981 unwind label %5042

4981:                                             ; preds = %4980
  %4982 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %847)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %846, ptr noundef nonnull align 8 dereferenceable(136) %4982)
          to label %4983 unwind label %5044

4983:                                             ; preds = %4981
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Decl2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %845, ptr noundef nonnull align 8 dereferenceable(16) %846)
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %4979, ptr noundef nonnull align 8 dereferenceable(16) %845)
          to label %4984 unwind label %5046

4984:                                             ; preds = %4983
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %845) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %846) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %847) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %848) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %847) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %846) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %845) #11
  %4985 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %4986 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %4985)
  %4987 = icmp sgt i64 %4986, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %850) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %851) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %851)
          to label %4988 unwind label %5051

4988:                                             ; preds = %4984
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %852) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %852, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %4989 unwind label %5053

4989:                                             ; preds = %4988
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %853) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %853)
          to label %4990 unwind label %5055

4990:                                             ; preds = %4989
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %854) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %856) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %858) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %858, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %4991 unwind label %5057

4991:                                             ; preds = %4990
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %857, ptr noundef nonnull align 8 dereferenceable(16) %858)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %860) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %860) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %859, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %860)
          to label %4992 unwind label %5059

4992:                                             ; preds = %4991
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %856, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %857, ptr noundef nonnull %859)
          to label %4993 unwind label %5061

4993:                                             ; preds = %4992
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %855, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %856, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %4994 unwind label %5063

4994:                                             ; preds = %4993
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %862) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %862) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %861, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %862)
          to label %4995 unwind label %5065

4995:                                             ; preds = %4994
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %854, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %855, ptr noundef nonnull %861)
          to label %4996 unwind label %5067

4996:                                             ; preds = %4995
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %850, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %851, ptr noundef nonnull align 8 dereferenceable(16) %852, ptr noundef nonnull align 4 dereferenceable(20) %853, ptr noundef nonnull align 8 dereferenceable(16) %854, ptr noundef nonnull align 8 dereferenceable(16) %224, ptr noundef nonnull align 8 dereferenceable(16) %226, ptr noundef nonnull align 8 dereferenceable(16) %225, i1 noundef zeroext false)
          to label %4997 unwind label %5069

4997:                                             ; preds = %4996
  %4998 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %850)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %849, ptr noundef nonnull align 8 dereferenceable(136) %4998)
          to label %4999 unwind label %5071

4999:                                             ; preds = %4997
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %4987, ptr noundef nonnull %849)
          to label %5000 unwind label %5073

5000:                                             ; preds = %4999
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %849) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %850) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %854) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %861) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %862) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %862) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %855) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %856) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %859) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %860) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %860) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %857) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %858) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %858) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %856) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %854) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %853) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %853) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %852) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %852) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %851) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %851) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %850) #11
  %5001 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5002 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5001)
  %5003 = icmp sgt i64 %5002, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %864) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %865) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %865)
          to label %5004 unwind label %5086

5004:                                             ; preds = %5000
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %866) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %866, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5005 unwind label %5088

5005:                                             ; preds = %5004
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %867) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %868) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %869) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %870) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %870) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %869, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %870)
          to label %5006 unwind label %5090

5006:                                             ; preds = %5005
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %868, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %869)
          to label %5007 unwind label %5092

5007:                                             ; preds = %5006
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %867, ptr noundef nonnull align 8 dereferenceable(16) %868)
          to label %5008 unwind label %5094

5008:                                             ; preds = %5007
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %871) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %871, ptr noundef nonnull align 8 dereferenceable(16) %399)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %872) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %872)
          to label %5009 unwind label %5096

5009:                                             ; preds = %5008
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %864, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %865, ptr noundef nonnull align 8 dereferenceable(16) %866, ptr noundef nonnull align 4 dereferenceable(20) %867, ptr noundef nonnull align 8 dereferenceable(16) %871, ptr noundef nonnull align 8 dereferenceable(16) %400, ptr noundef nonnull align 8 dereferenceable(16) %872, ptr noundef nonnull align 8 dereferenceable(16) %401, i1 noundef zeroext false)
          to label %5010 unwind label %5098

5010:                                             ; preds = %5009
  %5011 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %864)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %863, ptr noundef nonnull align 8 dereferenceable(136) %5011)
          to label %5012 unwind label %5100

5012:                                             ; preds = %5010
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5003, ptr noundef nonnull %863)
          to label %5013 unwind label %5102

5013:                                             ; preds = %5012
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %863) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %864) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %872) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %872) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %871) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %871) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %867) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %868) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %869) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %870) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %870) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %869) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %868) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %867) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %866) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %866) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %865) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %865) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %864) #11
  br i1 %1961, label %5014, label %.critedge2623

5014:                                             ; preds = %5013
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %873) #11
  %5015 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE16make_lex_builderEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.83") align 8 %873, ptr noundef nonnull align 8 dereferenceable(32) %5015)
          to label %5016 unwind label %5112

5016:                                             ; preds = %5014
  invoke void @_ZN6langcc13CppGenContext27gen_cpp_template_params_accERNS_6rc_ptrINS_9LexOutputEEERKNS1_INS_3VecINS1_IN4lang2cc4Node2_TEEEEEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %873, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5017 unwind label %5114

5017:                                             ; preds = %5016
  %5018 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %875) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %875) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %874, ptr noundef nonnull %1923, ptr noundef nonnull align 1 dereferenceable(1) %875)
          to label %5019 unwind label %5116

5019:                                             ; preds = %5017
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5018, ptr noundef nonnull align 8 dereferenceable(16) %873, ptr noundef nonnull %874)
          to label %5020 unwind label %5118

5020:                                             ; preds = %5019
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %874) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %875) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %875) #11
  %5021 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %876) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %877, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %5022 unwind label %5121

5022:                                             ; preds = %5020
  invoke void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %876, ptr noundef nonnull %877, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5023 unwind label %5123

5023:                                             ; preds = %5022
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEERKNSA_IS4_EEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5021, ptr noundef nonnull align 8 dereferenceable(16) %873, ptr noundef nonnull align 8 dereferenceable(16) %876)
          to label %5024 unwind label %5125

5024:                                             ; preds = %5023
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %876) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %877) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %876) #11
  %5025 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %879) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %879) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %878, ptr noundef nonnull @.str.175, ptr noundef nonnull align 1 dereferenceable(1) %879)
          to label %5026 unwind label %5129

5026:                                             ; preds = %5024
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5025, ptr noundef nonnull align 8 dereferenceable(16) %873, ptr noundef nonnull %878)
          to label %5027 unwind label %5131

5027:                                             ; preds = %5026
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %878) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %879) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %879) #11
  %5028 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %881) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %881) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %880, ptr noundef nonnull @.str.176, ptr noundef nonnull align 1 dereferenceable(1) %881)
          to label %5029 unwind label %5134

5029:                                             ; preds = %5027
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJEEEvRNS_6rc_ptrINS_9LexOutputEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(32) %5028, ptr noundef nonnull align 8 dereferenceable(16) %873, ptr noundef nonnull %880)
          to label %5030 unwind label %5136

5030:                                             ; preds = %5029
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %880) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %881) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %881) #11
  %5031 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5032 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5031)
  %5033 = icmp sgt i64 %5032, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %883) #11
  %5034 = call noundef ptr @_ZN6langcc6rc_ptrINS_8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS3_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS6_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1082)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %885) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %886) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %886) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %885, ptr noundef nonnull @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %886)
          to label %5035 unwind label %5139

5035:                                             ; preds = %5030
  invoke void @_ZN6langcc4SomeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.88") align 4 %884, ptr noundef nonnull align 8 dereferenceable(32) %885)
          to label %5036 unwind label %5141

5036:                                             ; preds = %5035
  invoke void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE8qq_innerENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERNS_6rc_ptrINS_9LexOutputEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %883, ptr noundef nonnull align 8 dereferenceable(32) %5034, ptr noundef nonnull %884, ptr noundef nonnull align 8 dereferenceable(16) %873)
          to label %5037 unwind label %5143

5037:                                             ; preds = %5036
  %5038 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %883)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %882, ptr noundef nonnull align 8 dereferenceable(136) %5038)
          to label %5039 unwind label %5145

5039:                                             ; preds = %5037
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5033, ptr noundef nonnull %882)
          to label %.critedge2625 unwind label %5147

5040:                                             ; preds = %4978
  %5041 = landingpad { ptr, i32 }
          cleanup
  br label %5050

5042:                                             ; preds = %4980
  %5043 = landingpad { ptr, i32 }
          cleanup
  br label %5049

5044:                                             ; preds = %4981
  %5045 = landingpad { ptr, i32 }
          cleanup
  br label %5048

5046:                                             ; preds = %4983
  %5047 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %845) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %846) #11
  br label %5048

5048:                                             ; preds = %5046, %5044
  %.pn1776 = phi { ptr, i32 } [ %5047, %5046 ], [ %5045, %5044 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %847) #11
  br label %5049

5049:                                             ; preds = %5048, %5042
  %.pn1776.pn = phi { ptr, i32 } [ %.pn1776, %5048 ], [ %5043, %5042 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %848) #11
  br label %5050

5050:                                             ; preds = %5049, %5040
  %.pn1776.pn.pn = phi { ptr, i32 } [ %.pn1776.pn, %5049 ], [ %5041, %5040 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %847) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %846) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %845) #11
  br label %5931

5051:                                             ; preds = %4984
  %5052 = landingpad { ptr, i32 }
          cleanup
  br label %5085

5053:                                             ; preds = %4988
  %5054 = landingpad { ptr, i32 }
          cleanup
  br label %5084

5055:                                             ; preds = %4989
  %5056 = landingpad { ptr, i32 }
          cleanup
  br label %5083

5057:                                             ; preds = %4990
  %5058 = landingpad { ptr, i32 }
          cleanup
  br label %5082

5059:                                             ; preds = %4991
  %5060 = landingpad { ptr, i32 }
          cleanup
  br label %5081

5061:                                             ; preds = %4992
  %5062 = landingpad { ptr, i32 }
          cleanup
  br label %5080

5063:                                             ; preds = %4993
  %5064 = landingpad { ptr, i32 }
          cleanup
  br label %5079

5065:                                             ; preds = %4994
  %5066 = landingpad { ptr, i32 }
          cleanup
  br label %5078

5067:                                             ; preds = %4995
  %5068 = landingpad { ptr, i32 }
          cleanup
  br label %5077

5069:                                             ; preds = %4996
  %5070 = landingpad { ptr, i32 }
          cleanup
  br label %5076

5071:                                             ; preds = %4997
  %5072 = landingpad { ptr, i32 }
          cleanup
  br label %5075

5073:                                             ; preds = %4999
  %5074 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %849) #11
  br label %5075

5075:                                             ; preds = %5073, %5071
  %.pn1780 = phi { ptr, i32 } [ %5074, %5073 ], [ %5072, %5071 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %850) #11
  br label %5076

5076:                                             ; preds = %5075, %5069
  %.pn1780.pn = phi { ptr, i32 } [ %.pn1780, %5075 ], [ %5070, %5069 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %854) #11
  br label %5077

5077:                                             ; preds = %5076, %5067
  %.pn1780.pn.pn = phi { ptr, i32 } [ %.pn1780.pn, %5076 ], [ %5068, %5067 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %861) #11
  br label %5078

5078:                                             ; preds = %5077, %5065
  %.pn1780.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn, %5077 ], [ %5066, %5065 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %862) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %862) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %855) #11
  br label %5079

5079:                                             ; preds = %5078, %5063
  %.pn1780.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn.pn, %5078 ], [ %5064, %5063 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %856) #11
  br label %5080

5080:                                             ; preds = %5079, %5061
  %.pn1780.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn.pn.pn, %5079 ], [ %5062, %5061 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %859) #11
  br label %5081

5081:                                             ; preds = %5080, %5059
  %.pn1780.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn.pn.pn.pn, %5080 ], [ %5060, %5059 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %860) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %860) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %857) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %858) #11
  br label %5082

5082:                                             ; preds = %5081, %5057
  %.pn1780.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn.pn.pn.pn.pn, %5081 ], [ %5058, %5057 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %858) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %856) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %854) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %853) #11
  br label %5083

5083:                                             ; preds = %5082, %5055
  %.pn1780.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn.pn.pn.pn.pn.pn, %5082 ], [ %5056, %5055 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %853) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %852) #11
  br label %5084

5084:                                             ; preds = %5083, %5053
  %.pn1780.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn.pn.pn.pn.pn.pn.pn, %5083 ], [ %5054, %5053 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %852) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %851) #11
  br label %5085

5085:                                             ; preds = %5084, %5051
  %.pn1780.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1780.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5084 ], [ %5052, %5051 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %851) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %850) #11
  br label %5931

5086:                                             ; preds = %5000
  %5087 = landingpad { ptr, i32 }
          cleanup
  br label %5111

5088:                                             ; preds = %5004
  %5089 = landingpad { ptr, i32 }
          cleanup
  br label %5110

5090:                                             ; preds = %5005
  %5091 = landingpad { ptr, i32 }
          cleanup
  br label %5109

5092:                                             ; preds = %5006
  %5093 = landingpad { ptr, i32 }
          cleanup
  br label %5108

5094:                                             ; preds = %5007
  %5095 = landingpad { ptr, i32 }
          cleanup
  br label %5107

5096:                                             ; preds = %5008
  %5097 = landingpad { ptr, i32 }
          cleanup
  br label %5106

5098:                                             ; preds = %5009
  %5099 = landingpad { ptr, i32 }
          cleanup
  br label %5105

5100:                                             ; preds = %5010
  %5101 = landingpad { ptr, i32 }
          cleanup
  br label %5104

5102:                                             ; preds = %5012
  %5103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %863) #11
  br label %5104

5104:                                             ; preds = %5102, %5100
  %.pn1792 = phi { ptr, i32 } [ %5103, %5102 ], [ %5101, %5100 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %864) #11
  br label %5105

5105:                                             ; preds = %5104, %5098
  %.pn1792.pn = phi { ptr, i32 } [ %.pn1792, %5104 ], [ %5099, %5098 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %872) #11
  br label %5106

5106:                                             ; preds = %5105, %5096
  %.pn1792.pn.pn = phi { ptr, i32 } [ %.pn1792.pn, %5105 ], [ %5097, %5096 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %872) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %871) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %871) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %867) #11
  br label %5107

5107:                                             ; preds = %5106, %5094
  %.pn1792.pn.pn.pn = phi { ptr, i32 } [ %.pn1792.pn.pn, %5106 ], [ %5095, %5094 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %868) #11
  br label %5108

5108:                                             ; preds = %5107, %5092
  %.pn1792.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1792.pn.pn.pn, %5107 ], [ %5093, %5092 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %869) #11
  br label %5109

5109:                                             ; preds = %5108, %5090
  %.pn1792.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1792.pn.pn.pn.pn, %5108 ], [ %5091, %5090 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %870) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %870) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %869) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %868) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %867) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %866) #11
  br label %5110

5110:                                             ; preds = %5109, %5088
  %.pn1792.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1792.pn.pn.pn.pn.pn, %5109 ], [ %5089, %5088 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %866) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %865) #11
  br label %5111

5111:                                             ; preds = %5110, %5086
  %.pn1792.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1792.pn.pn.pn.pn.pn.pn, %5110 ], [ %5087, %5086 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %865) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %864) #11
  br label %5931

5112:                                             ; preds = %5014
  %5113 = landingpad { ptr, i32 }
          cleanup
  br label %5154

5114:                                             ; preds = %5016
  %5115 = landingpad { ptr, i32 }
          cleanup
  br label %5153

5116:                                             ; preds = %5017
  %5117 = landingpad { ptr, i32 }
          cleanup
  br label %5120

5118:                                             ; preds = %5019
  %5119 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %874) #11
  br label %5120

5120:                                             ; preds = %5118, %5116
  %.pn1801 = phi { ptr, i32 } [ %5119, %5118 ], [ %5117, %5116 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %875) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %875) #11
  br label %5153

5121:                                             ; preds = %5020
  %5122 = landingpad { ptr, i32 }
          cleanup
  br label %5128

5123:                                             ; preds = %5022
  %5124 = landingpad { ptr, i32 }
          cleanup
  br label %5127

5125:                                             ; preds = %5023
  %5126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %876) #11
  br label %5127

5127:                                             ; preds = %5125, %5123
  %.pn1803 = phi { ptr, i32 } [ %5126, %5125 ], [ %5124, %5123 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %877) #11
  br label %5128

5128:                                             ; preds = %5127, %5121
  %.pn1803.pn = phi { ptr, i32 } [ %.pn1803, %5127 ], [ %5122, %5121 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %876) #11
  br label %5153

5129:                                             ; preds = %5024
  %5130 = landingpad { ptr, i32 }
          cleanup
  br label %5133

5131:                                             ; preds = %5026
  %5132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %878) #11
  br label %5133

5133:                                             ; preds = %5131, %5129
  %.pn1806 = phi { ptr, i32 } [ %5132, %5131 ], [ %5130, %5129 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %879) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %879) #11
  br label %5153

5134:                                             ; preds = %5027
  %5135 = landingpad { ptr, i32 }
          cleanup
  br label %5138

5136:                                             ; preds = %5029
  %5137 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %880) #11
  br label %5138

5138:                                             ; preds = %5136, %5134
  %.pn1808 = phi { ptr, i32 } [ %5137, %5136 ], [ %5135, %5134 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %881) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %881) #11
  br label %5153

5139:                                             ; preds = %5030
  %5140 = landingpad { ptr, i32 }
          cleanup
  br label %5152

5141:                                             ; preds = %5035
  %5142 = landingpad { ptr, i32 }
          cleanup
  br label %5151

5143:                                             ; preds = %5036
  %5144 = landingpad { ptr, i32 }
          cleanup
  br label %5150

5145:                                             ; preds = %5037
  %5146 = landingpad { ptr, i32 }
          cleanup
  br label %5149

5147:                                             ; preds = %5039
  %5148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %882) #11
  br label %5149

5149:                                             ; preds = %5147, %5145
  %.pn1810 = phi { ptr, i32 } [ %5148, %5147 ], [ %5146, %5145 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %883) #11
  br label %5150

5150:                                             ; preds = %5149, %5143
  %.pn1810.pn = phi { ptr, i32 } [ %.pn1810, %5149 ], [ %5144, %5143 ]
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %884) #11
  br label %5151

5151:                                             ; preds = %5150, %5141
  %.pn1810.pn.pn = phi { ptr, i32 } [ %.pn1810.pn, %5150 ], [ %5142, %5141 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %885) #11
  br label %5152

5152:                                             ; preds = %5151, %5139
  %.pn1810.pn.pn.pn = phi { ptr, i32 } [ %.pn1810.pn.pn, %5151 ], [ %5140, %5139 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %886) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %886) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %885) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %883) #11
  br label %5153

5153:                                             ; preds = %5152, %5138, %5133, %5128, %5120, %5114
  %.pn1810.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1810.pn.pn.pn, %5152 ], [ %.pn1808, %5138 ], [ %.pn1806, %5133 ], [ %.pn1803.pn, %5128 ], [ %.pn1801, %5120 ], [ %5115, %5114 ]
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %873) #11
  br label %5154

5154:                                             ; preds = %5153, %5112
  %.pn1810.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1810.pn.pn.pn.pn, %5153 ], [ %5113, %5112 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %873) #11
  br label %5931

.critedge2623:                                    ; preds = %5013
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %887) #11
  invoke void @_ZN6langcc7make_rcINS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %887)
          to label %5155 unwind label %5163

5155:                                             ; preds = %.critedge2623
  br i1 %1916, label %5156, label %5175

5156:                                             ; preds = %5155
  %5157 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %887)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %888) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA4_cA7_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %888, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(4) @.str.165, ptr noundef nonnull align 1 dereferenceable(7) @.str.174)
          to label %5158 unwind label %5165

5158:                                             ; preds = %5156
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5157, ptr noundef nonnull align 8 dereferenceable(16) %888)
          to label %5159 unwind label %5167

5159:                                             ; preds = %5158
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %888) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %888) #11
  %5160 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %887)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %889) #11
  invoke void @_ZN6langcc13CppGenContext2qqIJA4_cA31_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %889, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(4) @.str.165, ptr noundef nonnull align 1 dereferenceable(31) @.str.166)
          to label %5161 unwind label %5170

5161:                                             ; preds = %5159
  invoke void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(64) %5160, ptr noundef nonnull align 8 dereferenceable(16) %889)
          to label %5162 unwind label %5172

5162:                                             ; preds = %5161
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %889) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %889) #11
  br label %5175

5163:                                             ; preds = %.critedge2623
  %5164 = landingpad { ptr, i32 }
          cleanup
  br label %5381

5165:                                             ; preds = %5156
  %5166 = landingpad { ptr, i32 }
          cleanup
  br label %5169

5167:                                             ; preds = %5158
  %5168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %888) #11
  br label %5169

5169:                                             ; preds = %5167, %5165
  %.pn1817 = phi { ptr, i32 } [ %5168, %5167 ], [ %5166, %5165 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %888) #11
  br label %5380

5170:                                             ; preds = %5159
  %5171 = landingpad { ptr, i32 }
          cleanup
  br label %5174

5172:                                             ; preds = %5161
  %5173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %889) #11
  br label %5174

5174:                                             ; preds = %5172, %5170
  %.pn1819 = phi { ptr, i32 } [ %5173, %5172 ], [ %5171, %5170 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %889) #11
  br label %5380

5175:                                             ; preds = %5162, %5155
  %5176 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5177 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5176)
  %5178 = icmp sgt i64 %5177, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %891) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %892) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %892)
          to label %5179 unwind label %5213

5179:                                             ; preds = %5175
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %893) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %894) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %895) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %896)
          to label %5180 unwind label %5215

5180:                                             ; preds = %5179
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %897)
          to label %5181 unwind label %5217

5181:                                             ; preds = %5180
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %895, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %896, ptr noundef nonnull %897)
          to label %5182 unwind label %5219

5182:                                             ; preds = %5181
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %894, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %895, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5183 unwind label %5221

5183:                                             ; preds = %5182
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %893, ptr noundef nonnull align 8 dereferenceable(16) %894)
          to label %5184 unwind label %5223

5184:                                             ; preds = %5183
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %898) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %899)
          to label %5185 unwind label %5225

5185:                                             ; preds = %5184
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %900)
          to label %5186 unwind label %5227

5186:                                             ; preds = %5185
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %898, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %899, ptr noundef nonnull %900)
          to label %5187 unwind label %5229

5187:                                             ; preds = %5186
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %901) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %901)
          to label %5188 unwind label %5231

5188:                                             ; preds = %5187
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %891, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %892, ptr noundef nonnull align 8 dereferenceable(16) %887, ptr noundef nonnull align 4 dereferenceable(20) %893, ptr noundef nonnull align 8 dereferenceable(16) %898, ptr noundef nonnull align 8 dereferenceable(16) %252, ptr noundef nonnull align 8 dereferenceable(16) %901, ptr noundef nonnull align 8 dereferenceable(16) %253, i1 noundef zeroext false)
          to label %5189 unwind label %5233

5189:                                             ; preds = %5188
  %5190 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %891)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %890, ptr noundef nonnull align 8 dereferenceable(136) %5190)
          to label %5191 unwind label %5235

5191:                                             ; preds = %5189
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5178, ptr noundef nonnull %890)
          to label %5192 unwind label %5237

5192:                                             ; preds = %5191
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %890) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %891) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %901) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %901) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %898) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %900) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %899) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %898) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %893) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %894) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %895) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %897) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %896) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %895) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %894) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %893) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %892) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %892) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %891) #11
  %5193 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5194 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5193)
  %5195 = icmp sgt i64 %5194, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %903) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %904) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %904)
          to label %5196 unwind label %5251

5196:                                             ; preds = %5192
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %905) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %906) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %907) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %908)
          to label %5197 unwind label %5253

5197:                                             ; preds = %5196
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %909)
          to label %5198 unwind label %5255

5198:                                             ; preds = %5197
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %907, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %908, ptr noundef nonnull %909)
          to label %5199 unwind label %5257

5199:                                             ; preds = %5198
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %906, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %907, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5200 unwind label %5259

5200:                                             ; preds = %5199
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %905, ptr noundef nonnull align 8 dereferenceable(16) %906)
          to label %5201 unwind label %5261

5201:                                             ; preds = %5200
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %910) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %911)
          to label %5202 unwind label %5263

5202:                                             ; preds = %5201
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %912)
          to label %5203 unwind label %5265

5203:                                             ; preds = %5202
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %910, i32 noundef 6, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %911, ptr noundef nonnull %912)
          to label %5204 unwind label %5267

5204:                                             ; preds = %5203
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %913) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %913)
          to label %5205 unwind label %5269

5205:                                             ; preds = %5204
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %903, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %904, ptr noundef nonnull align 8 dereferenceable(16) %887, ptr noundef nonnull align 4 dereferenceable(20) %905, ptr noundef nonnull align 8 dereferenceable(16) %910, ptr noundef nonnull align 8 dereferenceable(16) %268, ptr noundef nonnull align 8 dereferenceable(16) %913, ptr noundef nonnull align 8 dereferenceable(16) %273, i1 noundef zeroext false)
          to label %5206 unwind label %5271

5206:                                             ; preds = %5205
  %5207 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %903)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %902, ptr noundef nonnull align 8 dereferenceable(136) %5207)
          to label %5208 unwind label %5273

5208:                                             ; preds = %5206
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5195, ptr noundef nonnull %902)
          to label %5209 unwind label %5275

5209:                                             ; preds = %5208
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %902) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %903) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %913) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %913) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %910) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %912) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %911) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %910) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %905) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %906) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %907) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %909) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %908) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %907) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %906) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %905) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %904) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %904) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %903) #11
  %5210 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry5Field2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1966)
  %5211 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(64) %5210)
  %5212 = call noundef ptr @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(64) %5210)
  %.not18473624 = icmp eq ptr %5211, %5212
  br i1 %.not18473624, label %._crit_edge3628, label %.lr.ph3627

._crit_edge3628:                                  ; preds = %5316, %5209
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %887) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %887) #11
  br label %5806

5213:                                             ; preds = %5175
  %5214 = landingpad { ptr, i32 }
          cleanup
  br label %5250

5215:                                             ; preds = %5179
  %5216 = landingpad { ptr, i32 }
          cleanup
  br label %5249

5217:                                             ; preds = %5180
  %5218 = landingpad { ptr, i32 }
          cleanup
  br label %5248

5219:                                             ; preds = %5181
  %5220 = landingpad { ptr, i32 }
          cleanup
  br label %5247

5221:                                             ; preds = %5182
  %5222 = landingpad { ptr, i32 }
          cleanup
  br label %5246

5223:                                             ; preds = %5183
  %5224 = landingpad { ptr, i32 }
          cleanup
  br label %5245

5225:                                             ; preds = %5184
  %5226 = landingpad { ptr, i32 }
          cleanup
  br label %5244

5227:                                             ; preds = %5185
  %5228 = landingpad { ptr, i32 }
          cleanup
  br label %5243

5229:                                             ; preds = %5186
  %5230 = landingpad { ptr, i32 }
          cleanup
  br label %5242

5231:                                             ; preds = %5187
  %5232 = landingpad { ptr, i32 }
          cleanup
  br label %5241

5233:                                             ; preds = %5188
  %5234 = landingpad { ptr, i32 }
          cleanup
  br label %5240

5235:                                             ; preds = %5189
  %5236 = landingpad { ptr, i32 }
          cleanup
  br label %5239

5237:                                             ; preds = %5191
  %5238 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %890) #11
  br label %5239

5239:                                             ; preds = %5237, %5235
  %.pn1821 = phi { ptr, i32 } [ %5238, %5237 ], [ %5236, %5235 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %891) #11
  br label %5240

5240:                                             ; preds = %5239, %5233
  %.pn1821.pn = phi { ptr, i32 } [ %.pn1821, %5239 ], [ %5234, %5233 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %901) #11
  br label %5241

5241:                                             ; preds = %5240, %5231
  %.pn1821.pn.pn = phi { ptr, i32 } [ %.pn1821.pn, %5240 ], [ %5232, %5231 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %901) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %898) #11
  br label %5242

5242:                                             ; preds = %5241, %5229
  %.pn1821.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn, %5241 ], [ %5230, %5229 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %900) #11
  br label %5243

5243:                                             ; preds = %5242, %5227
  %.pn1821.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn, %5242 ], [ %5228, %5227 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %899) #11
  br label %5244

5244:                                             ; preds = %5243, %5225
  %.pn1821.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn.pn, %5243 ], [ %5226, %5225 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %898) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %893) #11
  br label %5245

5245:                                             ; preds = %5244, %5223
  %.pn1821.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn.pn.pn, %5244 ], [ %5224, %5223 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %894) #11
  br label %5246

5246:                                             ; preds = %5245, %5221
  %.pn1821.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn.pn.pn.pn, %5245 ], [ %5222, %5221 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %895) #11
  br label %5247

5247:                                             ; preds = %5246, %5219
  %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn.pn.pn.pn.pn, %5246 ], [ %5220, %5219 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %897) #11
  br label %5248

5248:                                             ; preds = %5247, %5217
  %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn, %5247 ], [ %5218, %5217 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %896) #11
  br label %5249

5249:                                             ; preds = %5248, %5215
  %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5248 ], [ %5216, %5215 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %895) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %894) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %893) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %892) #11
  br label %5250

5250:                                             ; preds = %5249, %5213
  %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5249 ], [ %5214, %5213 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %892) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %891) #11
  br label %5380

5251:                                             ; preds = %5192
  %5252 = landingpad { ptr, i32 }
          cleanup
  br label %5288

5253:                                             ; preds = %5196
  %5254 = landingpad { ptr, i32 }
          cleanup
  br label %5287

5255:                                             ; preds = %5197
  %5256 = landingpad { ptr, i32 }
          cleanup
  br label %5286

5257:                                             ; preds = %5198
  %5258 = landingpad { ptr, i32 }
          cleanup
  br label %5285

5259:                                             ; preds = %5199
  %5260 = landingpad { ptr, i32 }
          cleanup
  br label %5284

5261:                                             ; preds = %5200
  %5262 = landingpad { ptr, i32 }
          cleanup
  br label %5283

5263:                                             ; preds = %5201
  %5264 = landingpad { ptr, i32 }
          cleanup
  br label %5282

5265:                                             ; preds = %5202
  %5266 = landingpad { ptr, i32 }
          cleanup
  br label %5281

5267:                                             ; preds = %5203
  %5268 = landingpad { ptr, i32 }
          cleanup
  br label %5280

5269:                                             ; preds = %5204
  %5270 = landingpad { ptr, i32 }
          cleanup
  br label %5279

5271:                                             ; preds = %5205
  %5272 = landingpad { ptr, i32 }
          cleanup
  br label %5278

5273:                                             ; preds = %5206
  %5274 = landingpad { ptr, i32 }
          cleanup
  br label %5277

5275:                                             ; preds = %5208
  %5276 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %902) #11
  br label %5277

5277:                                             ; preds = %5275, %5273
  %.pn1834 = phi { ptr, i32 } [ %5276, %5275 ], [ %5274, %5273 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %903) #11
  br label %5278

5278:                                             ; preds = %5277, %5271
  %.pn1834.pn = phi { ptr, i32 } [ %.pn1834, %5277 ], [ %5272, %5271 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %913) #11
  br label %5279

5279:                                             ; preds = %5278, %5269
  %.pn1834.pn.pn = phi { ptr, i32 } [ %.pn1834.pn, %5278 ], [ %5270, %5269 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %913) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %910) #11
  br label %5280

5280:                                             ; preds = %5279, %5267
  %.pn1834.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn, %5279 ], [ %5268, %5267 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %912) #11
  br label %5281

5281:                                             ; preds = %5280, %5265
  %.pn1834.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn, %5280 ], [ %5266, %5265 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %911) #11
  br label %5282

5282:                                             ; preds = %5281, %5263
  %.pn1834.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn.pn, %5281 ], [ %5264, %5263 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %910) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %905) #11
  br label %5283

5283:                                             ; preds = %5282, %5261
  %.pn1834.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn.pn.pn, %5282 ], [ %5262, %5261 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %906) #11
  br label %5284

5284:                                             ; preds = %5283, %5259
  %.pn1834.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn.pn.pn.pn, %5283 ], [ %5260, %5259 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %907) #11
  br label %5285

5285:                                             ; preds = %5284, %5257
  %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn.pn.pn.pn.pn, %5284 ], [ %5258, %5257 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %909) #11
  br label %5286

5286:                                             ; preds = %5285, %5255
  %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn, %5285 ], [ %5256, %5255 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %908) #11
  br label %5287

5287:                                             ; preds = %5286, %5253
  %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5286 ], [ %5254, %5253 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %907) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %906) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %905) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %904) #11
  br label %5288

5288:                                             ; preds = %5287, %5251
  %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5287 ], [ %5252, %5251 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %904) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %903) #11
  br label %5380

.lr.ph3627:                                       ; preds = %5209, %5316
  %.014343625 = phi ptr [ %5317, %5316 ], [ %5211, %5209 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %914) #11
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEC2ERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %914, ptr noundef nonnull align 8 dereferenceable(48) %.014343625)
          to label %5289 unwind label %5318

5289:                                             ; preds = %.lr.ph3627
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %915) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %915, ptr noundef nonnull align 8 dereferenceable(32) %914)
          to label %5290 unwind label %5320

5290:                                             ; preds = %5289
  %5291 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5292 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5291)
  %5293 = icmp sgt i64 %5292, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %917) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %918) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %918)
          to label %5294 unwind label %5322

5294:                                             ; preds = %5290
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %919) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %919, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5295 unwind label %5324

5295:                                             ; preds = %5294
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %920) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %921) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %922) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %923)
          to label %5296 unwind label %5326

5296:                                             ; preds = %5295
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %924)
          to label %5297 unwind label %5328

5297:                                             ; preds = %5296
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %922, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %923, ptr noundef nonnull %924)
          to label %5298 unwind label %5330

5298:                                             ; preds = %5297
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %921, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %922, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5299 unwind label %5332

5299:                                             ; preds = %5298
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %920, ptr noundef nonnull align 8 dereferenceable(16) %921)
          to label %5300 unwind label %5334

5300:                                             ; preds = %5299
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %925) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %927) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %929) #11
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %929, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %5301 unwind label %5336

5301:                                             ; preds = %5300
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %928, ptr noundef nonnull align 8 dereferenceable(16) %929)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %931) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %931) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %930, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %931)
          to label %5302 unwind label %5338

5302:                                             ; preds = %5301
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %927, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %928, ptr noundef nonnull %930)
          to label %5303 unwind label %5340

5303:                                             ; preds = %5302
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %926, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %927, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5304 unwind label %5342

5304:                                             ; preds = %5303
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %933) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %934) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %934) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %933, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %934)
          to label %5305 unwind label %5344

5305:                                             ; preds = %5304
  invoke void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_RKS6_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %932, ptr noundef nonnull align 8 dereferenceable(32) %933, ptr noundef nonnull align 8 dereferenceable(32) %915)
          to label %5306 unwind label %5346

5306:                                             ; preds = %5305
  invoke void @_ZN6langcc20cpp_name_with_appendERNS_13CppGenContextENS_6rc_ptrIN4lang2cc4Node2_TEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %925, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull %926, ptr noundef nonnull %932)
          to label %5307 unwind label %5348

5307:                                             ; preds = %5306
  %5308 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %279, ptr noundef nonnull align 8 dereferenceable(32) %915)
          to label %5309 unwind label %5350

5309:                                             ; preds = %5307
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %935) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %935)
          to label %5310 unwind label %5352

5310:                                             ; preds = %5309
  %5311 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %281, ptr noundef nonnull align 8 dereferenceable(32) %915)
          to label %5312 unwind label %5354

5312:                                             ; preds = %5310
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %917, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %918, ptr noundef nonnull align 8 dereferenceable(16) %919, ptr noundef nonnull align 4 dereferenceable(20) %920, ptr noundef nonnull align 8 dereferenceable(16) %925, ptr noundef nonnull align 8 dereferenceable(16) %5308, ptr noundef nonnull align 8 dereferenceable(16) %935, ptr noundef nonnull align 8 dereferenceable(16) %5311, i1 noundef zeroext false)
          to label %5313 unwind label %5354

5313:                                             ; preds = %5312
  %5314 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %917)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %916, ptr noundef nonnull align 8 dereferenceable(136) %5314)
          to label %5315 unwind label %5356

5315:                                             ; preds = %5313
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5293, ptr noundef nonnull %916)
          to label %5316 unwind label %5358

5316:                                             ; preds = %5315
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %916) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %917) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %935) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %935) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %925) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %932) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %933) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %934) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %934) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %933) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %926) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %927) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %930) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %931) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %931) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %928) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %929) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %929) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %927) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %925) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %920) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %921) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %922) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %924) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %923) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %922) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %921) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %920) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %919) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %919) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %918) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %918) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %917) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %915) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %915) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %914) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %914) #11
  %5317 = getelementptr inbounds i8, ptr %.014343625, i64 48
  %.not1847 = icmp eq ptr %5317, %5212
  br i1 %.not1847, label %._crit_edge3628, label %.lr.ph3627

5318:                                             ; preds = %.lr.ph3627
  %5319 = landingpad { ptr, i32 }
          cleanup
  br label %5379

5320:                                             ; preds = %5289
  %5321 = landingpad { ptr, i32 }
          cleanup
  br label %5378

5322:                                             ; preds = %5290
  %5323 = landingpad { ptr, i32 }
          cleanup
  br label %5377

5324:                                             ; preds = %5294
  %5325 = landingpad { ptr, i32 }
          cleanup
  br label %5376

5326:                                             ; preds = %5295
  %5327 = landingpad { ptr, i32 }
          cleanup
  br label %5375

5328:                                             ; preds = %5296
  %5329 = landingpad { ptr, i32 }
          cleanup
  br label %5374

5330:                                             ; preds = %5297
  %5331 = landingpad { ptr, i32 }
          cleanup
  br label %5373

5332:                                             ; preds = %5298
  %5333 = landingpad { ptr, i32 }
          cleanup
  br label %5372

5334:                                             ; preds = %5299
  %5335 = landingpad { ptr, i32 }
          cleanup
  br label %5371

5336:                                             ; preds = %5300
  %5337 = landingpad { ptr, i32 }
          cleanup
  br label %5370

5338:                                             ; preds = %5301
  %5339 = landingpad { ptr, i32 }
          cleanup
  br label %5369

5340:                                             ; preds = %5302
  %5341 = landingpad { ptr, i32 }
          cleanup
  br label %5368

5342:                                             ; preds = %5303
  %5343 = landingpad { ptr, i32 }
          cleanup
  br label %5367

5344:                                             ; preds = %5304
  %5345 = landingpad { ptr, i32 }
          cleanup
  br label %5366

5346:                                             ; preds = %5305
  %5347 = landingpad { ptr, i32 }
          cleanup
  br label %5365

5348:                                             ; preds = %5306
  %5349 = landingpad { ptr, i32 }
          cleanup
  br label %5364

5350:                                             ; preds = %5307
  %5351 = landingpad { ptr, i32 }
          cleanup
  br label %5363

5352:                                             ; preds = %5309
  %5353 = landingpad { ptr, i32 }
          cleanup
  br label %5362

5354:                                             ; preds = %5312, %5310
  %5355 = landingpad { ptr, i32 }
          cleanup
  br label %5361

5356:                                             ; preds = %5313
  %5357 = landingpad { ptr, i32 }
          cleanup
  br label %5360

5358:                                             ; preds = %5315
  %5359 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %916) #11
  br label %5360

5360:                                             ; preds = %5358, %5356
  %.pn1848 = phi { ptr, i32 } [ %5359, %5358 ], [ %5357, %5356 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %917) #11
  br label %5361

5361:                                             ; preds = %5360, %5354
  %.pn1848.pn = phi { ptr, i32 } [ %.pn1848, %5360 ], [ %5355, %5354 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %935) #11
  br label %5362

5362:                                             ; preds = %5361, %5352
  %.pn1848.pn.pn = phi { ptr, i32 } [ %.pn1848.pn, %5361 ], [ %5353, %5352 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %935) #11
  br label %5363

5363:                                             ; preds = %5362, %5350
  %.pn1848.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn, %5362 ], [ %5351, %5350 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %925) #11
  br label %5364

5364:                                             ; preds = %5363, %5348
  %.pn1848.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn, %5363 ], [ %5349, %5348 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %932) #11
  br label %5365

5365:                                             ; preds = %5364, %5346
  %.pn1848.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn, %5364 ], [ %5347, %5346 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %933) #11
  br label %5366

5366:                                             ; preds = %5365, %5344
  %.pn1848.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn, %5365 ], [ %5345, %5344 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %934) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %934) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %933) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %926) #11
  br label %5367

5367:                                             ; preds = %5366, %5342
  %.pn1848.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn, %5366 ], [ %5343, %5342 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %927) #11
  br label %5368

5368:                                             ; preds = %5367, %5340
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn, %5367 ], [ %5341, %5340 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %930) #11
  br label %5369

5369:                                             ; preds = %5368, %5338
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn, %5368 ], [ %5339, %5338 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %931) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %931) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %928) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %929) #11
  br label %5370

5370:                                             ; preds = %5369, %5336
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5369 ], [ %5337, %5336 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %929) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %927) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %925) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %920) #11
  br label %5371

5371:                                             ; preds = %5370, %5334
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5370 ], [ %5335, %5334 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %921) #11
  br label %5372

5372:                                             ; preds = %5371, %5332
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5371 ], [ %5333, %5332 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %922) #11
  br label %5373

5373:                                             ; preds = %5372, %5330
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5372 ], [ %5331, %5330 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %924) #11
  br label %5374

5374:                                             ; preds = %5373, %5328
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5373 ], [ %5329, %5328 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %923) #11
  br label %5375

5375:                                             ; preds = %5374, %5326
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5374 ], [ %5327, %5326 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %922) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %921) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %920) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %919) #11
  br label %5376

5376:                                             ; preds = %5375, %5324
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5375 ], [ %5325, %5324 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %919) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %918) #11
  br label %5377

5377:                                             ; preds = %5376, %5322
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5376 ], [ %5323, %5322 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %918) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %917) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %915) #11
  br label %5378

5378:                                             ; preds = %5377, %5320
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5377 ], [ %5321, %5320 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %915) #11
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %914) #11
  br label %5379

5379:                                             ; preds = %5378, %5318
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5378 ], [ %5319, %5318 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %914) #11
  br label %5380

5380:                                             ; preds = %5379, %5288, %5250, %5174, %5169
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5379 ], [ %.pn1834.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5288 ], [ %.pn1821.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5250 ], [ %.pn1819, %5174 ], [ %.pn1817, %5169 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %887) #11
  br label %5381

5381:                                             ; preds = %5380, %5163
  %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5380 ], [ %5164, %5163 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %887) #11
  br label %5931

.critedge2625:                                    ; preds = %5039
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %882) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %883) #11
  call void @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(36) %884) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %885) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %886) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %886) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %885) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %883) #11
  call void @_ZN6langcc6rc_ptrINS_9LexOutputEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %873) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %873) #11
  %5382 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %5383 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %5382, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %5384 unwind label %5399

5384:                                             ; preds = %.critedge2625
  %5385 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %5383)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %936) #11
  %5386 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %5385)
          to label %5387 unwind label %5401

5387:                                             ; preds = %5384
  %5388 = extractvalue { ptr, i64 } %5386, 0
  store ptr %5388, ptr %936, align 8
  %5389 = extractvalue { ptr, i64 } %5386, 1
  store i64 %5389, ptr %1924, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %937) #11
  %5390 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %5385)
  %5391 = extractvalue { ptr, i64 } %5390, 0
  store ptr %5391, ptr %937, align 8
  %5392 = extractvalue { ptr, i64 } %5390, 1
  store i64 %5392, ptr %1925, align 8
  br label %5393

5393:                                             ; preds = %5432, %5387
  %5394 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %936, ptr noundef nonnull align 8 dereferenceable(16) %937)
          to label %5395 unwind label %5403

5395:                                             ; preds = %5393
  br i1 %5394, label %5405, label %5396

5396:                                             ; preds = %5395
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %937) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %936) #11
  %5397 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %5398 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %5397, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %5483 unwind label %5498

5399:                                             ; preds = %.critedge2625
  %5400 = landingpad { ptr, i32 }
          cleanup
  br label %5931

5401:                                             ; preds = %5384
  %5402 = landingpad { ptr, i32 }
          cleanup
  br label %5482

5403:                                             ; preds = %5432, %5393
  %5404 = landingpad { ptr, i32 }
          cleanup
  br label %5481

5405:                                             ; preds = %5395
  %5406 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %936)
          to label %5407 unwind label %5434

5407:                                             ; preds = %5405
  %5408 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %5406) #11
  %5409 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %5406) #11
  %5410 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5411 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5410)
  %5412 = icmp sgt i64 %5411, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %939) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %940) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %940)
          to label %5413 unwind label %5436

5413:                                             ; preds = %5407
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %941) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %941, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5414 unwind label %5438

5414:                                             ; preds = %5413
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %942) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %943) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %944) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %945) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %945) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %944, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %945)
          to label %5415 unwind label %5440

5415:                                             ; preds = %5414
  invoke void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %943, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %944)
          to label %5416 unwind label %5442

5416:                                             ; preds = %5415
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %942, ptr noundef nonnull align 8 dereferenceable(16) %943)
          to label %5417 unwind label %5444

5417:                                             ; preds = %5416
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %946) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %948) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %949) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %950) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %950, ptr noundef nonnull align 8 dereferenceable(32) %5408)
          to label %5418 unwind label %5446

5418:                                             ; preds = %5417
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %951) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %951) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %949, ptr nonnull %950, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %951)
          to label %5419 unwind label %5448

5419:                                             ; preds = %5418
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %948, ptr noundef nonnull align 8 dereferenceable(24) %949)
          to label %5420 unwind label %5450

5420:                                             ; preds = %5419
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %947, ptr noundef nonnull align 8 dereferenceable(16) %948)
          to label %5421 unwind label %5452

5421:                                             ; preds = %5420
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %952, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5422 unwind label %5454

5422:                                             ; preds = %5421
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %946, i32 noundef 11, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %947, ptr noundef nonnull %952)
          to label %5423 unwind label %5456

5423:                                             ; preds = %5422
  %5424 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %300, ptr noundef nonnull align 8 dereferenceable(32) %5408)
          to label %5425 unwind label %5458

5425:                                             ; preds = %5423
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %953) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %953)
          to label %5426 unwind label %5460

5426:                                             ; preds = %5425
  %5427 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %299, ptr noundef nonnull align 8 dereferenceable(32) %5408)
          to label %5428 unwind label %5462

5428:                                             ; preds = %5426
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %939, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %940, ptr noundef nonnull align 8 dereferenceable(16) %941, ptr noundef nonnull align 4 dereferenceable(20) %942, ptr noundef nonnull align 8 dereferenceable(16) %946, ptr noundef nonnull align 8 dereferenceable(16) %5424, ptr noundef nonnull align 8 dereferenceable(16) %953, ptr noundef nonnull align 8 dereferenceable(16) %5427, i1 noundef zeroext false)
          to label %5429 unwind label %5462

5429:                                             ; preds = %5428
  %5430 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %939)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %938, ptr noundef nonnull align 8 dereferenceable(136) %5430)
          to label %5431 unwind label %5464

5431:                                             ; preds = %5429
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5412, ptr noundef nonnull %938)
          to label %5432 unwind label %5466

5432:                                             ; preds = %5431
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %938) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %939) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %953) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %953) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %946) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %952) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %947) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %948) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %949) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %951) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %951) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %950) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %950) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %949) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %948) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %946) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %942) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %943) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %944) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %945) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %945) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %944) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %943) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %942) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %941) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %941) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %940) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %940) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %939) #11
  %5433 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %936)
          to label %5393 unwind label %5403

5434:                                             ; preds = %5405
  %5435 = landingpad { ptr, i32 }
          cleanup
  br label %5481

5436:                                             ; preds = %5407
  %5437 = landingpad { ptr, i32 }
          cleanup
  br label %5480

5438:                                             ; preds = %5413
  %5439 = landingpad { ptr, i32 }
          cleanup
  br label %5479

5440:                                             ; preds = %5414
  %5441 = landingpad { ptr, i32 }
          cleanup
  br label %5478

5442:                                             ; preds = %5415
  %5443 = landingpad { ptr, i32 }
          cleanup
  br label %5477

5444:                                             ; preds = %5416
  %5445 = landingpad { ptr, i32 }
          cleanup
  br label %5476

5446:                                             ; preds = %5417
  %5447 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2659

5448:                                             ; preds = %5418
  %5449 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2659.loopexit

5450:                                             ; preds = %5419
  %5451 = landingpad { ptr, i32 }
          cleanup
  br label %5475

5452:                                             ; preds = %5420
  %5453 = landingpad { ptr, i32 }
          cleanup
  br label %5474

5454:                                             ; preds = %5421
  %5455 = landingpad { ptr, i32 }
          cleanup
  br label %5473

5456:                                             ; preds = %5422
  %5457 = landingpad { ptr, i32 }
          cleanup
  br label %5472

5458:                                             ; preds = %5423
  %5459 = landingpad { ptr, i32 }
          cleanup
  br label %5471

5460:                                             ; preds = %5425
  %5461 = landingpad { ptr, i32 }
          cleanup
  br label %5470

5462:                                             ; preds = %5428, %5426
  %5463 = landingpad { ptr, i32 }
          cleanup
  br label %5469

5464:                                             ; preds = %5429
  %5465 = landingpad { ptr, i32 }
          cleanup
  br label %5468

5466:                                             ; preds = %5431
  %5467 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %938) #11
  br label %5468

5468:                                             ; preds = %5466, %5464
  %.pn1971 = phi { ptr, i32 } [ %5467, %5466 ], [ %5465, %5464 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %939) #11
  br label %5469

5469:                                             ; preds = %5468, %5462
  %.pn1971.pn = phi { ptr, i32 } [ %.pn1971, %5468 ], [ %5463, %5462 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %953) #11
  br label %5470

5470:                                             ; preds = %5469, %5460
  %.pn1971.pn.pn = phi { ptr, i32 } [ %.pn1971.pn, %5469 ], [ %5461, %5460 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %953) #11
  br label %5471

5471:                                             ; preds = %5470, %5458
  %.pn1971.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn, %5470 ], [ %5459, %5458 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %946) #11
  br label %5472

5472:                                             ; preds = %5471, %5456
  %.pn1971.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn, %5471 ], [ %5457, %5456 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %952) #11
  br label %5473

5473:                                             ; preds = %5472, %5454
  %.pn1971.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn, %5472 ], [ %5455, %5454 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %947) #11
  br label %5474

5474:                                             ; preds = %5473, %5452
  %.pn1971.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn, %5473 ], [ %5453, %5452 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %948) #11
  br label %5475

5475:                                             ; preds = %5474, %5450
  %.pn1971.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn.pn, %5474 ], [ %5451, %5450 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %949) #11
  br label %.loopexit2659.loopexit

.loopexit2659.loopexit:                           ; preds = %5475, %5448
  %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn.pn.pn, %5475 ], [ %5449, %5448 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %951) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %951) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %950) #11
  br label %.loopexit2659

.loopexit2659:                                    ; preds = %.loopexit2659.loopexit, %5446
  %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %5447, %5446 ], [ %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2659.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %950) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %949) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %948) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %946) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %942) #11
  br label %5476

5476:                                             ; preds = %.loopexit2659, %5444
  %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2659 ], [ %5445, %5444 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %943) #11
  br label %5477

5477:                                             ; preds = %5476, %5442
  %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5476 ], [ %5443, %5442 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %944) #11
  br label %5478

5478:                                             ; preds = %5477, %5440
  %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5477 ], [ %5441, %5440 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %945) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %945) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %944) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %943) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %942) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %941) #11
  br label %5479

5479:                                             ; preds = %5478, %5438
  %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5478 ], [ %5439, %5438 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %941) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %940) #11
  br label %5480

5480:                                             ; preds = %5479, %5436
  %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5479 ], [ %5437, %5436 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %940) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %939) #11
  br label %5481

5481:                                             ; preds = %5434, %5480, %5403
  %.pn1988 = phi { ptr, i32 } [ %5404, %5403 ], [ %.pn1971.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5480 ], [ %5435, %5434 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %937) #11
  br label %5482

5482:                                             ; preds = %5481, %5401
  %.pn1988.pn = phi { ptr, i32 } [ %.pn1988, %5481 ], [ %5402, %5401 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %936) #11
  br label %5931

5483:                                             ; preds = %5396
  %5484 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %5398)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %954) #11
  %5485 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %5484)
          to label %5486 unwind label %5500

5486:                                             ; preds = %5483
  %5487 = extractvalue { ptr, i64 } %5485, 0
  store ptr %5487, ptr %954, align 8
  %5488 = extractvalue { ptr, i64 } %5485, 1
  store i64 %5488, ptr %1926, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %955) #11
  %5489 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %5484)
  %5490 = extractvalue { ptr, i64 } %5489, 0
  store ptr %5490, ptr %955, align 8
  %5491 = extractvalue { ptr, i64 } %5489, 1
  store i64 %5491, ptr %1927, align 8
  br label %5492

5492:                                             ; preds = %5535, %5486
  %5493 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %954, ptr noundef nonnull align 8 dereferenceable(16) %955)
          to label %5494 unwind label %5502

5494:                                             ; preds = %5492
  br i1 %5493, label %5504, label %5495

5495:                                             ; preds = %5494
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %955) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %954) #11
  %5496 = call noundef ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_INS1_IS8_SA_EEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1887)
  %5497 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_INS0_IS8_SA_EEEEEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200) %5496, ptr noundef nonnull align 8 dereferenceable(16) %207)
          to label %5596 unwind label %5612

5498:                                             ; preds = %5396
  %5499 = landingpad { ptr, i32 }
          cleanup
  br label %5931

5500:                                             ; preds = %5483
  %5501 = landingpad { ptr, i32 }
          cleanup
  br label %5595

5502:                                             ; preds = %5535, %5492
  %5503 = landingpad { ptr, i32 }
          cleanup
  br label %5594

5504:                                             ; preds = %5494
  %5505 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %954)
          to label %5506 unwind label %5537

5506:                                             ; preds = %5504
  %5507 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %5505) #11
  %5508 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %5505) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %956) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %957, ptr noundef nonnull align 8 dereferenceable(16) %5508)
          to label %5509 unwind label %5539

5509:                                             ; preds = %5506
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %956, ptr noundef nonnull %957, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5510 unwind label %5541

5510:                                             ; preds = %5509
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %957) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %958) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %959)
          to label %5511 unwind label %5543

5511:                                             ; preds = %5510
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %960)
          to label %5512 unwind label %5545

5512:                                             ; preds = %5511
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %958, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(16) %5508, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %959, ptr noundef nonnull %960)
          to label %5513 unwind label %5547

5513:                                             ; preds = %5512
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %960) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %959) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %961) #11
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %961, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %958, ptr noundef nonnull align 8 dereferenceable(16) %956)
          to label %5514 unwind label %5550

5514:                                             ; preds = %5513
  %5515 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5516 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5515)
  %5517 = icmp sgt i64 %5516, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %963) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %964) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %964)
          to label %5518 unwind label %5552

5518:                                             ; preds = %5514
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %965) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %965, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5519 unwind label %5554

5519:                                             ; preds = %5518
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %966) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %966, ptr noundef nonnull align 8 dereferenceable(16) %961)
          to label %5520 unwind label %5556

5520:                                             ; preds = %5519
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %967) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %969) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %970) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %971) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %971, ptr noundef nonnull align 8 dereferenceable(32) %5507)
          to label %5521 unwind label %5558

5521:                                             ; preds = %5520
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %972) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %972) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %970, ptr nonnull %971, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %972)
          to label %5522 unwind label %5560

5522:                                             ; preds = %5521
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %969, ptr noundef nonnull align 8 dereferenceable(24) %970)
          to label %5523 unwind label %5562

5523:                                             ; preds = %5522
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %968, ptr noundef nonnull align 8 dereferenceable(16) %969)
          to label %5524 unwind label %5564

5524:                                             ; preds = %5523
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %973, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5525 unwind label %5566

5525:                                             ; preds = %5524
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %967, i32 noundef 13, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %968, ptr noundef nonnull %973)
          to label %5526 unwind label %5568

5526:                                             ; preds = %5525
  %5527 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %313, ptr noundef nonnull align 8 dereferenceable(32) %5507)
          to label %5528 unwind label %5570

5528:                                             ; preds = %5526
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %974) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %974)
          to label %5529 unwind label %5572

5529:                                             ; preds = %5528
  %5530 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %312, ptr noundef nonnull align 8 dereferenceable(32) %5507)
          to label %5531 unwind label %5574

5531:                                             ; preds = %5529
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %963, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %964, ptr noundef nonnull align 8 dereferenceable(16) %965, ptr noundef nonnull align 4 dereferenceable(20) %966, ptr noundef nonnull align 8 dereferenceable(16) %967, ptr noundef nonnull align 8 dereferenceable(16) %5527, ptr noundef nonnull align 8 dereferenceable(16) %974, ptr noundef nonnull align 8 dereferenceable(16) %5530, i1 noundef zeroext false)
          to label %5532 unwind label %5574

5532:                                             ; preds = %5531
  %5533 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %963)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %962, ptr noundef nonnull align 8 dereferenceable(136) %5533)
          to label %5534 unwind label %5576

5534:                                             ; preds = %5532
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5517, ptr noundef nonnull %962)
          to label %5535 unwind label %5578

5535:                                             ; preds = %5534
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %962) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %963) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %974) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %974) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %967) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %973) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %968) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %969) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %970) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %972) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %972) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %971) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %971) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %970) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %969) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %967) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %966) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %966) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %965) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %965) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %964) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %964) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %963) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %961) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %961) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %958) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %958) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %956) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %956) #11
  %5536 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %954)
          to label %5492 unwind label %5502

5537:                                             ; preds = %5504
  %5538 = landingpad { ptr, i32 }
          cleanup
  br label %5594

5539:                                             ; preds = %5506
  %5540 = landingpad { ptr, i32 }
          cleanup
  br label %5593

5541:                                             ; preds = %5509
  %5542 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %957) #11
  br label %5593

5543:                                             ; preds = %5510
  %5544 = landingpad { ptr, i32 }
          cleanup
  br label %5592

5545:                                             ; preds = %5511
  %5546 = landingpad { ptr, i32 }
          cleanup
  br label %5549

5547:                                             ; preds = %5512
  %5548 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %960) #11
  br label %5549

5549:                                             ; preds = %5547, %5545
  %.pn1947 = phi { ptr, i32 } [ %5548, %5547 ], [ %5546, %5545 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %959) #11
  br label %5592

5550:                                             ; preds = %5513
  %5551 = landingpad { ptr, i32 }
          cleanup
  br label %5591

5552:                                             ; preds = %5514
  %5553 = landingpad { ptr, i32 }
          cleanup
  br label %5590

5554:                                             ; preds = %5518
  %5555 = landingpad { ptr, i32 }
          cleanup
  br label %5589

5556:                                             ; preds = %5519
  %5557 = landingpad { ptr, i32 }
          cleanup
  br label %5588

5558:                                             ; preds = %5520
  %5559 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2660

5560:                                             ; preds = %5521
  %5561 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2660.loopexit

5562:                                             ; preds = %5522
  %5563 = landingpad { ptr, i32 }
          cleanup
  br label %5587

5564:                                             ; preds = %5523
  %5565 = landingpad { ptr, i32 }
          cleanup
  br label %5586

5566:                                             ; preds = %5524
  %5567 = landingpad { ptr, i32 }
          cleanup
  br label %5585

5568:                                             ; preds = %5525
  %5569 = landingpad { ptr, i32 }
          cleanup
  br label %5584

5570:                                             ; preds = %5526
  %5571 = landingpad { ptr, i32 }
          cleanup
  br label %5583

5572:                                             ; preds = %5528
  %5573 = landingpad { ptr, i32 }
          cleanup
  br label %5582

5574:                                             ; preds = %5531, %5529
  %5575 = landingpad { ptr, i32 }
          cleanup
  br label %5581

5576:                                             ; preds = %5532
  %5577 = landingpad { ptr, i32 }
          cleanup
  br label %5580

5578:                                             ; preds = %5534
  %5579 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %962) #11
  br label %5580

5580:                                             ; preds = %5578, %5576
  %.pn1949 = phi { ptr, i32 } [ %5579, %5578 ], [ %5577, %5576 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %963) #11
  br label %5581

5581:                                             ; preds = %5580, %5574
  %.pn1949.pn = phi { ptr, i32 } [ %.pn1949, %5580 ], [ %5575, %5574 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %974) #11
  br label %5582

5582:                                             ; preds = %5581, %5572
  %.pn1949.pn.pn = phi { ptr, i32 } [ %.pn1949.pn, %5581 ], [ %5573, %5572 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %974) #11
  br label %5583

5583:                                             ; preds = %5582, %5570
  %.pn1949.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn, %5582 ], [ %5571, %5570 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %967) #11
  br label %5584

5584:                                             ; preds = %5583, %5568
  %.pn1949.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn, %5583 ], [ %5569, %5568 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %973) #11
  br label %5585

5585:                                             ; preds = %5584, %5566
  %.pn1949.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn, %5584 ], [ %5567, %5566 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %968) #11
  br label %5586

5586:                                             ; preds = %5585, %5564
  %.pn1949.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn, %5585 ], [ %5565, %5564 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %969) #11
  br label %5587

5587:                                             ; preds = %5586, %5562
  %.pn1949.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn, %5586 ], [ %5563, %5562 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %970) #11
  br label %.loopexit2660.loopexit

.loopexit2660.loopexit:                           ; preds = %5587, %5560
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn.pn, %5587 ], [ %5561, %5560 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %972) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %972) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %971) #11
  br label %.loopexit2660

.loopexit2660:                                    ; preds = %.loopexit2660.loopexit, %5558
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %5559, %5558 ], [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2660.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %971) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %970) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %969) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %967) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %966) #11
  br label %5588

5588:                                             ; preds = %.loopexit2660, %5556
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2660 ], [ %5557, %5556 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %966) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %965) #11
  br label %5589

5589:                                             ; preds = %5588, %5554
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5588 ], [ %5555, %5554 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %965) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %964) #11
  br label %5590

5590:                                             ; preds = %5589, %5552
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5589 ], [ %5553, %5552 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %964) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %963) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %961) #11
  br label %5591

5591:                                             ; preds = %5590, %5550
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5590 ], [ %5551, %5550 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %961) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %958) #11
  br label %5592

5592:                                             ; preds = %5591, %5549, %5543
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5591 ], [ %.pn1947, %5549 ], [ %5544, %5543 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %958) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %956) #11
  br label %5593

5593:                                             ; preds = %5592, %5541, %5539
  %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5592 ], [ %5542, %5541 ], [ %5540, %5539 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %956) #11
  br label %5594

5594:                                             ; preds = %5537, %5593, %5502
  %.pn1967 = phi { ptr, i32 } [ %5503, %5502 ], [ %.pn1949.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5593 ], [ %5538, %5537 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %955) #11
  br label %5595

5595:                                             ; preds = %5594, %5500
  %.pn1967.pn = phi { ptr, i32 } [ %.pn1967, %5594 ], [ %5501, %5500 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %954) #11
  br label %5931

5596:                                             ; preds = %5495
  %5597 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_INS_3VecIS7_EEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %5497)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %975) #11
  %5598 = invoke { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %5597)
          to label %5599 unwind label %5614

5599:                                             ; preds = %5596
  %5600 = extractvalue { ptr, i64 } %5598, 0
  store ptr %5600, ptr %975, align 8
  %5601 = extractvalue { ptr, i64 } %5598, 1
  store i64 %5601, ptr %1928, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %976) #11
  %5602 = call { ptr, i64 } @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %5597)
  %5603 = extractvalue { ptr, i64 } %5602, 0
  store ptr %5603, ptr %976, align 8
  %5604 = extractvalue { ptr, i64 } %5602, 1
  store i64 %5604, ptr %1929, align 8
  br label %5605

5605:                                             ; preds = %5650, %5599
  %5606 = invoke noundef zeroext i1 @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %975, ptr noundef nonnull align 8 dereferenceable(16) %976)
          to label %5607 unwind label %5616

5607:                                             ; preds = %5605
  br i1 %5606, label %5618, label %5608

5608:                                             ; preds = %5607
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %976) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %975) #11
  %5609 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5610 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5609)
  %5611 = icmp sgt i64 %5610, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %998) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %999) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %999)
          to label %5714 unwind label %5739

5612:                                             ; preds = %5495
  %5613 = landingpad { ptr, i32 }
          cleanup
  br label %5931

5614:                                             ; preds = %5596
  %5615 = landingpad { ptr, i32 }
          cleanup
  br label %5713

5616:                                             ; preds = %5650, %5605
  %5617 = landingpad { ptr, i32 }
          cleanup
  br label %5712

5618:                                             ; preds = %5607
  %5619 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %975)
          to label %5620 unwind label %5652

5620:                                             ; preds = %5618
  %5621 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %5619) #11
  %5622 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrINS6_3VecIS5_EEEEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSF_(ptr noundef nonnull align 8 dereferenceable(48) %5619) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %977) #11
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %978, ptr noundef nonnull align 8 dereferenceable(16) %5622)
          to label %5623 unwind label %5654

5623:                                             ; preds = %5620
  invoke void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %977, ptr noundef nonnull %978, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5624 unwind label %5656

5624:                                             ; preds = %5623
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %978) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %979) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %980)
          to label %5625 unwind label %5658

5625:                                             ; preds = %5624
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %981)
          to label %5626 unwind label %5660

5626:                                             ; preds = %5625
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %979, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(16) %5622, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %980, ptr noundef nonnull %981)
          to label %5627 unwind label %5662

5627:                                             ; preds = %5626
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %981) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %980) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %982) #11
  invoke void @_ZN6langcc13CppGenContext33gen_cpp_id_with_template_args_accERKNS_6rc_ptrIN4lang2cc4Node2_TEEERKNS1_INS_3VecIS6_EEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %982, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %979, ptr noundef nonnull align 8 dereferenceable(16) %977)
          to label %5628 unwind label %5665

5628:                                             ; preds = %5627
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %983) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA13_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %983, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(13) @.str.167, ptr noundef nonnull align 8 dereferenceable(16) %982, ptr noundef nonnull align 1 dereferenceable(2) @.str.45)
          to label %5629 unwind label %5667

5629:                                             ; preds = %5628
  %5630 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5631 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5630)
  %5632 = icmp sgt i64 %5631, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %985) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %986) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %986)
          to label %5633 unwind label %5669

5633:                                             ; preds = %5629
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %987) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %987, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5634 unwind label %5671

5634:                                             ; preds = %5633
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %988) #11
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %988, ptr noundef nonnull align 8 dereferenceable(16) %983)
          to label %5635 unwind label %5673

5635:                                             ; preds = %5634
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %989) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %991) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %992) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %993) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %993, ptr noundef nonnull align 8 dereferenceable(32) %5621)
          to label %5636 unwind label %5675

5636:                                             ; preds = %5635
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %994) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %994) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %992, ptr nonnull %993, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %994)
          to label %5637 unwind label %5677

5637:                                             ; preds = %5636
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %991, ptr noundef nonnull align 8 dereferenceable(24) %992)
          to label %5638 unwind label %5679

5638:                                             ; preds = %5637
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EERKSD_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %990, ptr noundef nonnull align 8 dereferenceable(16) %991)
          to label %5639 unwind label %5681

5639:                                             ; preds = %5638
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %995, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5640 unwind label %5683

5640:                                             ; preds = %5639
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %989, i32 noundef 15, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %990, ptr noundef nonnull %995)
          to label %5641 unwind label %5685

5641:                                             ; preds = %5640
  %5642 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %326, ptr noundef nonnull align 8 dereferenceable(32) %5621)
          to label %5643 unwind label %5687

5643:                                             ; preds = %5641
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %996) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %996)
          to label %5644 unwind label %5689

5644:                                             ; preds = %5643
  %5645 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200) %325, ptr noundef nonnull align 8 dereferenceable(32) %5621)
          to label %5646 unwind label %5691

5646:                                             ; preds = %5644
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %985, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %986, ptr noundef nonnull align 8 dereferenceable(16) %987, ptr noundef nonnull align 4 dereferenceable(20) %988, ptr noundef nonnull align 8 dereferenceable(16) %989, ptr noundef nonnull align 8 dereferenceable(16) %5642, ptr noundef nonnull align 8 dereferenceable(16) %996, ptr noundef nonnull align 8 dereferenceable(16) %5645, i1 noundef zeroext false)
          to label %5647 unwind label %5691

5647:                                             ; preds = %5646
  %5648 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %985)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %984, ptr noundef nonnull align 8 dereferenceable(136) %5648)
          to label %5649 unwind label %5693

5649:                                             ; preds = %5647
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5632, ptr noundef nonnull %984)
          to label %5650 unwind label %5695

5650:                                             ; preds = %5649
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %984) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %985) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %996) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %996) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %989) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %995) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %990) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %991) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %992) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %994) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %994) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %993) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %993) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %992) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %991) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %989) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %988) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %988) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %987) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %987) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %986) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %986) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %985) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %983) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %983) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %982) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %982) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %979) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %979) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %977) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %977) #11
  %5651 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11MapIteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %975)
          to label %5605 unwind label %5616

5652:                                             ; preds = %5618
  %5653 = landingpad { ptr, i32 }
          cleanup
  br label %5712

5654:                                             ; preds = %5620
  %5655 = landingpad { ptr, i32 }
          cleanup
  br label %5711

5656:                                             ; preds = %5623
  %5657 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %978) #11
  br label %5711

5658:                                             ; preds = %5624
  %5659 = landingpad { ptr, i32 }
          cleanup
  br label %5710

5660:                                             ; preds = %5625
  %5661 = landingpad { ptr, i32 }
          cleanup
  br label %5664

5662:                                             ; preds = %5626
  %5663 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %981) #11
  br label %5664

5664:                                             ; preds = %5662, %5660
  %.pn1922 = phi { ptr, i32 } [ %5663, %5662 ], [ %5661, %5660 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %980) #11
  br label %5710

5665:                                             ; preds = %5627
  %5666 = landingpad { ptr, i32 }
          cleanup
  br label %5709

5667:                                             ; preds = %5628
  %5668 = landingpad { ptr, i32 }
          cleanup
  br label %5708

5669:                                             ; preds = %5629
  %5670 = landingpad { ptr, i32 }
          cleanup
  br label %5707

5671:                                             ; preds = %5633
  %5672 = landingpad { ptr, i32 }
          cleanup
  br label %5706

5673:                                             ; preds = %5634
  %5674 = landingpad { ptr, i32 }
          cleanup
  br label %5705

5675:                                             ; preds = %5635
  %5676 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2661

5677:                                             ; preds = %5636
  %5678 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2661.loopexit

5679:                                             ; preds = %5637
  %5680 = landingpad { ptr, i32 }
          cleanup
  br label %5704

5681:                                             ; preds = %5638
  %5682 = landingpad { ptr, i32 }
          cleanup
  br label %5703

5683:                                             ; preds = %5639
  %5684 = landingpad { ptr, i32 }
          cleanup
  br label %5702

5685:                                             ; preds = %5640
  %5686 = landingpad { ptr, i32 }
          cleanup
  br label %5701

5687:                                             ; preds = %5641
  %5688 = landingpad { ptr, i32 }
          cleanup
  br label %5700

5689:                                             ; preds = %5643
  %5690 = landingpad { ptr, i32 }
          cleanup
  br label %5699

5691:                                             ; preds = %5646, %5644
  %5692 = landingpad { ptr, i32 }
          cleanup
  br label %5698

5693:                                             ; preds = %5647
  %5694 = landingpad { ptr, i32 }
          cleanup
  br label %5697

5695:                                             ; preds = %5649
  %5696 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %984) #11
  br label %5697

5697:                                             ; preds = %5695, %5693
  %.pn1924 = phi { ptr, i32 } [ %5696, %5695 ], [ %5694, %5693 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %985) #11
  br label %5698

5698:                                             ; preds = %5697, %5691
  %.pn1924.pn = phi { ptr, i32 } [ %.pn1924, %5697 ], [ %5692, %5691 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %996) #11
  br label %5699

5699:                                             ; preds = %5698, %5689
  %.pn1924.pn.pn = phi { ptr, i32 } [ %.pn1924.pn, %5698 ], [ %5690, %5689 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %996) #11
  br label %5700

5700:                                             ; preds = %5699, %5687
  %.pn1924.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn, %5699 ], [ %5688, %5687 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %989) #11
  br label %5701

5701:                                             ; preds = %5700, %5685
  %.pn1924.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn, %5700 ], [ %5686, %5685 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %995) #11
  br label %5702

5702:                                             ; preds = %5701, %5683
  %.pn1924.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn, %5701 ], [ %5684, %5683 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %990) #11
  br label %5703

5703:                                             ; preds = %5702, %5681
  %.pn1924.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn, %5702 ], [ %5682, %5681 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %991) #11
  br label %5704

5704:                                             ; preds = %5703, %5679
  %.pn1924.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn, %5703 ], [ %5680, %5679 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %992) #11
  br label %.loopexit2661.loopexit

.loopexit2661.loopexit:                           ; preds = %5704, %5677
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn, %5704 ], [ %5678, %5677 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %994) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %994) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %993) #11
  br label %.loopexit2661

.loopexit2661:                                    ; preds = %.loopexit2661.loopexit, %5675
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %5676, %5675 ], [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2661.loopexit ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %993) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %992) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %991) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %989) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %988) #11
  br label %5705

5705:                                             ; preds = %.loopexit2661, %5673
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2661 ], [ %5674, %5673 ]
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %988) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %987) #11
  br label %5706

5706:                                             ; preds = %5705, %5671
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5705 ], [ %5672, %5671 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %987) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %986) #11
  br label %5707

5707:                                             ; preds = %5706, %5669
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5706 ], [ %5670, %5669 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %986) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %985) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %983) #11
  br label %5708

5708:                                             ; preds = %5707, %5667
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5707 ], [ %5668, %5667 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %983) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %982) #11
  br label %5709

5709:                                             ; preds = %5708, %5665
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5708 ], [ %5666, %5665 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %982) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %979) #11
  br label %5710

5710:                                             ; preds = %5709, %5664, %5658
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5709 ], [ %.pn1922, %5664 ], [ %5659, %5658 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %979) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %977) #11
  br label %5711

5711:                                             ; preds = %5710, %5656, %5654
  %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5710 ], [ %5657, %5656 ], [ %5655, %5654 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %977) #11
  br label %5712

5712:                                             ; preds = %5652, %5711, %5616
  %.pn1943 = phi { ptr, i32 } [ %5617, %5616 ], [ %.pn1924.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5711 ], [ %5653, %5652 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %976) #11
  br label %5713

5713:                                             ; preds = %5712, %5614
  %.pn1943.pn = phi { ptr, i32 } [ %.pn1943, %5712 ], [ %5615, %5614 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %975) #11
  br label %5931

5714:                                             ; preds = %5608
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1000) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1000, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5715 unwind label %5741

5715:                                             ; preds = %5714
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %1001) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1002) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJA5_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1002, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 1 dereferenceable(5) @.str.18)
          to label %5716 unwind label %5743

5716:                                             ; preds = %5715
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %1001, ptr noundef nonnull align 8 dereferenceable(16) %1002)
          to label %5717 unwind label %5745

5717:                                             ; preds = %5716
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1003) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %1004)
          to label %5718 unwind label %5747

5718:                                             ; preds = %5717
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %1005, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5719 unwind label %5749

5719:                                             ; preds = %5718
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1003, i32 noundef 19, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %1004, ptr noundef nonnull %1005)
          to label %5720 unwind label %5751

5720:                                             ; preds = %5719
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1006) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1006)
          to label %5721 unwind label %5753

5721:                                             ; preds = %5720
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %998, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %999, ptr noundef nonnull align 8 dereferenceable(16) %1000, ptr noundef nonnull align 4 dereferenceable(20) %1001, ptr noundef nonnull align 8 dereferenceable(16) %1003, ptr noundef nonnull align 8 dereferenceable(16) %348, ptr noundef nonnull align 8 dereferenceable(16) %1006, ptr noundef nonnull align 8 dereferenceable(16) %347, i1 noundef zeroext false)
          to label %5722 unwind label %5755

5722:                                             ; preds = %5721
  %5723 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %998)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %997, ptr noundef nonnull align 8 dereferenceable(136) %5723)
          to label %5724 unwind label %5757

5724:                                             ; preds = %5722
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5611, ptr noundef nonnull %997)
          to label %5725 unwind label %5759

5725:                                             ; preds = %5724
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %997) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %998) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1006) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1006) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1003) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1005) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1004) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1003) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1001) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1002) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1002) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1001) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1000) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1000) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %999) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %999) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %998) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1008) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1009) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1010) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1010, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %367)
          to label %5726 unwind label %5771

5726:                                             ; preds = %5725
  invoke void @_ZN6langcc15NodeV_singletonERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1009, ptr noundef nonnull align 8 dereferenceable(16) %1010)
          to label %5727 unwind label %5773

5727:                                             ; preds = %5726
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1011) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1011, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5728 unwind label %5775

5728:                                             ; preds = %5727
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %1012) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1013) #11
  invoke void @_ZN6langcc13CppGenContext7qq_exprIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1013, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(32) %367)
          to label %5729 unwind label %5777

5729:                                             ; preds = %5728
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %1012, ptr noundef nonnull align 8 dereferenceable(16) %1013)
          to label %5730 unwind label %5779

5730:                                             ; preds = %5729
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1014) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %1015)
          to label %5731 unwind label %5781

5731:                                             ; preds = %5730
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %1016, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5732 unwind label %5783

5732:                                             ; preds = %5731
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1014, i32 noundef 17, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %1015, ptr noundef nonnull %1016)
          to label %5733 unwind label %5785

5733:                                             ; preds = %5732
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1017) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1017)
          to label %5734 unwind label %5787

5734:                                             ; preds = %5733
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1008, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %1009, ptr noundef nonnull align 8 dereferenceable(16) %1011, ptr noundef nonnull align 4 dereferenceable(20) %1012, ptr noundef nonnull align 8 dereferenceable(16) %1014, ptr noundef nonnull align 8 dereferenceable(16) %374, ptr noundef nonnull align 8 dereferenceable(16) %1017, ptr noundef nonnull align 8 dereferenceable(16) %373, i1 noundef zeroext false)
          to label %5735 unwind label %5789

5735:                                             ; preds = %5734
  %5736 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1008)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %1007, ptr noundef nonnull align 8 dereferenceable(136) %5736)
          to label %5737 unwind label %5791

5737:                                             ; preds = %5735
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext true, ptr noundef nonnull %1007)
          to label %5738 unwind label %5793

5738:                                             ; preds = %5737
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1007) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1008) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1017) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1017) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1014) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1016) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1015) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1014) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1012) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1013) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1013) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1012) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1011) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1011) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1009) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1010) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1010) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1009) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1008) #11
  br label %5806

5739:                                             ; preds = %5608
  %5740 = landingpad { ptr, i32 }
          cleanup
  br label %5770

5741:                                             ; preds = %5714
  %5742 = landingpad { ptr, i32 }
          cleanup
  br label %5769

5743:                                             ; preds = %5715
  %5744 = landingpad { ptr, i32 }
          cleanup
  br label %5768

5745:                                             ; preds = %5716
  %5746 = landingpad { ptr, i32 }
          cleanup
  br label %5767

5747:                                             ; preds = %5717
  %5748 = landingpad { ptr, i32 }
          cleanup
  br label %5766

5749:                                             ; preds = %5718
  %5750 = landingpad { ptr, i32 }
          cleanup
  br label %5765

5751:                                             ; preds = %5719
  %5752 = landingpad { ptr, i32 }
          cleanup
  br label %5764

5753:                                             ; preds = %5720
  %5754 = landingpad { ptr, i32 }
          cleanup
  br label %5763

5755:                                             ; preds = %5721
  %5756 = landingpad { ptr, i32 }
          cleanup
  br label %5762

5757:                                             ; preds = %5722
  %5758 = landingpad { ptr, i32 }
          cleanup
  br label %5761

5759:                                             ; preds = %5724
  %5760 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %997) #11
  br label %5761

5761:                                             ; preds = %5759, %5757
  %.pn1871 = phi { ptr, i32 } [ %5760, %5759 ], [ %5758, %5757 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %998) #11
  br label %5762

5762:                                             ; preds = %5761, %5755
  %.pn1871.pn = phi { ptr, i32 } [ %.pn1871, %5761 ], [ %5756, %5755 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1006) #11
  br label %5763

5763:                                             ; preds = %5762, %5753
  %.pn1871.pn.pn = phi { ptr, i32 } [ %.pn1871.pn, %5762 ], [ %5754, %5753 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1006) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1003) #11
  br label %5764

5764:                                             ; preds = %5763, %5751
  %.pn1871.pn.pn.pn = phi { ptr, i32 } [ %.pn1871.pn.pn, %5763 ], [ %5752, %5751 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1005) #11
  br label %5765

5765:                                             ; preds = %5764, %5749
  %.pn1871.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1871.pn.pn.pn, %5764 ], [ %5750, %5749 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1004) #11
  br label %5766

5766:                                             ; preds = %5765, %5747
  %.pn1871.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1871.pn.pn.pn.pn, %5765 ], [ %5748, %5747 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1003) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1001) #11
  br label %5767

5767:                                             ; preds = %5766, %5745
  %.pn1871.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1871.pn.pn.pn.pn.pn, %5766 ], [ %5746, %5745 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1002) #11
  br label %5768

5768:                                             ; preds = %5767, %5743
  %.pn1871.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1871.pn.pn.pn.pn.pn.pn, %5767 ], [ %5744, %5743 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1002) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1001) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1000) #11
  br label %5769

5769:                                             ; preds = %5768, %5741
  %.pn1871.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1871.pn.pn.pn.pn.pn.pn.pn, %5768 ], [ %5742, %5741 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1000) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %999) #11
  br label %5770

5770:                                             ; preds = %5769, %5739
  %.pn1871.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1871.pn.pn.pn.pn.pn.pn.pn.pn, %5769 ], [ %5740, %5739 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %999) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %998) #11
  br label %5931

5771:                                             ; preds = %5725
  %5772 = landingpad { ptr, i32 }
          cleanup
  br label %5805

5773:                                             ; preds = %5726
  %5774 = landingpad { ptr, i32 }
          cleanup
  br label %5804

5775:                                             ; preds = %5727
  %5776 = landingpad { ptr, i32 }
          cleanup
  br label %5803

5777:                                             ; preds = %5728
  %5778 = landingpad { ptr, i32 }
          cleanup
  br label %5802

5779:                                             ; preds = %5729
  %5780 = landingpad { ptr, i32 }
          cleanup
  br label %5801

5781:                                             ; preds = %5730
  %5782 = landingpad { ptr, i32 }
          cleanup
  br label %5800

5783:                                             ; preds = %5731
  %5784 = landingpad { ptr, i32 }
          cleanup
  br label %5799

5785:                                             ; preds = %5732
  %5786 = landingpad { ptr, i32 }
          cleanup
  br label %5798

5787:                                             ; preds = %5733
  %5788 = landingpad { ptr, i32 }
          cleanup
  br label %5797

5789:                                             ; preds = %5734
  %5790 = landingpad { ptr, i32 }
          cleanup
  br label %5796

5791:                                             ; preds = %5735
  %5792 = landingpad { ptr, i32 }
          cleanup
  br label %5795

5793:                                             ; preds = %5737
  %5794 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1007) #11
  br label %5795

5795:                                             ; preds = %5793, %5791
  %.pn1882 = phi { ptr, i32 } [ %5794, %5793 ], [ %5792, %5791 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1008) #11
  br label %5796

5796:                                             ; preds = %5795, %5789
  %.pn1882.pn = phi { ptr, i32 } [ %.pn1882, %5795 ], [ %5790, %5789 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1017) #11
  br label %5797

5797:                                             ; preds = %5796, %5787
  %.pn1882.pn.pn = phi { ptr, i32 } [ %.pn1882.pn, %5796 ], [ %5788, %5787 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1017) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1014) #11
  br label %5798

5798:                                             ; preds = %5797, %5785
  %.pn1882.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn, %5797 ], [ %5786, %5785 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1016) #11
  br label %5799

5799:                                             ; preds = %5798, %5783
  %.pn1882.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn.pn, %5798 ], [ %5784, %5783 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1015) #11
  br label %5800

5800:                                             ; preds = %5799, %5781
  %.pn1882.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn.pn.pn, %5799 ], [ %5782, %5781 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1014) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1012) #11
  br label %5801

5801:                                             ; preds = %5800, %5779
  %.pn1882.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn.pn.pn.pn, %5800 ], [ %5780, %5779 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1013) #11
  br label %5802

5802:                                             ; preds = %5801, %5777
  %.pn1882.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn.pn.pn.pn.pn, %5801 ], [ %5778, %5777 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1013) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1012) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1011) #11
  br label %5803

5803:                                             ; preds = %5802, %5775
  %.pn1882.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn.pn.pn.pn.pn.pn, %5802 ], [ %5776, %5775 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1011) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1009) #11
  br label %5804

5804:                                             ; preds = %5803, %5773
  %.pn1882.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn.pn.pn.pn.pn.pn.pn, %5803 ], [ %5774, %5773 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1010) #11
  br label %5805

5805:                                             ; preds = %5804, %5771
  %.pn1882.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1882.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5804 ], [ %5772, %5771 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1010) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1009) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1008) #11
  br label %5931

5806:                                             ; preds = %._crit_edge3628, %5738
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %1018, ptr noundef nonnull align 8 dereferenceable(16) %1914)
          to label %5807 unwind label %4945

5807:                                             ; preds = %5806
  %5808 = invoke noundef zeroext i1 @_ZN6langcc11has_mod_mutENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef nonnull %1018)
          to label %5809 unwind label %5848

5809:                                             ; preds = %5807
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1018) #11
  br i1 %5808, label %5928, label %5810

5810:                                             ; preds = %5809
  %5811 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5812 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5811)
  %5813 = icmp sgt i64 %5812, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1020) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1021) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1021)
          to label %5814 unwind label %5850

5814:                                             ; preds = %5810
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1022) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1022, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5815 unwind label %5852

5815:                                             ; preds = %5814
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %1023) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1024) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1025) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1026) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1027) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1028) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1029) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1029) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1028, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %1029)
          to label %5816 unwind label %5854

5816:                                             ; preds = %5815
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1030) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1030) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %1027, ptr nonnull %1028, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %1030)
          to label %5817 unwind label %5856

5817:                                             ; preds = %5816
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %1026, ptr noundef nonnull align 8 dereferenceable(24) %1027)
          to label %5818 unwind label %5858

5818:                                             ; preds = %5817
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %1025, ptr noundef nonnull align 8 dereferenceable(16) %1026, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %5819 unwind label %5860

5819:                                             ; preds = %5818
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1024, ptr noundef nonnull align 8 dereferenceable(16) %1025)
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %1023, ptr noundef nonnull align 8 dereferenceable(16) %1024)
          to label %5820 unwind label %5862

5820:                                             ; preds = %5819
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1031) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %1032)
          to label %5821 unwind label %5864

5821:                                             ; preds = %5820
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %1033, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5822 unwind label %5866

5822:                                             ; preds = %5821
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1031, i32 noundef 21, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %1032, ptr noundef nonnull %1033)
          to label %5823 unwind label %5868

5823:                                             ; preds = %5822
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1034) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1034)
          to label %5824 unwind label %5870

5824:                                             ; preds = %5823
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1020, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %1021, ptr noundef nonnull align 8 dereferenceable(16) %1022, ptr noundef nonnull align 4 dereferenceable(20) %1023, ptr noundef nonnull align 8 dereferenceable(16) %1031, ptr noundef nonnull align 8 dereferenceable(16) %537, ptr noundef nonnull align 8 dereferenceable(16) %1034, ptr noundef nonnull align 8 dereferenceable(16) %536, i1 noundef zeroext true)
          to label %5825 unwind label %5872

5825:                                             ; preds = %5824
  %5826 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1020)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %1019, ptr noundef nonnull align 8 dereferenceable(136) %5826)
          to label %5827 unwind label %5874

5827:                                             ; preds = %5825
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5813, ptr noundef nonnull %1019)
          to label %5828 unwind label %5876

5828:                                             ; preds = %5827
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1019) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1020) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1034) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1034) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1031) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1033) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1032) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1031) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1023) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1024) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1025) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1026) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1027) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1030) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1030) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1028) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1029) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1029) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1028) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1027) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1026) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1025) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1024) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1023) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1022) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1022) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1021) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1021) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1020) #11
  br i1 %1961, label %5928, label %5829

5829:                                             ; preds = %5828
  %5830 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %216)
  %5831 = call noundef i64 @_ZNK6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64) %5830)
  %5832 = icmp sgt i64 %5831, 0
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1036) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1037) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1037)
          to label %5833 unwind label %5889

5833:                                             ; preds = %5829
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1038) #11
  invoke void @_ZN6langcc17inline_maybe_modsENS_10HeaderModeERNS_18DataCompileContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1038, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %5834 unwind label %5891

5834:                                             ; preds = %5833
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %1039) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1040) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1041) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1042) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1043) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1044) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1045) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1044, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %1045)
          to label %5835 unwind label %5893

5835:                                             ; preds = %5834
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1046) #11
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1046) #11
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %1043, ptr nonnull %1044, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %1046)
          to label %5836 unwind label %5895

5836:                                             ; preds = %5835
  invoke void @_ZN6langcc8name_litERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.0") align 8 %1042, ptr noundef nonnull align 8 dereferenceable(24) %1043)
          to label %5837 unwind label %5897

5837:                                             ; preds = %5836
  invoke void @_ZN6langcc18name_to_cpp_directERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_13CppGenContextE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.78") align 8 %1041, ptr noundef nonnull align 8 dereferenceable(16) %1042, ptr noundef nonnull align 8 dereferenceable(264) %5)
          to label %5838 unwind label %5899

5838:                                             ; preds = %5837
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEC2INS3_4Expr2_TETnPNSt9enable_ifIXsr3std10is_base_ofIS4_T_EE5valueEvE4typeELPv0EEERKNS0_ISA_EE(ptr noundef nonnull align 8 dereferenceable(16) %1040, ptr noundef nonnull align 8 dereferenceable(16) %1041)
  invoke void @_ZN6langcc4SomeINS_6rc_ptrIN4lang2cc4Node2_TEEEEENS_6Option2_TIT_EERKS9_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.117") align 4 %1039, ptr noundef nonnull align 8 dereferenceable(16) %1040)
          to label %5839 unwind label %5901

5839:                                             ; preds = %5838
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1047) #11
  invoke void @_ZN6langcc4NoneINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEENS_6Option2_TIT_EEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.72") align 4 %1048)
          to label %5840 unwind label %5903

5840:                                             ; preds = %5839
  invoke void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::Option::_T.77") align 4 %1049, ptr noundef nonnull align 8 dereferenceable(16) %216)
          to label %5841 unwind label %5905

5841:                                             ; preds = %5840
  invoke void @_ZN6langcc14lower_name_cppENS_7LowerTyERKNS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextENS_6Option2_TISA_EENSG_INS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEEEE(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1047, i32 noundef 23, ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %1048, ptr noundef nonnull %1049)
          to label %5842 unwind label %5907

5842:                                             ; preds = %5841
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1050) #11
  invoke void @_ZN6langcc11NodeV_emptyEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.12") align 8 %1050)
          to label %5843 unwind label %5909

5843:                                             ; preds = %5842
  invoke void @_ZN6langcc13CppGenContext16gen_cpp_fun_bodyERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_SB_RKNS_6Option2_TIS7_EERKS7_SB_SB_SB_b(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.76") align 8 %1036, ptr noundef nonnull align 8 dereferenceable(264) %5, ptr noundef nonnull align 8 dereferenceable(16) %216, ptr noundef nonnull align 8 dereferenceable(16) %1037, ptr noundef nonnull align 8 dereferenceable(16) %1038, ptr noundef nonnull align 4 dereferenceable(20) %1039, ptr noundef nonnull align 8 dereferenceable(16) %1047, ptr noundef nonnull align 8 dereferenceable(16) %510, ptr noundef nonnull align 8 dereferenceable(16) %1050, ptr noundef nonnull align 8 dereferenceable(16) %509, i1 noundef zeroext true)
          to label %5844 unwind label %5911

5844:                                             ; preds = %5843
  %5845 = call noundef ptr @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %1036)
  invoke void @_ZN4lang2cc4Node2_T7as_DeclEv(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.125") align 8 %1035, ptr noundef nonnull align 8 dereferenceable(136) %5845)
          to label %5846 unwind label %5913

5846:                                             ; preds = %5844
  invoke void @_ZN6langcc13CppGenContext8push_defEbNS_6rc_ptrIN4lang2cc4Node4Decl2_TEEE(ptr noundef nonnull align 8 dereferenceable(264) %5, i1 noundef zeroext %5832, ptr noundef nonnull %1035)
          to label %5847 unwind label %5915

5847:                                             ; preds = %5846
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1035) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1036) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1050) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1050) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1047) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1049) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1048) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1047) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1039) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1040) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1041) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1042) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1043) #11
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1046) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1046) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1044) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1045) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1044) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1043) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1042) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1041) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1040) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1039) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1038) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1038) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1037) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1037) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1036) #11
  br label %5928

5848:                                             ; preds = %5807
  %5849 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1018) #11
  br label %5931

5850:                                             ; preds = %5810
  %5851 = landingpad { ptr, i32 }
          cleanup
  br label %5888

5852:                                             ; preds = %5814
  %5853 = landingpad { ptr, i32 }
          cleanup
  br label %5887

5854:                                             ; preds = %5815
  %5855 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2663

5856:                                             ; preds = %5816
  %5857 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2663.loopexit

5858:                                             ; preds = %5817
  %5859 = landingpad { ptr, i32 }
          cleanup
  br label %5886

5860:                                             ; preds = %5818
  %5861 = landingpad { ptr, i32 }
          cleanup
  br label %5885

5862:                                             ; preds = %5819
  %5863 = landingpad { ptr, i32 }
          cleanup
  br label %5884

5864:                                             ; preds = %5820
  %5865 = landingpad { ptr, i32 }
          cleanup
  br label %5883

5866:                                             ; preds = %5821
  %5867 = landingpad { ptr, i32 }
          cleanup
  br label %5882

5868:                                             ; preds = %5822
  %5869 = landingpad { ptr, i32 }
          cleanup
  br label %5881

5870:                                             ; preds = %5823
  %5871 = landingpad { ptr, i32 }
          cleanup
  br label %5880

5872:                                             ; preds = %5824
  %5873 = landingpad { ptr, i32 }
          cleanup
  br label %5879

5874:                                             ; preds = %5825
  %5875 = landingpad { ptr, i32 }
          cleanup
  br label %5878

5876:                                             ; preds = %5827
  %5877 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1019) #11
  br label %5878

5878:                                             ; preds = %5876, %5874
  %.pn1894 = phi { ptr, i32 } [ %5877, %5876 ], [ %5875, %5874 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1020) #11
  br label %5879

5879:                                             ; preds = %5878, %5872
  %.pn1894.pn = phi { ptr, i32 } [ %.pn1894, %5878 ], [ %5873, %5872 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1034) #11
  br label %5880

5880:                                             ; preds = %5879, %5870
  %.pn1894.pn.pn = phi { ptr, i32 } [ %.pn1894.pn, %5879 ], [ %5871, %5870 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1034) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1031) #11
  br label %5881

5881:                                             ; preds = %5880, %5868
  %.pn1894.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn, %5880 ], [ %5869, %5868 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1033) #11
  br label %5882

5882:                                             ; preds = %5881, %5866
  %.pn1894.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn, %5881 ], [ %5867, %5866 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1032) #11
  br label %5883

5883:                                             ; preds = %5882, %5864
  %.pn1894.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn.pn, %5882 ], [ %5865, %5864 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1031) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1023) #11
  br label %5884

5884:                                             ; preds = %5883, %5862
  %.pn1894.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn.pn.pn, %5883 ], [ %5863, %5862 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1024) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1025) #11
  br label %5885

5885:                                             ; preds = %5884, %5860
  %.pn1894.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn.pn.pn.pn, %5884 ], [ %5861, %5860 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1026) #11
  br label %5886

5886:                                             ; preds = %5885, %5858
  %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn.pn.pn.pn.pn, %5885 ], [ %5859, %5858 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1027) #11
  br label %.loopexit2663.loopexit

.loopexit2663.loopexit:                           ; preds = %5886, %5856
  %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn, %5886 ], [ %5857, %5856 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1030) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1030) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1028) #11
  br label %.loopexit2663

.loopexit2663:                                    ; preds = %.loopexit2663.loopexit, %5854
  %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %5855, %5854 ], [ %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2663.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1029) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1029) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1028) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1027) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1026) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1025) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1024) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1023) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1022) #11
  br label %5887

5887:                                             ; preds = %.loopexit2663, %5852
  %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2663 ], [ %5853, %5852 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1022) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1021) #11
  br label %5888

5888:                                             ; preds = %5887, %5850
  %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5887 ], [ %5851, %5850 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1021) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1020) #11
  br label %5931

5889:                                             ; preds = %5829
  %5890 = landingpad { ptr, i32 }
          cleanup
  br label %5927

5891:                                             ; preds = %5833
  %5892 = landingpad { ptr, i32 }
          cleanup
  br label %5926

5893:                                             ; preds = %5834
  %5894 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2662

5895:                                             ; preds = %5835
  %5896 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2662.loopexit

5897:                                             ; preds = %5836
  %5898 = landingpad { ptr, i32 }
          cleanup
  br label %5925

5899:                                             ; preds = %5837
  %5900 = landingpad { ptr, i32 }
          cleanup
  br label %5924

5901:                                             ; preds = %5838
  %5902 = landingpad { ptr, i32 }
          cleanup
  br label %5923

5903:                                             ; preds = %5839
  %5904 = landingpad { ptr, i32 }
          cleanup
  br label %5922

5905:                                             ; preds = %5840
  %5906 = landingpad { ptr, i32 }
          cleanup
  br label %5921

5907:                                             ; preds = %5841
  %5908 = landingpad { ptr, i32 }
          cleanup
  br label %5920

5909:                                             ; preds = %5842
  %5910 = landingpad { ptr, i32 }
          cleanup
  br label %5919

5911:                                             ; preds = %5843
  %5912 = landingpad { ptr, i32 }
          cleanup
  br label %5918

5913:                                             ; preds = %5844
  %5914 = landingpad { ptr, i32 }
          cleanup
  br label %5917

5915:                                             ; preds = %5846
  %5916 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Decl2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1035) #11
  br label %5917

5917:                                             ; preds = %5915, %5913
  %.pn1908 = phi { ptr, i32 } [ %5916, %5915 ], [ %5914, %5913 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1036) #11
  br label %5918

5918:                                             ; preds = %5917, %5911
  %.pn1908.pn = phi { ptr, i32 } [ %.pn1908, %5917 ], [ %5912, %5911 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1050) #11
  br label %5919

5919:                                             ; preds = %5918, %5909
  %.pn1908.pn.pn = phi { ptr, i32 } [ %.pn1908.pn, %5918 ], [ %5910, %5909 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1050) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1047) #11
  br label %5920

5920:                                             ; preds = %5919, %5907
  %.pn1908.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn, %5919 ], [ %5908, %5907 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINS2_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1049) #11
  br label %5921

5921:                                             ; preds = %5920, %5905
  %.pn1908.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn, %5920 ], [ %5906, %5905 ]
  call void @_ZN6langcc6Option2_TINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1048) #11
  br label %5922

5922:                                             ; preds = %5921, %5903
  %.pn1908.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn, %5921 ], [ %5904, %5903 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1047) #11
  call void @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 4 dereferenceable(20) %1039) #11
  br label %5923

5923:                                             ; preds = %5922, %5901
  %.pn1908.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn.pn, %5922 ], [ %5902, %5901 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1040) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1041) #11
  br label %5924

5924:                                             ; preds = %5923, %5899
  %.pn1908.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn.pn.pn, %5923 ], [ %5900, %5899 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1042) #11
  br label %5925

5925:                                             ; preds = %5924, %5897
  %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn.pn.pn.pn, %5924 ], [ %5898, %5897 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1043) #11
  br label %.loopexit2662.loopexit

.loopexit2662.loopexit:                           ; preds = %5925, %5895
  %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn, %5925 ], [ %5896, %5895 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1046) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1046) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1044) #11
  br label %.loopexit2662

.loopexit2662:                                    ; preds = %.loopexit2662.loopexit, %5893
  %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %5894, %5893 ], [ %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2662.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1045) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1044) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1043) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1042) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1041) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1040) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %1039) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1038) #11
  br label %5926

5926:                                             ; preds = %.loopexit2662, %5891
  %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2662 ], [ %5892, %5891 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1038) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1037) #11
  br label %5927

5927:                                             ; preds = %5926, %5889
  %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5926 ], [ %5890, %5889 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1037) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1036) #11
  br label %5931

5928:                                             ; preds = %5828, %5847, %5809
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %839) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %839) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %538) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %538) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %537) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %537) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %536) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %536) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %533) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %533) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %530) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %530) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %527) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %527) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %525) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %525) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %517) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %517) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %511) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %511) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %510) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %510) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %509) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %509) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %506) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %506) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %503) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %503) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %501) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %501) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %493) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %493) #11
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry6Method2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %467) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %467) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %412) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %412) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %407) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %407) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %402) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %402) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %401) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %401) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %400) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %400) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %399) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %399) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %393) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %393) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %385) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %385) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %375) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %375) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %374) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %374) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %373) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %373) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %371) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %371) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %359) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %359) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %349) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %349) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %348) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %348) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %347) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %347) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %345) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %345) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %337) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %337) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %326) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %326) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %325) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %325) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %324) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %324) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %313) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %313) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %312) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %312) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %311) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %311) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %300) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %300) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %299) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %299) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %298) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %298) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %282) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %282) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %281) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %281) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %280) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %280) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %279) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %279) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %278) #11
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %278) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %274) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %274) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %273) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %273) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %269) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %269) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %268) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %266) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %266) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %258) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %258) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %254) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %254) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %253) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %253) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %252) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %252) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %250) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %250) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %226) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %226) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %225) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %225) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %224) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %224) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %222) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %222) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESI_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %219) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %219) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %218) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %216) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %216) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %213) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %213) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %210) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %210) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %208) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %208) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %207) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %207) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %205) #11
  %5929 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %203) #11
  %5930 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIllESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull align 8 dereferenceable(8) %204) #11
  br i1 %5930, label %1939, label %._crit_edge3631

5931:                                             ; preds = %5612, %5713, %5498, %5595, %5399, %5482, %5927, %5888, %5848, %5805, %5770, %5381, %5154, %5111, %5085, %5050, %4977, %4972, %4956, %4945
  %.pn1988.pn.pn.pn = phi { ptr, i32 } [ %.pn1908.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5927 ], [ %.pn1894.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5888 ], [ %5849, %5848 ], [ %4946, %4945 ], [ %.pn1882.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5805 ], [ %.pn1871.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5770 ], [ %.pn1848.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5381 ], [ %.pn1810.pn.pn.pn.pn.pn, %5154 ], [ %.pn1792.pn.pn.pn.pn.pn.pn.pn, %5111 ], [ %.pn1780.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5085 ], [ %.pn1776.pn.pn, %5050 ], [ %.pn1774, %4977 ], [ %.pn1772, %4972 ], [ %.pn1769.pn, %4956 ], [ %.pn1988.pn, %5482 ], [ %5400, %5399 ], [ %.pn1967.pn, %5595 ], [ %5499, %5498 ], [ %.pn1943.pn, %5713 ], [ %5613, %5612 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %839) #11
  br label %5932

5932:                                             ; preds = %5931, %4943
  %.pn1988.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1988.pn.pn.pn, %5931 ], [ %4944, %4943 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %839) #11
  br label %5933

5933:                                             ; preds = %4728, %4798, %4647, %4713, %4564, %4631, %5932, %4926, %4909, %4904, %4889, %4873, %4844, %4546, %4382, %4356, %4351, %4325, %4037, %3979, %3962, %3943, %3920, %3918, %3893
  %.pn2213.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn, %3893 ], [ %.pn2112.pn.pn.pn.pn.pn.pn.pn.pn, %4037 ], [ %.pn2085.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4325 ], [ %.pn1988.pn.pn.pn.pn, %5932 ], [ %.pn1765.pn.pn, %4926 ], [ %.pn1763, %4909 ], [ %.pn1758.pn.pn.pn, %4904 ], [ %4890, %4889 ], [ %3919, %3918 ], [ %.pn1748.pn.pn.pn.pn.pn.pn.pn.pn, %4873 ], [ %.pn1739.pn.pn.pn.pn.pn.pn.pn, %4844 ], [ %.pn1720.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4546 ], [ %.pn1688.pn.pn.pn.pn.pn.pn.pn, %4382 ], [ %.pn1686, %4356 ], [ %.pn1684, %4351 ], [ %.pn1678.pn.pn, %3979 ], [ %.pn1674.pn.pn, %3962 ], [ %.pn1668.pn.pn.pn.pn, %3943 ], [ %3921, %3920 ], [ %.pn2043.pn, %4631 ], [ %4565, %4564 ], [ %.pn2025.pn, %4713 ], [ %4648, %4647 ], [ %.pn2008.pn, %4798 ], [ %4729, %4728 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %538) #11
  br label %5934

5934:                                             ; preds = %5933, %3371
  %.pn2213.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn, %5933 ], [ %.pn1641.pn.pn, %3371 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %538) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %537) #11
  br label %5935

5935:                                             ; preds = %5934, %3359
  %.pn2213.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn, %5934 ], [ %3360, %3359 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %537) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %536) #11
  br label %5936

5936:                                             ; preds = %5935, %3357
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn, %5935 ], [ %3358, %3357 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %536) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %533) #11
  br label %5937

5937:                                             ; preds = %5936, %3356, %3350
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn, %5936 ], [ %.pn1639, %3356 ], [ %3351, %3350 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %533) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %530) #11
  br label %5938

5938:                                             ; preds = %5937, %3349, %3343
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5937 ], [ %.pn1637, %3349 ], [ %3344, %3343 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %530) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %527) #11
  br label %5939

5939:                                             ; preds = %5938, %3342, %3336
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5938 ], [ %.pn1635, %3342 ], [ %3337, %3336 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %527) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %525) #11
  br label %5940

5940:                                             ; preds = %5939, %3334, %3332
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5939 ], [ %3335, %3334 ], [ %3333, %3332 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %525) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %517) #11
  br label %5941

5941:                                             ; preds = %5940, %3331
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5940 ], [ %.pn1630.pn.pn.pn, %3331 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %517) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %511) #11
  br label %5942

5942:                                             ; preds = %5941, %3319
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5941 ], [ %.pn1626.pn.pn, %3319 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %511) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %510) #11
  br label %5943

5943:                                             ; preds = %5942, %3307
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5942 ], [ %3308, %3307 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %510) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %509) #11
  br label %5944

5944:                                             ; preds = %5943, %3305
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5943 ], [ %3306, %3305 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %509) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %506) #11
  br label %5945

5945:                                             ; preds = %5944, %3304, %3298
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5944 ], [ %.pn1624, %3304 ], [ %3299, %3298 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %506) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %503) #11
  br label %5946

5946:                                             ; preds = %5945, %3297, %3291
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5945 ], [ %.pn1622, %3297 ], [ %3292, %3291 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %503) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %501) #11
  br label %5947

5947:                                             ; preds = %5946, %3289, %3287
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5946 ], [ %3290, %3289 ], [ %3288, %3287 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %501) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %493) #11
  br label %5948

5948:                                             ; preds = %5947, %3286
  %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5947 ], [ %.pn1617.pn.pn.pn, %3286 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %493) #11
  br label %5949

5949:                                             ; preds = %5948, %3213
  %.pn2259.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2259.pn.pn.pn.pn.pn, %3213 ], [ %.pn2213.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5948 ]
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry6Method2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %467) #11
  br label %5950

5950:                                             ; preds = %5949, %3047, %3045
  %.pn2259.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2259.pn.pn.pn.pn.pn.pn, %5949 ], [ %3048, %3047 ], [ %3046, %3045 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %467) #11
  br label %5951

5951:                                             ; preds = %5950, %3044, %3009, %2930, %2925, %2893
  %.pn2281.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn, %2893 ], [ %.pn2259.pn.pn.pn.pn.pn.pn.pn, %5950 ], [ %.pn1609.pn.pn.pn.pn.pn, %3044 ], [ %.pn1603, %2930 ], [ %.pn1597.pn.pn.pn.pn, %3009 ], [ %.pn1576.pn.pn.pn.pn, %2925 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %412) #11
  br label %5952

5952:                                             ; preds = %5951, %2810
  %.pn2281.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn, %5951 ], [ %.pn1570.pn.pn.pn.pn, %2810 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %412) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %407) #11
  br label %5953

5953:                                             ; preds = %5952, %2793
  %.pn2281.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn, %5952 ], [ %.pn1567.pn, %2793 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %407) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %402) #11
  br label %5954

5954:                                             ; preds = %5953, %2785
  %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn.pn, %5953 ], [ %.pn1564.pn, %2785 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %402) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %401) #11
  br label %5955

5955:                                             ; preds = %5954, %2776
  %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn, %5954 ], [ %2777, %2776 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %401) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %400) #11
  br label %5956

5956:                                             ; preds = %5955, %2774
  %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5955 ], [ %2775, %2774 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %400) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node4Expr2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %399) #11
  br label %5957

5957:                                             ; preds = %5956, %2772
  %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5956 ], [ %2773, %2772 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %399) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %393) #11
  br label %5958

5958:                                             ; preds = %5957, %.loopexit2668
  %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5957 ], [ %.pn1559.pn.pn2642, %.loopexit2668 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %393) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %385) #11
  br label %5959

5959:                                             ; preds = %5958, %2763
  %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5958 ], [ %.pn1554.pn.pn.pn, %2763 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %385) #11
  br label %5960

5960:                                             ; preds = %2666, %2708, %5959
  %.pn2304.pn.pn.pn = phi { ptr, i32 } [ %.pn2281.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5959 ], [ %.pn2304.pn, %2708 ], [ %2667, %2666 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %375) #11
  br label %5961

5961:                                             ; preds = %5960, %2664
  %.pn2304.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2304.pn.pn.pn, %5960 ], [ %2665, %2664 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %375) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %374) #11
  br label %5962

5962:                                             ; preds = %5961, %2662
  %.pn2304.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2304.pn.pn.pn.pn, %5961 ], [ %2663, %2662 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %374) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %373) #11
  br label %5963

5963:                                             ; preds = %5962, %2660
  %.pn2304.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2304.pn.pn.pn.pn.pn, %5962 ], [ %2661, %2660 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %373) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %371) #11
  br label %5964

5964:                                             ; preds = %5963, %2658, %2656
  %.pn2304.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2304.pn.pn.pn.pn.pn.pn, %5963 ], [ %2659, %2658 ], [ %2657, %2656 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %371) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #11
  br label %5965

5965:                                             ; preds = %5964, %2655, %2649
  %.pn2304.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2304.pn.pn.pn.pn.pn.pn.pn, %5964 ], [ %.pn1552, %2655 ], [ %2650, %2649 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %359) #11
  br label %5966

5966:                                             ; preds = %5965, %2648
  %.pn2304.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2304.pn.pn.pn.pn.pn.pn.pn.pn, %5965 ], [ %.pn1547.pn.pn.pn, %2648 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %359) #11
  br label %5967

5967:                                             ; preds = %2564, %2606, %5966
  %.pn2323.pn.pn.pn = phi { ptr, i32 } [ %.pn2304.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5966 ], [ %.pn2323.pn, %2606 ], [ %2565, %2564 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %349) #11
  br label %5968

5968:                                             ; preds = %5967, %2562
  %.pn2323.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2323.pn.pn.pn, %5967 ], [ %2563, %2562 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %349) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %348) #11
  br label %5969

5969:                                             ; preds = %5968, %2560
  %.pn2323.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2323.pn.pn.pn.pn, %5968 ], [ %2561, %2560 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %348) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %347) #11
  br label %5970

5970:                                             ; preds = %5969, %2558
  %.pn2323.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2323.pn.pn.pn.pn.pn, %5969 ], [ %2559, %2558 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %347) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %345) #11
  br label %5971

5971:                                             ; preds = %5970, %2556, %2554
  %.pn2323.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2323.pn.pn.pn.pn.pn.pn, %5970 ], [ %2557, %2556 ], [ %2555, %2554 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %345) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %337) #11
  br label %5972

5972:                                             ; preds = %5971, %2553
  %.pn2323.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2323.pn.pn.pn.pn.pn.pn.pn, %5971 ], [ %.pn1542.pn.pn.pn, %2553 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %337) #11
  br label %5973

5973:                                             ; preds = %2464, %2514, %5972
  %.pn2345.pn.pn.pn = phi { ptr, i32 } [ %.pn2323.pn.pn.pn.pn.pn.pn.pn.pn, %5972 ], [ %.pn2345.pn, %2514 ], [ %2465, %2464 ]
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %326) #11
  br label %5974

5974:                                             ; preds = %5973, %2462
  %.pn2345.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2345.pn.pn.pn, %5973 ], [ %2463, %2462 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %326) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %325) #11
  br label %5975

5975:                                             ; preds = %5974, %2460
  %.pn2345.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2345.pn.pn.pn.pn, %5974 ], [ %2461, %2460 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %325) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %324) #11
  br label %5976

5976:                                             ; preds = %5975, %2458
  %.pn2345.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2345.pn.pn.pn.pn.pn, %5975 ], [ %2459, %2458 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %324) #11
  br label %5977

5977:                                             ; preds = %2387, %2437, %5976
  %.pn2365.pn.pn.pn = phi { ptr, i32 } [ %.pn2345.pn.pn.pn.pn.pn.pn, %5976 ], [ %.pn2365.pn, %2437 ], [ %2388, %2387 ]
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %313) #11
  br label %5978

5978:                                             ; preds = %5977, %2385
  %.pn2365.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2365.pn.pn.pn, %5977 ], [ %2386, %2385 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %313) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %312) #11
  br label %5979

5979:                                             ; preds = %5978, %2383
  %.pn2365.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2365.pn.pn.pn.pn, %5978 ], [ %2384, %2383 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %312) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %311) #11
  br label %5980

5980:                                             ; preds = %5979, %2381
  %.pn2365.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2365.pn.pn.pn.pn.pn, %5979 ], [ %2382, %2381 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %311) #11
  br label %5981

5981:                                             ; preds = %2310, %2360, %5980
  %.pn2385.pn.pn.pn = phi { ptr, i32 } [ %.pn2365.pn.pn.pn.pn.pn.pn, %5980 ], [ %.pn2385.pn, %2360 ], [ %2311, %2310 ]
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %300) #11
  br label %5982

5982:                                             ; preds = %5981, %2308
  %.pn2385.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2385.pn.pn.pn, %5981 ], [ %2309, %2308 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %300) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %299) #11
  br label %5983

5983:                                             ; preds = %5982, %2306
  %.pn2385.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2385.pn.pn.pn.pn, %5982 ], [ %2307, %2306 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %299) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %298) #11
  br label %5984

5984:                                             ; preds = %5983, %2304
  %.pn2385.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2385.pn.pn.pn.pn.pn, %5983 ], [ %2305, %2304 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %298) #11
  br label %5985

5985:                                             ; preds = %5984, %2284
  %.pn2405.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn, %2284 ], [ %.pn2385.pn.pn.pn.pn.pn.pn, %5984 ]
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %282) #11
  br label %5986

5986:                                             ; preds = %5985, %2212
  %.pn2405.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn, %5985 ], [ %2213, %2212 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %282) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %281) #11
  br label %5987

5987:                                             ; preds = %5986, %2210
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn, %5986 ], [ %2211, %2210 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %281) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %280) #11
  br label %5988

5988:                                             ; preds = %5987, %2208
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn, %5987 ], [ %2209, %2208 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %280) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %279) #11
  br label %5989

5989:                                             ; preds = %5988, %2206
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5988 ], [ %2207, %2206 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %279) #11
  call void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200) %278) #11
  br label %5990

5990:                                             ; preds = %5989, %2204
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5989 ], [ %2205, %2204 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %278) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %274) #11
  br label %5991

5991:                                             ; preds = %5990, %2203, %2197
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5990 ], [ %.pn1539, %2203 ], [ %2198, %2197 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %274) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %273) #11
  br label %5992

5992:                                             ; preds = %5991, %2195
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5991 ], [ %2196, %2195 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %273) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %269) #11
  br label %5993

5993:                                             ; preds = %5992, %2194
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5992 ], [ %.pn1536.pn, %2194 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %269) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %268) #11
  br label %5994

5994:                                             ; preds = %5993, %2185
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5993 ], [ %2186, %2185 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %268) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %266) #11
  br label %5995

5995:                                             ; preds = %5994, %2183, %2181
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5994 ], [ %2184, %2183 ], [ %2182, %2181 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %266) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %258) #11
  br label %5996

5996:                                             ; preds = %5995, %2180
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5995 ], [ %.pn1531.pn.pn.pn, %2180 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %258) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %254) #11
  br label %5997

5997:                                             ; preds = %5996, %2168, %2162
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5996 ], [ %.pn1529, %2168 ], [ %2163, %2162 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %254) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %253) #11
  br label %5998

5998:                                             ; preds = %5997, %2160
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5997 ], [ %2161, %2160 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %253) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %252) #11
  br label %5999

5999:                                             ; preds = %5998, %2158
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5998 ], [ %2159, %2158 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %252) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %250) #11
  br label %6000

6000:                                             ; preds = %5999, %2156, %2154
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5999 ], [ %2157, %2156 ], [ %2155, %2154 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %250) #11
  br label %6001

6001:                                             ; preds = %6000, %2122, %2100, %2080
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6000 ], [ %.pn1524.pn.pn.pn, %2122 ], [ %2101, %2100 ], [ %.pn1513.pn.pn.pn.pn.pn.pn.pn, %2080 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %226) #11
  br label %6002

6002:                                             ; preds = %6001, %2037
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6001 ], [ %2038, %2037 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %226) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %225) #11
  br label %6003

6003:                                             ; preds = %6002, %2035
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6002 ], [ %2036, %2035 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %225) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %224) #11
  br label %6004

6004:                                             ; preds = %6003, %2033
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6003 ], [ %2034, %2033 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %224) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %222) #11
  br label %6005

6005:                                             ; preds = %6004, %2031, %2029
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6004 ], [ %2032, %2031 ], [ %2030, %2029 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %222) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_IN4lang4data4Node5Entry5Field2_TEEEEEEEESI_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #11
  br label %6006

6006:                                             ; preds = %6005, %2027, %2025
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6005 ], [ %2028, %2027 ], [ %2026, %2025 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %219) #11
  br label %6007

6007:                                             ; preds = %6006, %2023
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6006 ], [ %2024, %2023 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %219) #11
  br label %6008

6008:                                             ; preds = %6007, %2021
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6007 ], [ %2022, %2021 ]
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %218) #11
  br label %6009

6009:                                             ; preds = %6008, %2019
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6008 ], [ %2020, %2019 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %218) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINS0_IN4lang2cc4Node2_TEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %216) #11
  br label %6010

6010:                                             ; preds = %6009, %2017, %2015
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6009 ], [ %2018, %2017 ], [ %2016, %2015 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %216) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %213) #11
  br label %6011

6011:                                             ; preds = %6010, %2014, %2008
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6010 ], [ %.pn1504, %2014 ], [ %2009, %2008 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %213) #11
  call void @_ZN6langcc6rc_ptrIN4lang2cc4Node2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %210) #11
  br label %6012

6012:                                             ; preds = %6011, %2007, %2001
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6011 ], [ %.pn1502, %2007 ], [ %2002, %2001 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %210) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %208) #11
  br label %6013

6013:                                             ; preds = %6012, %1999, %1997
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6012 ], [ %2000, %1999 ], [ %1998, %1997 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %208) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %207) #11
  br label %6014

6014:                                             ; preds = %6013, %1995
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6013 ], [ %1996, %1995 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %207) #11
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #11
  br label %6015

6015:                                             ; preds = %6014, %1993
  %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6014 ], [ %1994, %1993 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %205) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %204) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %203) #11
  br label %6142

._crit_edge3634:                                  ; preds = %6120, %._crit_edge3631
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1052) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1051) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %1070) #11
  invoke void @_ZN6langcc13CppGenContext12extract_modsENS_10HeaderModeE(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.149") align 4 %1070, ptr noundef nonnull align 8 dereferenceable(264) %5, i32 noundef %3)
          to label %6125 unwind label %6133

6016:                                             ; preds = %.lr.ph3633, %6120
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1053) #11
  %6017 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1051) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1053, ptr noundef nonnull align 8 dereferenceable(16) %6017, i64 16, i1 false)
  %6018 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm0EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %1053) #11
  %6019 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3getILm1EllEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOS4_(ptr noundef nonnull align 8 dereferenceable(16) %1053) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1054) #11
  %6020 = call noundef ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %196)
  %6021 = load i64, ptr %6019, align 8, !tbaa !5
  %6022 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64) %6020, i64 noundef %6021)
          to label %6023 unwind label %6033

6023:                                             ; preds = %6016
  invoke void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEC2ERKSI_(ptr noundef nonnull align 8 dereferenceable(32) %1054, ptr noundef nonnull align 8 dereferenceable(32) %6022)
          to label %6024 unwind label %6033

6024:                                             ; preds = %6023
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %1055, ptr noundef nonnull align 8 dereferenceable(16) %1934)
          to label %6025 unwind label %6035

6025:                                             ; preds = %6024
  %6026 = invoke noundef zeroext i1 @_ZN6langcc13has_mod_visitENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef nonnull %1055)
          to label %6027 unwind label %6037

6027:                                             ; preds = %6025
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1055) #11
  br i1 %6026, label %6028, label %6050

6028:                                             ; preds = %6027
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1056) #11
  invoke void @_ZN6langcc7make_rcINS_3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.118") align 8 %1056)
          to label %6029 unwind label %6039

6029:                                             ; preds = %6028
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1057, ptr noundef nonnull align 8 dereferenceable(16) %1054)
          to label %6030 unwind label %6041

6030:                                             ; preds = %6029
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1058, ptr noundef nonnull align 8 dereferenceable(16) %1054)
          to label %6031 unwind label %6043

6031:                                             ; preds = %6030
  invoke void @_ZN6langcc17data_gen_xform_fnENS_7XformTyENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_RNS1_INS_3SetISA_EEEENS_10HeaderModeERNS_18DataCompileContextE(i32 noundef 1, ptr noundef nonnull %1057, ptr noundef nonnull %1058, ptr noundef nonnull align 8 dereferenceable(16) %1056, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %6032 unwind label %6045

6032:                                             ; preds = %6031
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1058) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1057) #11
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1056) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1056) #11
  br label %6050

6033:                                             ; preds = %6023, %6016
  %6034 = landingpad { ptr, i32 }
          cleanup
  br label %6124

6035:                                             ; preds = %6050, %6024
  %6036 = landingpad { ptr, i32 }
          cleanup
  br label %6123

6037:                                             ; preds = %6025
  %6038 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1055) #11
  br label %6123

6039:                                             ; preds = %6028
  %6040 = landingpad { ptr, i32 }
          cleanup
  br label %6049

6041:                                             ; preds = %6029
  %6042 = landingpad { ptr, i32 }
          cleanup
  br label %6048

6043:                                             ; preds = %6030
  %6044 = landingpad { ptr, i32 }
          cleanup
  br label %6047

6045:                                             ; preds = %6031
  %6046 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1058) #11
  br label %6047

6047:                                             ; preds = %6045, %6043
  %.pn1483 = phi { ptr, i32 } [ %6046, %6045 ], [ %6044, %6043 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1057) #11
  br label %6048

6048:                                             ; preds = %6047, %6041
  %.pn1483.pn = phi { ptr, i32 } [ %.pn1483, %6047 ], [ %6042, %6041 ]
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1056) #11
  br label %6049

6049:                                             ; preds = %6048, %6039
  %.pn1483.pn.pn = phi { ptr, i32 } [ %.pn1483.pn, %6048 ], [ %6040, %6039 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1056) #11
  br label %6123

6050:                                             ; preds = %6032, %6027
  invoke void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16) %1059, ptr noundef nonnull align 8 dereferenceable(16) %1934)
          to label %6051 unwind label %6035

6051:                                             ; preds = %6050
  %6052 = invoke noundef zeroext i1 @_ZN6langcc13has_mod_xformENS_6rc_ptrIN4lang4data4Node4Decl4Data2_TEEE(ptr noundef nonnull %1059)
          to label %6053 unwind label %6071

6053:                                             ; preds = %6051
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1059) #11
  br i1 %6052, label %6054, label %6120

6054:                                             ; preds = %6053
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1060) #11
  invoke void @_ZN6langcc7make_rcINS_3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind nonnull writable sret(%"struct.langcc::rc_ptr.118") align 8 %1060)
          to label %6055 unwind label %6073

6055:                                             ; preds = %6054
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1061, ptr noundef nonnull align 8 dereferenceable(16) %1054)
          to label %6056 unwind label %6075

6056:                                             ; preds = %6055
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1062, ptr noundef nonnull align 8 dereferenceable(16) %1054)
          to label %6057 unwind label %6077

6057:                                             ; preds = %6056
  invoke void @_ZN6langcc17data_gen_xform_fnENS_7XformTyENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_RNS1_INS_3SetISA_EEEENS_10HeaderModeERNS_18DataCompileContextE(i32 noundef 0, ptr noundef nonnull %1061, ptr noundef nonnull %1062, ptr noundef nonnull align 8 dereferenceable(16) %1060, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %6058 unwind label %6079

6058:                                             ; preds = %6057
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1062) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1061) #11
  %6059 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1060)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1063) #11
  %6060 = invoke { ptr, i64 } @_ZNK6langcc3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(200) %6059)
          to label %6061 unwind label %6082

6061:                                             ; preds = %6058
  %6062 = extractvalue { ptr, i64 } %6060, 0
  store ptr %6062, ptr %1063, align 8
  %6063 = extractvalue { ptr, i64 } %6060, 1
  store i64 %6063, ptr %1935, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1064) #11
  %6064 = call { ptr, i64 } @_ZNK6langcc3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200) %6059)
  %6065 = extractvalue { ptr, i64 } %6064, 0
  store ptr %6065, ptr %1064, align 8
  %6066 = extractvalue { ptr, i64 } %6064, 1
  store i64 %6066, ptr %1936, align 8
  br label %6067

6067:                                             ; preds = %6112, %6061
  %6068 = invoke noundef zeroext i1 @_ZN6langcc11SetIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEneERKSB_(ptr noundef nonnull align 8 dereferenceable(16) %1063, ptr noundef nonnull align 8 dereferenceable(16) %1064)
          to label %6069 unwind label %6084

6069:                                             ; preds = %6067
  br i1 %6068, label %6086, label %6070

6070:                                             ; preds = %6069
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1064) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1063) #11
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1060) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1060) #11
  br label %6120

6071:                                             ; preds = %6051
  %6072 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrIN4lang4data4Node4Decl4Data2_TEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1059) #11
  br label %6123

6073:                                             ; preds = %6054
  %6074 = landingpad { ptr, i32 }
          cleanup
  br label %6119

6075:                                             ; preds = %6055
  %6076 = landingpad { ptr, i32 }
          cleanup
  br label %6118

6077:                                             ; preds = %6056
  %6078 = landingpad { ptr, i32 }
          cleanup
  br label %6081

6079:                                             ; preds = %6057
  %6080 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1062) #11
  br label %6081

6081:                                             ; preds = %6079, %6077
  %.pn1487 = phi { ptr, i32 } [ %6080, %6079 ], [ %6078, %6077 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1061) #11
  br label %6118

6082:                                             ; preds = %6058
  %6083 = landingpad { ptr, i32 }
          cleanup
  br label %6117

6084:                                             ; preds = %6112, %6067
  %6085 = landingpad { ptr, i32 }
          cleanup
  br label %6116

6086:                                             ; preds = %6069
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1065) #11
  %6087 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11SetIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %1063)
          to label %6088 unwind label %6098

6088:                                             ; preds = %6086
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1065, ptr noundef nonnull align 8 dereferenceable(16) %6087)
          to label %6089 unwind label %6098

6089:                                             ; preds = %6088
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1066, ptr noundef nonnull align 8 dereferenceable(16) %1054)
          to label %6090 unwind label %6100

6090:                                             ; preds = %6089
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1067, ptr noundef nonnull align 8 dereferenceable(16) %1065)
          to label %6091 unwind label %6102

6091:                                             ; preds = %6090
  %6092 = invoke noundef zeroext i1 @_ZN6langcc18DataCompileContext11is_ancestorENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESA_(ptr noundef nonnull align 8 dereferenceable(376) %5, ptr noundef nonnull %1066, ptr noundef nonnull %1067)
          to label %6093 unwind label %6104

6093:                                             ; preds = %6091
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1067) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1066) #11
  br i1 %6092, label %6094, label %6112

6094:                                             ; preds = %6093
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1068, ptr noundef nonnull align 8 dereferenceable(16) %1054)
          to label %6095 unwind label %6100

6095:                                             ; preds = %6094
  invoke void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %1069, ptr noundef nonnull align 8 dereferenceable(16) %1065)
          to label %6096 unwind label %6107

6096:                                             ; preds = %6095
  invoke void @_ZN6langcc20data_gen_xform_id_fnENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEES9_NS_10HeaderModeERNS_18DataCompileContextE(ptr noundef nonnull %1068, ptr noundef nonnull %1069, i32 noundef %3, ptr noundef nonnull align 8 dereferenceable(376) %5)
          to label %6097 unwind label %6109

6097:                                             ; preds = %6096
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1069) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1068) #11
  br label %6112

6098:                                             ; preds = %6088, %6086
  %6099 = landingpad { ptr, i32 }
          cleanup
  br label %6115

6100:                                             ; preds = %6094, %6089
  %6101 = landingpad { ptr, i32 }
          cleanup
  br label %6114

6102:                                             ; preds = %6090
  %6103 = landingpad { ptr, i32 }
          cleanup
  br label %6106

6104:                                             ; preds = %6091
  %6105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1067) #11
  br label %6106

6106:                                             ; preds = %6104, %6102
  %.pn1489 = phi { ptr, i32 } [ %6105, %6104 ], [ %6103, %6102 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1066) #11
  br label %6114

6107:                                             ; preds = %6095
  %6108 = landingpad { ptr, i32 }
          cleanup
  br label %6111

6109:                                             ; preds = %6096
  %6110 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1069) #11
  br label %6111

6111:                                             ; preds = %6109, %6107
  %.pn1491 = phi { ptr, i32 } [ %6110, %6109 ], [ %6108, %6107 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1068) #11
  br label %6114

6112:                                             ; preds = %6097, %6093
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1065) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1065) #11
  %6113 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc11SetIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(16) %1063)
          to label %6067 unwind label %6084

6114:                                             ; preds = %6111, %6106, %6100
  %.pn1491.pn = phi { ptr, i32 } [ %.pn1491, %6111 ], [ %6101, %6100 ], [ %.pn1489, %6106 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1065) #11
  br label %6115

6115:                                             ; preds = %6114, %6098
  %.pn1491.pn.pn = phi { ptr, i32 } [ %.pn1491.pn, %6114 ], [ %6099, %6098 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1065) #11
  br label %6116

6116:                                             ; preds = %6115, %6084
  %.pn1495 = phi { ptr, i32 } [ %6085, %6084 ], [ %.pn1491.pn.pn, %6115 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1064) #11
  br label %6117

6117:                                             ; preds = %6116, %6082
  %.pn1495.pn = phi { ptr, i32 } [ %.pn1495, %6116 ], [ %6083, %6082 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1063) #11
  br label %6118

6118:                                             ; preds = %6117, %6081, %6075
  %.pn1495.pn.pn = phi { ptr, i32 } [ %.pn1495.pn, %6117 ], [ %.pn1487, %6081 ], [ %6076, %6075 ]
  call void @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1060) #11
  br label %6119

6119:                                             ; preds = %6118, %6073
  %.pn1495.pn.pn.pn = phi { ptr, i32 } [ %.pn1495.pn.pn, %6118 ], [ %6074, %6073 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1060) #11
  br label %6123

6120:                                             ; preds = %6070, %6053
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1054) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1054) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1053) #11
  %6121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIllESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %1051) #11
  %6122 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIllESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %1051, ptr noundef nonnull align 8 dereferenceable(8) %1052) #11
  br i1 %6122, label %6016, label %._crit_edge3634

6123:                                             ; preds = %6119, %6071, %6049, %6037, %6035
  %.pn1495.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1495.pn.pn.pn, %6119 ], [ %6072, %6071 ], [ %6036, %6035 ], [ %.pn1483.pn.pn, %6049 ], [ %6038, %6037 ]
  call void @_ZNSt4pairIN6langcc6rc_ptrINS0_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1054) #11
  br label %6124

6124:                                             ; preds = %6123, %6033
  %.pn1495.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1495.pn.pn.pn.pn, %6123 ], [ %6034, %6033 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1054) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1053) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1052) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1051) #11
  br label %6142

6125:                                             ; preds = %._crit_edge3634
  %6126 = call noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm0EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40) %1070) #11
  %6127 = call noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm1EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40) %1070) #11
  invoke void @_ZN6langcc14DataDefsResultC2Ev(ptr noundef nonnull align 4 dereferenceable(40) %0)
          to label %6128 unwind label %6135

6128:                                             ; preds = %6125
  %6129 = invoke noundef nonnull align 4 dereferenceable(20) ptr @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEEaSERKS8_(ptr noundef nonnull align 4 dereferenceable(20) %0, ptr noundef nonnull align 4 dereferenceable(20) %6126)
          to label %6130 unwind label %6137

6130:                                             ; preds = %6128
  %6131 = getelementptr inbounds i8, ptr %0, i64 20
  %6132 = invoke noundef nonnull align 4 dereferenceable(20) ptr @_ZN6langcc6Option2_TINS_6rc_ptrIN4lang2cc4Node2_TEEEEaSERKS8_(ptr noundef nonnull align 4 dereferenceable(20) %6131, ptr noundef nonnull align 4 dereferenceable(20) %6127)
          to label %6139 unwind label %6137

6133:                                             ; preds = %._crit_edge3634
  %6134 = landingpad { ptr, i32 }
          cleanup
  br label %6141

6135:                                             ; preds = %6125
  %6136 = landingpad { ptr, i32 }
          cleanup
  br label %6140

6137:                                             ; preds = %6130, %6128
  %6138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6langcc14DataDefsResultD2Ev(ptr noundef nonnull align 4 dereferenceable(40) %0) #11
  br label %6140

6139:                                             ; preds = %6130
  call void @_ZNSt4pairIN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_ED2Ev(ptr noundef nonnull align 4 dereferenceable(40) %1070) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %1070) #11
  call void @_ZNSt6vectorISt4pairIllESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %199) #11
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %196) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %196) #11
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #11
  call void @_ZN6langcc18DataCompileContextD2Ev(ptr noundef nonnull align 8 dereferenceable(376) %5) #11
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %5) #11
  ret void

6140:                                             ; preds = %6137, %6135
  %.pn1480 = phi { ptr, i32 } [ %6138, %6137 ], [ %6136, %6135 ]
  call void @_ZNSt4pairIN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_ED2Ev(ptr noundef nonnull align 4 dereferenceable(40) %1070) #11
  br label %6141

6141:                                             ; preds = %6140, %6133
  %.pn1480.pn = phi { ptr, i32 } [ %.pn1480, %6140 ], [ %6134, %6133 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %1070) #11
  br label %6142

6142:                                             ; preds = %6141, %6124, %6015, %1937, %1882
  %.pn2443.pn = phi { ptr, i32 } [ %.pn2443, %1882 ], [ %.pn2405.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6015 ], [ %.pn1495.pn.pn.pn.pn.pn, %6124 ], [ %.pn1480.pn, %6141 ], [ %1938, %1937 ]
  call void @_ZNSt6vectorISt4pairIllESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %199) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %199) #11
  br label %6143

6143:                                             ; preds = %6142, %1858
  %.pn2446.pn.pn = phi { ptr, i32 } [ %.pn2446.pn, %1858 ], [ %.pn2443.pn, %6142 ]
  call void @_ZN6langcc6rc_ptrINS_3VecISt4pairINS0_INS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %196) #11
  br label %6144

6144:                                             ; preds = %6143, %1845
  %.pn2446.pn.pn.pn = phi { ptr, i32 } [ %.pn2446.pn.pn, %6143 ], [ %1846, %1845 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %196) #11
  br label %6145

6145:                                             ; preds = %1086, %1101, %1088, %6144, %1824, %1725, %1218, %1184, %1149, %1135
  %.pn2611.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2603.pn.pn.pn.pn.pn.pn, %1184 ], [ %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn, %1725 ], [ %.pn2470.pn, %1824 ], [ %.pn2446.pn.pn.pn, %6144 ], [ %.pn1473.pn.pn.pn.pn.pn, %1218 ], [ %.pn1467.pn.pn.pn, %1149 ], [ %.pn.pn.pn.pn, %1135 ], [ %1087, %1086 ], [ %.pn2611.pn, %1101 ], [ %1089, %1088 ]
  call void @_ZN6langcc6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  br label %6146

6146:                                             ; preds = %6145, %1084
  %.pn2611.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2611.pn.pn.pn.pn, %6145 ], [ %1085, %1084 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #11
  call void @_ZN6langcc18DataCompileContextD2Ev(ptr noundef nonnull align 8 dereferenceable(376) %5) #11
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %5) #11
  resume { ptr, i32 } %.pn2611.pn.pn.pn.pn.pn
}

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

declare void @_ZN4lang4data4Node2_T9as_ModuleEv(ptr dead_on_unwind writable sret(%"struct.langcc::rc_ptr.126") align 8, ptr noundef nonnull align 8 dereferenceable(136)) local_unnamed_addr #9

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA13_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(13)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA27_cEEENS_6rc_ptrIS4_EENS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(27)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENS_6rc_ptrIS4_EENS_6Option2_TISF_EEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7as_someEv(ptr noundef nonnull align 4 dereferenceable(36)) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Enum2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Enum2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext15gen_cpp_id_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext17gen_cpp_decl_enumENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA16_cNS_6rc_ptrIS4_EEEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrINS3_4Expr2_TEEENSA_IS4_EEEEESE_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA2_cA26_cSC_A4_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 1 dereferenceable(26), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA14_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(14)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA17_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(17)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node4Expr2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cSH_A2_cA9_cEEENS4_INS7_2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 1 dereferenceable(9)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cNS_3VecIS9_EEA2_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3MapINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS0_IN4lang4data4Node4Decl4Data2_TEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc11MapIteratorINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS1_IN4lang4data4Node4Decl4Data2_TEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc28cpp_tabulate_template_paramsENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext23gen_cpp_decl_struct_fwdENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext18gen_cpp_decl_usingENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_IN4lang2cc4Node2_TEEERKNS1_INS2_ISF_EEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext14gen_cpp_rc_ptrERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3VecISt4pairINS_6rc_ptrINS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS3_IN4lang4data4Node4Decl4Data2_TEEEEEEJEEENS3_IT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.133") align 8) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE9push_backERKSI_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN6langcc3VecISt4pairINS_6rc_ptrINS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS2_IN4lang4data4Node4Decl4Data2_TEEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZSt9make_pairIRlS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0

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

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

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

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

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

; Function Attrs: mustprogress 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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_EEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA6_cNS_6rc_ptrIS4_EEA2_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN6langcc3MapINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEESt4pairISA_S8_EEixERKSA_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc22cpp_get_templated_nameENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEENS_7LowerTyERNS_18DataCompileContextE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(376)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS8_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA17_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA4_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSC_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SL_DpRKT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext21gen_cpp_decl_var_initIPKcJA21_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cSA_A2_cEEESA_RNS5_INS_3VecISA_EEEENS5_INSD_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEET_SM_DpRKT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(21), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEE6insertERKS6_RKSF_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEE6insertERKS6_RKSC_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4pushERKS6_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA15_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cEEESF_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(15), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext17gen_cpp_param_accINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_6rc_ptrIN4lang2cc4Node2_TEEERNS8_INS_3VecISD_EEEERKNS8_INSE_IS7_EEEERKT_RKS7_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA18_cS9_A2_cS9_SJ_S9_SA_S9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA7_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6langcc3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang4data4Node5Entry5Field2_TEEEEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA11_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(11)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA19_cS8_A3_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(19), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA18_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cS9_SA_S9_A3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_EEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN6langcc6rc_ptrINS_3VecISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_IN4lang4data4Node5Entry6Method2_TEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZSt3getILm1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6langcc6rc_ptrIN4lang4data4Node5Entry6Method2_TEEEEONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSJ_(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc9log_innerIJA51_cNS_8StrSliceEEEEvlDpRKT_(i64 noundef, ptr noundef nonnull align 1 dereferenceable(51), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE11qq_args_accIJNS_6rc_ptrIS4_EEA2_cEEEvRNSA_INS_9LexOutputEEERKSB_DpRKT_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node5Param2_TEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE2qqIJA16_cEEENS_6rc_ptrIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc4SomeINS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEEEENS_6Option2_TIT_EERKSC_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::Option::_T.77") align 4, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cA2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext11gen_cpp_retERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc7fmt_strIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEES6_RKS6_DpRKT_(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), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA18_cNS_6rc_ptrIS4_EEA4_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA3_cEEESC_NS_6Option2_TISJ_EEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_stmtIJA32_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA5_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_stmtIJA37_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA10_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(37), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEixEl(ptr noundef nonnull align 8 dereferenceable(64), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA5_cA9_cS3_A4_cNS_3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEEEA2_cEEESB_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA11_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA3_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA4_cA7_cS9_A8_cS9_S3_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 1 dereferenceable(9)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA6_cA15_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 1 dereferenceable(15)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA7_cNS_6rc_ptrIS4_EEA2_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA33_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(33)) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local void @_ZN6langcc6rc_ptrIN4lang4data4Node5Entry5Field2_TEEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EESB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A4_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEEixERKS6_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6langcc3VecINS_6rc_ptrIN4lang2cc4Node2_TEEEE4onlyEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJNS_6rc_ptrIS4_EEA3_cSB_A10_cSB_A2_cEEESB_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA10_cNS_6rc_ptrIS4_EEA9_cSC_A3_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext23gen_cpp_fun_proto_entryERKNS_6rc_ptrINS_3VecINS1_IN4lang2cc4Node2_TEEEEEEESB_RKNS_6Option2_TIS7_EERKS7_SB_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA4_cA31_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(31)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA13_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA2_cEEES8_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(13), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc15NodeV_singletonERKNS_6rc_ptrIN4lang2cc4Node2_TEEE(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.12") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA6_cA5_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA18_cS9_A9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 1 dereferenceable(5), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(18), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA6_cA43_cNS_6rc_ptrIN4lang2cc4Node2_TEEEA9_cEEES9_DpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(6), ptr noundef nonnull align 1 dereferenceable(43), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(9)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc8QuoteEnvIN4lang2cc4Node2_TEXadL_ZNS2_6parser16action_by_vertexElNS_15ParserLookaheadEEEXadL_ZNS5_15vertex_dfa_stepEllNS_14ParserAttrMaskEEEE6qq_extIJA43_cNS_6rc_ptrIS4_EEA13_cEEESC_NS_6Option2_TINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(43), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 1 dereferenceable(13)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext7qq_exprIJA33_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(33)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext19gen_cpp_decl_structENS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEERKNS1_INS2_INS1_IN4lang2cc4Node2_TEEEEEEESJ_SJ_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext27gen_cpp_template_params_accERNS_6rc_ptrINS_9LexOutputEEERKNS1_INS_3VecINS1_IN4lang2cc4Node2_TEEEEEEE(ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext2qqIJA4_cA7_cEEENS_6rc_ptrIN4lang2cc4Node2_TEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.76") align 8, ptr noundef nonnull align 8 dereferenceable(264), ptr noundef nonnull align 1 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(7)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecINS7_IN4lang2cc4Node2_TEEEEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrINS_3VecIS6_EEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc3MapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_6rc_ptrIN4lang2cc4Node2_TEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6langcc7make_rcINS_3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEJEEENS2_IT_EEDpT0_(ptr dead_on_unwind noalias writable sret(%"struct.langcc::rc_ptr.118") align 8) local_unnamed_addr #0

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(200) ptr @_ZN6langcc6rc_ptrINS_3SetINS0_INS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { ptr, i64 } @_ZNK6langcc3SetINS_6rc_ptrINS_3VecINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEE3endEv(ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #5 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc13CppGenContext12extract_modsENS_10HeaderModeE(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.149") align 4, ptr noundef nonnull align 8 dereferenceable(264), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm0EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(20) ptr @_ZSt3getILm1EN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_EONSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeEOSE_(ptr noundef nonnull align 4 dereferenceable(40)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6langcc14DataDefsResultC2Ev(ptr noundef nonnull align 4 dereferenceable(40)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc14DataDefsResultD2Ev(ptr noundef nonnull align 4 dereferenceable(40)) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIN6langcc6Option2_TINS0_6rc_ptrIN4lang2cc4Node2_TEEEEES9_ED2Ev(ptr noundef nonnull align 4 dereferenceable(40)) unnamed_addr #5 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6langcc18DataCompileContextD2Ev(ptr noundef nonnull align 8 dereferenceable(376)) unnamed_addr #5 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !23, i64 140}
!12 = !{!"_ZTSN4lang4data4Node5Entry6Method2_TE", !13, i64 0, !23, i64 140, !23, i64 141, !27, i64 144, !29, i64 176, !30, i64 192}
!13 = !{!"_ZTSN4lang4data4Node5Entry2_TE", !14, i64 0, !26, i64 136}
!14 = !{!"_ZTSN4lang4data4Node2_TE", !15, i64 8, !18, i64 48, !20, i64 64, !6, i64 72, !21, i64 80, !23, i64 88, !6, i64 96, !24, i64 104, !25, i64 120}
!15 = !{!"_ZTSN6langcc8hash_objE", !16, i64 0}
!16 = !{!"_ZTSN6langcc6Option2_TINS_7HashValEEE", !17, i64 0, !7, i64 4}
!17 = !{!"_ZTSN6langcc6Option2_WE", !7, i64 0}
!18 = !{!"_ZTSN6langcc24enable_rc_from_this_polyE", !19, i64 0, !19, i64 8}
!19 = !{!"any pointer", !7, i64 0}
!20 = !{!"_ZTSN4lang4data4Node2_WE", !7, i64 0}
!21 = !{!"_ZTSN6langcc11TokenBoundsE", !22, i64 0, !22, i64 4}
!22 = !{!"int", !7, i64 0}
!23 = !{!"bool", !7, i64 0}
!24 = !{!"_ZTSN6langcc14ParserAttrMaskE", !7, i64 0}
!25 = !{!"_ZTSN6langcc15ParserLookaheadE", !7, i64 0}
!26 = !{!"_ZTSN4lang4data4Node5Entry2_WE", !7, i64 0}
!27 = !{!"_ZTSN6langcc8StrSliceE", !28, i64 0, !6, i64 16, !6, i64 24}
!28 = !{!"_ZTSN6langcc6rc_ptrINS_3VecIcEEEE", !19, i64 0, !19, i64 8}
!29 = !{!"_ZTSN6langcc6rc_ptrINS_3VecINS0_IN4lang4data4Node5Param2_TEEEEEEE", !19, i64 0, !19, i64 8}
!30 = !{!"_ZTSN6langcc6rc_ptrIN4lang4data4Node4Expr2_TEEE", !19, i64 0, !19, i64 8}
!31 = !{i8 0, i8 2}
!32 = !{}
!33 = !{!12, !23, i64 141}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.peeled.count", i32 1}
!36 = distinct !{!36, !35}
!37 = !{!38, !23, i64 176}
!38 = !{!"_ZTSN4lang4data4Node5Entry5Field2_TE", !13, i64 0, !27, i64 144, !23, i64 176, !23, i64 177, !30, i64 184}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass