; LLVM IR from ASDAlexander77/TypeScriptCompiler :: tsc/tsc-new-parser (node_factory)

; 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.ts::data::NodeArray" = type <{ %"struct.ts::data::ReadonlyArray", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray" = type { %"class.std::vector.21" }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::TextRange" = type { %"struct.ts::pos_type", i32 }
%"struct.ts::pos_type" = type { i32, i32 }
%"struct.ts::data::NodeArray.174" = type <{ %"struct.ts::data::ReadonlyArray.175", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.175" = type { %"class.std::vector.176" }
%"class.std::vector.176" = type { %"struct.std::_Vector_base.177" }
%"struct.std::_Vector_base.177" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::NodeArray.182" = type <{ %"struct.ts::data::ReadonlyArray.183", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.183" = type { %"class.std::vector.184" }
%"class.std::vector.184" = type { %"struct.std::_Vector_base.185" }
%"struct.std::_Vector_base.185" = type { %"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ptr.431 = type { %"class.std::shared_ptr.432" }
%"class.std::shared_ptr.432" = type { %"class.std::__shared_ptr.433" }
%"class.std::__shared_ptr.433" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%struct.ptr.435 = type { %"class.std::shared_ptr.436" }
%"class.std::shared_ptr.436" = type { %"class.std::__shared_ptr.437" }
%"class.std::__shared_ptr.437" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.17 = type { %"class.std::shared_ptr.18" }
%"class.std::shared_ptr.18" = type { %"class.std::__shared_ptr.19" }
%"class.std::__shared_ptr.19" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.138 = type { %"class.std::shared_ptr.139" }
%"class.std::shared_ptr.139" = type { %"class.std::__shared_ptr.140" }
%"class.std::__shared_ptr.140" = type { ptr, %"class.std::__shared_count" }
%"struct.ts::data::NodeArray.46" = type <{ %"struct.ts::data::ReadonlyArray.47", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.47" = type { %"class.std::vector.48" }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.undefined_t = type { i8 }
%"struct.ts::data::NodeArray.30" = type <{ %"struct.ts::data::ReadonlyArray.31", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.31" = type { %"class.std::vector.32" }
%"class.std::vector.32" = type { %"struct.std::_Vector_base.33" }
%"struct.std::_Vector_base.33" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::Node" = type <{ ptr, %"struct.ts::data::TextRange", i32, i32, i32, i32, [4 x i8], %"struct.ts::data::NodeArray", i32, [4 x i8], %struct.ptr.17, %struct.ptr.17, i32, i8, [3 x i8] }>
%"struct.ts::data::SignatureDeclarationBase" = type { %"struct.ts::data::TypeElement", %"struct.ts::data::NodeArray.174", %"struct.ts::data::NodeArray.182", %struct.ptr.138, %"struct.ts::data::NodeArray.46" }
%"struct.ts::data::TypeElement" = type { %"struct.ts::data::ClassElement", %struct.ptr.150 }
%"struct.ts::data::ClassElement" = type { %"struct.ts::data::NamedDeclaration" }
%"struct.ts::data::NamedDeclaration" = type { %"struct.ts::data::Declaration", %struct.ptr.17 }
%"struct.ts::data::Declaration" = type { %"struct.ts::data::DeclarationStatement", %struct.ptr.58, %struct.ptr.58 }
%"struct.ts::data::DeclarationStatement" = type { %"struct.ts::data::Statement" }
%"struct.ts::data::Statement" = type { %"struct.ts::data::PrimaryExpression" }
%"struct.ts::data::PrimaryExpression" = type { %"struct.ts::data::MemberExpression" }
%"struct.ts::data::MemberExpression" = type { %"struct.ts::data::LeftHandSideExpression" }
%"struct.ts::data::LeftHandSideExpression" = type { %"struct.ts::data::UpdateExpression" }
%"struct.ts::data::UpdateExpression" = type { %"struct.ts::data::UnaryExpression" }
%"struct.ts::data::UnaryExpression" = type { %"struct.ts::data::ExpressionWithTypeArguments" }
%"struct.ts::data::ExpressionWithTypeArguments" = type { %"struct.ts::data::NodeWithTypeArguments", %struct.ptr.54 }
%"struct.ts::data::NodeWithTypeArguments" = type { %"struct.ts::data::Expression", %"struct.ts::data::NodeArray.46" }
%"struct.ts::data::Expression" = type { %"struct.ts::data::TypeNode" }
%"struct.ts::data::TypeNode" = type { %"struct.ts::data::JSDocContainer" }
%"struct.ts::data::JSDocContainer" = type { %"struct.ts::data::Node.base", [3 x i8], %"struct.ts::data::NodeArray.30", %"struct.ts::data::NodeArray.38" }
%"struct.ts::data::Node.base" = type <{ ptr, %"struct.ts::data::TextRange", i32, i32, i32, i32, [4 x i8], %"struct.ts::data::NodeArray", i32, [4 x i8], %struct.ptr.17, %struct.ptr.17, i32, i8 }>
%"struct.ts::data::NodeArray.38" = type <{ %"struct.ts::data::ReadonlyArray.39", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.39" = type { %"class.std::vector.40" }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ptr.54 = type { %"class.std::shared_ptr.55" }
%"class.std::shared_ptr.55" = type { %"class.std::__shared_ptr.56" }
%"class.std::__shared_ptr.56" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.58 = type { %"class.std::shared_ptr.59" }
%"class.std::shared_ptr.59" = type { %"class.std::__shared_ptr.60" }
%"class.std::__shared_ptr.60" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.150 = type { %"class.std::shared_ptr.151" }
%"class.std::shared_ptr.151" = type { %"class.std::__shared_ptr.152" }
%"class.std::__shared_ptr.152" = type { ptr, %"class.std::__shared_count" }
%"struct.ts::data::ArrowFunction" = type { %"struct.ts::data::FunctionLikeDeclarationBase", %"struct.ts::data::LocalsContainer", %struct.ptr.435 }
%"struct.ts::data::FunctionLikeDeclarationBase" = type { %"struct.ts::data::SignatureDeclarationBase", %struct.ptr.199, %struct.ptr.166, %struct.ptr.17 }
%struct.ptr.199 = type { %"class.std::shared_ptr.200" }
%"class.std::shared_ptr.200" = type { %"class.std::__shared_ptr.201" }
%"class.std::__shared_ptr.201" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.166 = type { %"class.std::shared_ptr.167" }
%"class.std::shared_ptr.167" = type { %"class.std::__shared_ptr.168" }
%"class.std::__shared_ptr.168" = type { ptr, %"class.std::__shared_count" }
%"struct.ts::data::LocalsContainer" = type { %"class.std::map.190", %struct.ptr.17 }
%"class.std::map.190" = type { %"class.std::_Rb_tree.191" }
%"class.std::_Rb_tree.191" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::Symbol>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::Symbol>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::Symbol>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::Symbol>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.ts::NodeFactory" = type { ptr, %"class.ts::Scanner", %"struct.ts::ParenthesizerRules", i32, %"class.std::function.15" }
%"class.ts::Scanner" = type { i32, i32, i8, i32, %"struct.ts::safe_string", i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i32, %"class.std::vector.10", i32, i32, %"class.std::function" }
%"struct.ts::safe_string" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"struct.ts::ParenthesizerRules" = type { ptr }
%"class.std::function.15" = type { %"class.std::_Function_base", ptr }

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsanENS_14TransformFlagsES0_(i32 noundef, i32 noundef) #1

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tscoENS_14TransformFlagsE(i32 noundef) #1

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef, i32 noundef) #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) #1 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2tsntENS_13ModifierFlagsE(i32 noundef) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsanENS_13ModifierFlagsES0_(i32 noundef, i32 noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data24TypeParameterDeclarationEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray.174") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory15createNodeArrayI3ptrINS_4data20ParameterDeclarationEEEENS3_9NodeArrayIT_EES8_b(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray.182") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef, i1 noundef zeroext) #2 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts11NodeFactory19createArrowFunctionENS_4data9NodeArrayI3ptrINS1_4NodeEEEENS2_IS3_INS1_24TypeParameterDeclarationEEEENS2_IS3_INS1_20ParameterDeclarationEEEES3_INS1_8TypeNodeEES3_INS1_16PunctuationTokenIL10SyntaxKind39EEEES5_(ptr dead_on_unwind noalias writable sret(%struct.ptr.431) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #2 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i1, align 1
  %18 = alloca %"struct.ts::data::NodeArray", align 8
  %19 = alloca %"struct.ts::data::NodeArray", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %"struct.ts::data::NodeArray.174", align 8
  %23 = alloca %"struct.ts::data::NodeArray.174", align 8
  %24 = alloca %"struct.ts::data::NodeArray.182", align 8
  %25 = alloca %"struct.ts::data::NodeArray.182", align 8
  %26 = alloca %struct.ptr.435, align 8
  %27 = alloca %struct.ptr.17, align 8
  %28 = alloca i1, align 1
  %29 = alloca i1, align 1
  %30 = alloca %struct.ptr.17, align 8
  %31 = alloca %struct.ptr.17, align 8
  %32 = alloca i8, align 1
  %33 = alloca %"struct.ts::data::NodeArray", align 8
  %34 = alloca %"struct.ts::data::NodeArray", align 8
  %35 = alloca %"struct.ts::data::NodeArray.174", align 8
  %36 = alloca %"struct.ts::data::NodeArray.182", align 8
  %37 = alloca %struct.ptr.17, align 8
  %38 = alloca %struct.ptr.138, align 8
  %39 = alloca %struct.ptr.17, align 8
  %40 = alloca %struct.ptr.435, align 8
  %41 = alloca %struct.ptr.17, align 8
  %42 = alloca %"struct.ts::data::NodeArray.46", align 8
  %43 = alloca %struct.undefined_t, align 1
  %44 = alloca %"struct.ts::data::NodeArray.30", align 8
  %45 = alloca %struct.undefined_t, align 1
  %46 = alloca %struct.undefined_t, align 1
  store ptr %0, ptr %9, align 8
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  store ptr %7, ptr %16, align 8, !tbaa !5
  %47 = load ptr, ptr %10, align 8
  store i1 false, ptr %17, align 1
  call void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data13ArrowFunctionEEEEDa10SyntaxKind(ptr dead_on_unwind writable sret(%struct.ptr.431) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %47, i32 noundef 219)
  call void @llvm.lifetime.start.p0(i64 48, ptr %18) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %19, ptr noundef nonnull align 8 dereferenceable(44) %2)
          to label %48 unwind label %207

48:                                               ; preds = %8
  invoke void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind writable sret(%"struct.ts::data::NodeArray") align 8 %18, ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %19)
          to label %49 unwind label %211

49:                                               ; preds = %48
  %50 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %51 unwind label %215

51:                                               ; preds = %49
  %52 = getelementptr inbounds %"struct.ts::data::Node", ptr %50, i32 0, i32 7
  %53 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %52, ptr noundef nonnull align 8 dereferenceable(44) %18) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr %22) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %23, ptr noundef nonnull align 8 dereferenceable(44) %3)
          to label %54 unwind label %221

54:                                               ; preds = %51
  invoke void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data24TypeParameterDeclarationEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind writable sret(%"struct.ts::data::NodeArray.174") align 8 %22, ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %23)
          to label %55 unwind label %225

55:                                               ; preds = %54
  %56 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %57 unwind label %229

57:                                               ; preds = %55
  %58 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %56, i32 0, i32 1
  %59 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %58, ptr noundef nonnull align 8 dereferenceable(44) %22) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %22) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %23) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr %24) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %25, ptr noundef nonnull align 8 dereferenceable(44) %4)
          to label %60 unwind label %235

60:                                               ; preds = %57
  invoke void @_ZN2ts11NodeFactory15createNodeArrayI3ptrINS_4data20ParameterDeclarationEEEENS3_9NodeArrayIT_EES8_b(ptr dead_on_unwind writable sret(%"struct.ts::data::NodeArray.182") align 8 %24, ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %25, i1 noundef zeroext false)
          to label %61 unwind label %239

61:                                               ; preds = %60
  %62 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %63 unwind label %243

63:                                               ; preds = %61
  %64 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %62, i32 0, i32 2
  %65 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %64, ptr noundef nonnull align 8 dereferenceable(44) %24) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %24) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %25) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %24) #6
  %66 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %67 unwind label %249

67:                                               ; preds = %63
  %68 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %66, i32 0, i32 3
  %69 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data8TypeNodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull align 8 dereferenceable(16) %5) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #6
  store i1 false, ptr %28, align 1
  store i1 false, ptr %29, align 1
  %70 = invoke noundef zeroext i1 @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %71 unwind label %253

71:                                               ; preds = %67
  br i1 %70, label %73, label %72

72:                                               ; preds = %71
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %6) #6
  br label %76

73:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #6
  store i1 true, ptr %28, align 1
  invoke void @_ZN2ts11NodeFactory11createTokenI3ptrINS_4data4NodeEEEET_10SyntaxKind(ptr dead_on_unwind writable sret(%struct.ptr.17) align 8 %27, ptr noundef nonnull align 8 dereferenceable(232) %47, i32 noundef 39)
          to label %74 unwind label %257

74:                                               ; preds = %73
  store i1 true, ptr %29, align 1
  invoke void @_ZN3ptrIN2ts4data4NodeEE2asIS_INS1_16PunctuationTokenIL10SyntaxKind39EEEEEET_v(ptr dead_on_unwind writable sret(%struct.ptr.435) align 8 %26, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %75 unwind label %261

75:                                               ; preds = %74
  br label %76

76:                                               ; preds = %75, %72
  %77 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %78 unwind label %265

78:                                               ; preds = %76
  %79 = getelementptr inbounds %"struct.ts::data::ArrowFunction", ptr %77, i32 0, i32 2
  %80 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 8 dereferenceable(16) %26) #6
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #6
  %81 = load i1, ptr %29, align 1
  br i1 %81, label %82, label %83

82:                                               ; preds = %78
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #6
  br label %83

83:                                               ; preds = %82, %78
  %84 = load i1, ptr %28, align 1
  br i1 %84, label %85, label %86

85:                                               ; preds = %83
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #6
  br label %86

86:                                               ; preds = %85, %83
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #6
  %87 = getelementptr inbounds %"class.ts::NodeFactory", ptr %47, i32 0, i32 2
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(16) %7) #6
  invoke void @_ZN2ts18ParenthesizerRules38parenthesizeConciseBodyOfArrowFunctionE3ptrINS_4data4NodeEE(ptr dead_on_unwind writable sret(%struct.ptr.17) align 8 %30, ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef %31)
          to label %88 unwind label %278

88:                                               ; preds = %86
  %89 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %90 unwind label %282

90:                                               ; preds = %88
  %91 = getelementptr inbounds %"struct.ts::data::FunctionLikeDeclarationBase", ptr %89, i32 0, i32 3
  %92 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data4NodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %91, ptr noundef nonnull align 8 dereferenceable(16) %30) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #6
  %93 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %94 unwind label %287

94:                                               ; preds = %90
  %95 = getelementptr inbounds %"struct.ts::data::Node", ptr %93, i32 0, i32 7
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %33, ptr noundef nonnull align 8 dereferenceable(44) %95)
          to label %96 unwind label %287

96:                                               ; preds = %94
  %97 = invoke noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef %33)
          to label %98 unwind label %291

98:                                               ; preds = %96
  %99 = invoke noundef i32 @_ZN2tsanENS_13ModifierFlagsES0_(i32 noundef %97, i32 noundef 256)
          to label %100 unwind label %291

100:                                              ; preds = %98
  %101 = invoke noundef zeroext i1 @_ZN2tsntENS_13ModifierFlagsE(i32 noundef %99)
          to label %102 unwind label %291

102:                                              ; preds = %100
  %103 = xor i1 %101, true
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %33) #6
  %104 = zext i1 %103 to i8
  store i8 %104, ptr %32, align 1, !tbaa !9
  %105 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %106 unwind label %287

106:                                              ; preds = %102
  %107 = getelementptr inbounds %"struct.ts::data::Node", ptr %105, i32 0, i32 7
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %107)
          to label %108 unwind label %287

108:                                              ; preds = %106
  %109 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data4NodeEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %34)
          to label %110 unwind label %295

110:                                              ; preds = %108
  %111 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %112 unwind label %295

112:                                              ; preds = %110
  %113 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %111, i32 0, i32 1
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %35, ptr noundef nonnull align 8 dereferenceable(44) %113)
          to label %114 unwind label %295

114:                                              ; preds = %112
  %115 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data24TypeParameterDeclarationEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %35)
          to label %116 unwind label %299

116:                                              ; preds = %114
  %117 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %109, i32 noundef %115)
          to label %118 unwind label %299

118:                                              ; preds = %116
  %119 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %120 unwind label %299

120:                                              ; preds = %118
  %121 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %119, i32 0, i32 2
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %36, ptr noundef nonnull align 8 dereferenceable(44) %121)
          to label %122 unwind label %299

122:                                              ; preds = %120
  %123 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data20ParameterDeclarationEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %36)
          to label %124 unwind label %303

124:                                              ; preds = %122
  %125 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %117, i32 noundef %123)
          to label %126 unwind label %303

126:                                              ; preds = %124
  %127 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %128 unwind label %303

128:                                              ; preds = %126
  %129 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %127, i32 0, i32 3
  call void @_ZN3ptrIN2ts4data8TypeNodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(16) %129) #6
  invoke void @_ZN3ptrIN2ts4data4NodeEEC2INS1_8TypeNodeEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef %38)
          to label %130 unwind label %307

130:                                              ; preds = %128
  %131 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %37)
          to label %132 unwind label %311

132:                                              ; preds = %130
  %133 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %125, i32 noundef %131)
          to label %134 unwind label %311

134:                                              ; preds = %132
  %135 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %136 unwind label %311

136:                                              ; preds = %134
  %137 = getelementptr inbounds %"struct.ts::data::ArrowFunction", ptr %135, i32 0, i32 2
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 8 dereferenceable(16) %137) #6
  invoke void @_ZN3ptrIN2ts4data4NodeEEC2INS1_16PunctuationTokenIL10SyntaxKind39EEEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef %40)
          to label %138 unwind label %315

138:                                              ; preds = %136
  %139 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %39)
          to label %140 unwind label %319

140:                                              ; preds = %138
  %141 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %133, i32 noundef %139)
          to label %142 unwind label %319

142:                                              ; preds = %140
  %143 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %144 unwind label %319

144:                                              ; preds = %142
  %145 = getelementptr inbounds %"struct.ts::data::FunctionLikeDeclarationBase", ptr %143, i32 0, i32 3
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(16) %145) #6
  %146 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %47, ptr noundef %41)
          to label %147 unwind label %323

147:                                              ; preds = %144
  %148 = invoke noundef i32 @_ZN2tscoENS_14TransformFlagsE(i32 noundef 67108864)
          to label %149 unwind label %323

149:                                              ; preds = %147
  %150 = invoke noundef i32 @_ZN2tsanENS_14TransformFlagsES0_(i32 noundef %146, i32 noundef %148)
          to label %151 unwind label %323

151:                                              ; preds = %149
  %152 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %141, i32 noundef %150)
          to label %153 unwind label %323

153:                                              ; preds = %151
  %154 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %155 unwind label %323

155:                                              ; preds = %153
  %156 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %154, i32 0, i32 1
  %157 = invoke noundef zeroext i1 @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(44) %156)
          to label %158 unwind label %323

158:                                              ; preds = %155
  br i1 %157, label %165, label %159

159:                                              ; preds = %158
  %160 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %161 unwind label %323

161:                                              ; preds = %159
  %162 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %160, i32 0, i32 3
  %163 = invoke noundef zeroext i1 @_ZN3ptrIN2ts4data8TypeNodeEEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %162)
          to label %164 unwind label %323

164:                                              ; preds = %161
  br label %165

165:                                              ; preds = %164, %158
  %166 = phi i1 [ true, %158 ], [ %163, %164 ]
  %167 = zext i1 %166 to i64
  %168 = select i1 %166, i32 1, i32 0
  %169 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %152, i32 noundef %168)
          to label %170 unwind label %323

170:                                              ; preds = %165
  %171 = load i8, ptr %32, align 1, !tbaa !9, !range !11, !noundef !12
  %172 = trunc i8 %171 to i1
  br i1 %172, label %173, label %176

173:                                              ; preds = %170
  %174 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef 256, i32 noundef 16384)
          to label %175 unwind label %323

175:                                              ; preds = %173
  br label %177

176:                                              ; preds = %170
  br label %177

177:                                              ; preds = %176, %175
  %178 = phi i32 [ %174, %175 ], [ 0, %176 ]
  %179 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %169, i32 noundef %178)
          to label %180 unwind label %323

180:                                              ; preds = %177
  %181 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %179, i32 noundef 1024)
          to label %182 unwind label %323

182:                                              ; preds = %180
  %183 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %184 unwind label %323

184:                                              ; preds = %182
  %185 = getelementptr inbounds %"struct.ts::data::Node", ptr %183, i32 0, i32 5
  store i32 %181, ptr %185, align 8, !tbaa !13
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #6
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #6
  call void @_ZN3ptrIN2ts4data8TypeNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %36) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %35) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %34) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr %42) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEC2E11undefined_t(ptr noundef nonnull align 8 dereferenceable(44) %42)
          to label %186 unwind label %334

186:                                              ; preds = %184
  %187 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %188 unwind label %338

188:                                              ; preds = %186
  %189 = getelementptr inbounds %"struct.ts::data::SignatureDeclarationBase", ptr %187, i32 0, i32 4
  %190 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %189, ptr noundef nonnull align 8 dereferenceable(44) %42) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data8TypeNodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %42) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr %44) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEC2E11undefined_t(ptr noundef nonnull align 8 dereferenceable(44) %44)
          to label %191 unwind label %343

191:                                              ; preds = %188
  %192 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %193 unwind label %347

193:                                              ; preds = %191
  %194 = getelementptr inbounds %"struct.ts::data::JSDocContainer", ptr %192, i32 0, i32 2
  %195 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %194, ptr noundef nonnull align 8 dereferenceable(44) %44) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data5JSDocEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %44) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #6
  %196 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %197 unwind label %287

197:                                              ; preds = %193
  %198 = getelementptr inbounds i8, ptr %196, i64 568
  %199 = getelementptr inbounds %"struct.ts::data::LocalsContainer", ptr %198, i32 0, i32 0
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data6SymbolESt4lessIS5_ESaISt4pairIKS5_S8_EEE5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %199) #6
  %200 = invoke noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %201 unwind label %287

201:                                              ; preds = %197
  %202 = getelementptr inbounds i8, ptr %200, i64 568
  %203 = getelementptr inbounds %"struct.ts::data::LocalsContainer", ptr %202, i32 0, i32 1
  %204 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data4NodeEEaSE11undefined_t(ptr noundef nonnull align 8 dereferenceable(16) %203)
          to label %205 unwind label %287

205:                                              ; preds = %201
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #6
  %206 = load i1, ptr %17, align 1
  br i1 %206, label %354, label %353

207:                                              ; preds = %8
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %20, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %21, align 4
  br label %220

211:                                              ; preds = %48
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %20, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %21, align 4
  br label %219

215:                                              ; preds = %49
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %20, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #6
  br label %219

219:                                              ; preds = %215, %211
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #6
  br label %220

220:                                              ; preds = %219, %207
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #6
  br label %355

221:                                              ; preds = %51
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %20, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %21, align 4
  br label %234

225:                                              ; preds = %54
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %20, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %21, align 4
  br label %233

229:                                              ; preds = %55
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %20, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %22) #6
  br label %233

233:                                              ; preds = %229, %225
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %23) #6
  br label %234

234:                                              ; preds = %233, %221
  call void @llvm.lifetime.end.p0(i64 48, ptr %22) #6
  br label %355

235:                                              ; preds = %57
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %20, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %21, align 4
  br label %248

239:                                              ; preds = %60
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %20, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %21, align 4
  br label %247

243:                                              ; preds = %61
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %20, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %24) #6
  br label %247

247:                                              ; preds = %243, %239
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %25) #6
  br label %248

248:                                              ; preds = %247, %235
  call void @llvm.lifetime.end.p0(i64 48, ptr %24) #6
  br label %355

249:                                              ; preds = %63
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %20, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %21, align 4
  br label %355

253:                                              ; preds = %67
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %20, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %21, align 4
  br label %277

257:                                              ; preds = %73
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %20, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %21, align 4
  br label %273

261:                                              ; preds = %74
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %20, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %21, align 4
  br label %269

265:                                              ; preds = %76
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %20, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %21, align 4
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #6
  br label %269

269:                                              ; preds = %265, %261
  %270 = load i1, ptr %29, align 1
  br i1 %270, label %271, label %272

271:                                              ; preds = %269
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #6
  br label %272

272:                                              ; preds = %271, %269
  br label %273

273:                                              ; preds = %272, %257
  %274 = load i1, ptr %28, align 1
  br i1 %274, label %275, label %276

275:                                              ; preds = %273
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #6
  br label %276

276:                                              ; preds = %275, %273
  br label %277

277:                                              ; preds = %276, %253
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #6
  br label %355

278:                                              ; preds = %86
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %20, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %21, align 4
  br label %286

282:                                              ; preds = %88
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %20, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %21, align 4
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #6
  br label %286

286:                                              ; preds = %282, %278
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #6
  br label %355

287:                                              ; preds = %201, %197, %193, %106, %102, %94, %90
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %20, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %21, align 4
  br label %352

291:                                              ; preds = %100, %98, %96
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %20, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %33) #6
  br label %352

295:                                              ; preds = %112, %110, %108
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %20, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %21, align 4
  br label %333

299:                                              ; preds = %120, %118, %116, %114
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %20, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %21, align 4
  br label %332

303:                                              ; preds = %126, %124, %122
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %20, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %21, align 4
  br label %331

307:                                              ; preds = %128
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %20, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %21, align 4
  br label %330

311:                                              ; preds = %134, %132, %130
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %20, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %21, align 4
  br label %329

315:                                              ; preds = %136
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %20, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %21, align 4
  br label %328

319:                                              ; preds = %142, %140, %138
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %20, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %21, align 4
  br label %327

323:                                              ; preds = %182, %180, %177, %173, %165, %161, %159, %155, %153, %151, %149, %147, %144
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %20, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %21, align 4
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #6
  br label %327

327:                                              ; preds = %323, %319
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #6
  br label %328

328:                                              ; preds = %327, %315
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #6
  br label %329

329:                                              ; preds = %328, %311
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #6
  br label %330

330:                                              ; preds = %329, %307
  call void @_ZN3ptrIN2ts4data8TypeNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #6
  br label %331

331:                                              ; preds = %330, %303
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %36) #6
  br label %332

332:                                              ; preds = %331, %299
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %35) #6
  br label %333

333:                                              ; preds = %332, %295
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %34) #6
  br label %352

334:                                              ; preds = %184
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %20, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %21, align 4
  br label %342

338:                                              ; preds = %186
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %20, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data8TypeNodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %42) #6
  br label %342

342:                                              ; preds = %338, %334
  call void @llvm.lifetime.end.p0(i64 48, ptr %42) #6
  br label %352

343:                                              ; preds = %188
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %20, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %21, align 4
  br label %351

347:                                              ; preds = %191
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %20, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data5JSDocEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %44) #6
  br label %351

351:                                              ; preds = %347, %343
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #6
  br label %352

352:                                              ; preds = %351, %342, %333, %291, %287
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #6
  br label %355

353:                                              ; preds = %205
  call void @_ZN3ptrIN2ts4data13ArrowFunctionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #6
  br label %354

354:                                              ; preds = %353, %205
  ret void

355:                                              ; preds = %352, %286, %277, %249, %248, %234, %220
  call void @_ZN3ptrIN2ts4data13ArrowFunctionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #6
  br label %356

356:                                              ; preds = %355
  %357 = load ptr, ptr %20, align 8
  %358 = load i32, ptr %21, align 4
  %359 = insertvalue { ptr, i32 } poison, ptr %357, 0
  %360 = insertvalue { ptr, i32 } %359, i32 %358, 1
  resume { ptr, i32 } %360
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data13ArrowFunctionEEEEDa10SyntaxKind(ptr dead_on_unwind noalias writable sret(%struct.ptr.431) align 8, ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11createTokenI3ptrINS_4data4NodeEEEET_10SyntaxKind(ptr dead_on_unwind noalias writable sret(%struct.ptr.17) align 8, ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3ptrIN2ts4data4NodeEE2asIS_INS1_16PunctuationTokenIL10SyntaxKind39EEEEEET_v(ptr dead_on_unwind noalias writable sret(%struct.ptr.435) align 8, ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

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

declare void @_ZN2ts18ParenthesizerRules38parenthesizeConciseBodyOfArrowFunctionE3ptrINS_4data4NodeEE(ptr dead_on_unwind writable sret(%struct.ptr.17) align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = !{!14, !21, i64 32}
!14 = !{!"_ZTSN2ts4data4NodeE", !15, i64 8, !18, i64 20, !19, i64 24, !20, i64 28, !21, i64 32, !22, i64 40, !17, i64 88, !28, i64 96, !28, i64 112, !32, i64 128, !10, i64 132}
!15 = !{!"_ZTSN2ts4data9TextRangeE", !16, i64 0, !17, i64 8}
!16 = !{!"_ZTSN2ts8pos_typeE", !17, i64 0, !17, i64 4}
!17 = !{!"int", !7, i64 0}
!18 = !{!"_ZTS10SyntaxKind", !7, i64 0}
!19 = !{!"_ZTSN2ts9NodeFlagsE", !7, i64 0}
!20 = !{!"_ZTSN2ts13ModifierFlagsE", !7, i64 0}
!21 = !{!"_ZTSN2ts14TransformFlagsE", !7, i64 0}
!22 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_4NodeEEEE", !23, i64 0, !15, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !21, i64 40}
!23 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_4NodeEEEE", !24, i64 0}
!24 = !{!"_ZTSSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTS3ptrIN2ts4data4NodeEE", !29, i64 0}
!29 = !{!"_ZTSSt10shared_ptrIN2ts4data4NodeEE", !30, i64 0}
!30 = !{!"_ZTSSt12__shared_ptrIN2ts4data4NodeELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !31, i64 8}
!31 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!32 = !{!"_ZTSN2ts13InternalFlagsE", !7, i64 0}


; 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.ts::data::NodeArray" = type <{ %"struct.ts::data::ReadonlyArray", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray" = type { %"class.std::vector.21" }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::TextRange" = type { %"struct.ts::pos_type", i32 }
%"struct.ts::pos_type" = type { i32, i32 }
%"struct.ts::data::NodeArray.174" = type <{ %"struct.ts::data::ReadonlyArray.175", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.175" = type { %"class.std::vector.176" }
%"class.std::vector.176" = type { %"struct.std::_Vector_base.177" }
%"struct.std::_Vector_base.177" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::TypeParameterDeclaration>, std::allocator<ptr<ts::data::TypeParameterDeclaration>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::NodeArray.182" = type <{ %"struct.ts::data::ReadonlyArray.183", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.183" = type { %"class.std::vector.184" }
%"class.std::vector.184" = type { %"struct.std::_Vector_base.185" }
%"struct.std::_Vector_base.185" = type { %"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::ParameterDeclaration>, std::allocator<ptr<ts::data::ParameterDeclaration>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ptr.431 = type { %"class.std::shared_ptr.432" }
%"class.std::shared_ptr.432" = type { %"class.std::__shared_ptr.433" }
%"class.std::__shared_ptr.433" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%struct.ptr.435 = type { %"class.std::shared_ptr.436" }
%"class.std::shared_ptr.436" = type { %"class.std::__shared_ptr.437" }
%"class.std::__shared_ptr.437" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.17 = type { %"class.std::shared_ptr.18" }
%"class.std::shared_ptr.18" = type { %"class.std::__shared_ptr.19" }
%"class.std::__shared_ptr.19" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.138 = type { %"class.std::shared_ptr.139" }
%"class.std::shared_ptr.139" = type { %"class.std::__shared_ptr.140" }
%"class.std::__shared_ptr.140" = type { ptr, %"class.std::__shared_count" }
%"struct.ts::data::NodeArray.46" = type <{ %"struct.ts::data::ReadonlyArray.47", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.47" = type { %"class.std::vector.48" }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::NodeArray.30" = type <{ %"struct.ts::data::ReadonlyArray.31", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.31" = type { %"class.std::vector.32" }
%"class.std::vector.32" = type { %"struct.std::_Vector_base.33" }
%"struct.std::_Vector_base.33" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsanENS_14TransformFlagsES0_(i32 noundef, i32 noundef) local_unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tscoENS_14TransformFlagsE(i32 noundef) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data4NodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data8TypeNodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2tsntENS_13ModifierFlagsE(i32 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsanENS_13ModifierFlagsES0_(i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data24TypeParameterDeclarationEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray.174") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory15createNodeArrayI3ptrINS_4data20ParameterDeclarationEEEENS3_9NodeArrayIT_EES8_b(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray.182") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef, i1 noundef zeroext) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts11NodeFactory19createArrowFunctionENS_4data9NodeArrayI3ptrINS1_4NodeEEEENS2_IS3_INS1_24TypeParameterDeclarationEEEENS2_IS3_INS1_20ParameterDeclarationEEEES3_INS1_8TypeNodeEES3_INS1_16PunctuationTokenIL10SyntaxKind39EEEES5_(ptr dead_on_unwind noalias writable sret(%struct.ptr.431) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca %"struct.ts::data::NodeArray", align 8
  %10 = alloca %"struct.ts::data::NodeArray", align 8
  %11 = alloca %"struct.ts::data::NodeArray.174", align 8
  %12 = alloca %"struct.ts::data::NodeArray.174", align 8
  %13 = alloca %"struct.ts::data::NodeArray.182", align 8
  %14 = alloca %"struct.ts::data::NodeArray.182", align 8
  %15 = alloca %struct.ptr.435, align 8
  %16 = alloca %struct.ptr.17, align 8
  %17 = alloca %struct.ptr.17, align 8
  %18 = alloca %struct.ptr.17, align 8
  %19 = alloca %"struct.ts::data::NodeArray", align 8
  %20 = alloca %"struct.ts::data::NodeArray", align 8
  %21 = alloca %"struct.ts::data::NodeArray.174", align 8
  %22 = alloca %"struct.ts::data::NodeArray.182", align 8
  %23 = alloca %struct.ptr.17, align 8
  %24 = alloca %struct.ptr.138, align 8
  %25 = alloca %struct.ptr.17, align 8
  %26 = alloca %struct.ptr.435, align 8
  %27 = alloca %struct.ptr.17, align 8
  %28 = alloca %"struct.ts::data::NodeArray.46", align 8
  %29 = alloca %"struct.ts::data::NodeArray.30", align 8
  tail call void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data13ArrowFunctionEEEEDa10SyntaxKind(ptr dead_on_unwind writable sret(%struct.ptr.431) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, i32 noundef 219)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %10, ptr noundef nonnull align 8 dereferenceable(44) %2)
          to label %30 unwind label %133

30:                                               ; preds = %8
  invoke void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind nonnull writable sret(%"struct.ts::data::NodeArray") align 8 %9, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %10)
          to label %31 unwind label %135

31:                                               ; preds = %30
  %32 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %33 = getelementptr inbounds i8, ptr %32, i64 40
  %34 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %33, ptr noundef nonnull align 8 dereferenceable(44) %9) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %9) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %10) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %12, ptr noundef nonnull align 8 dereferenceable(44) %3)
          to label %35 unwind label %138

35:                                               ; preds = %31
  invoke void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data24TypeParameterDeclarationEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind nonnull writable sret(%"struct.ts::data::NodeArray.174") align 8 %11, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %12)
          to label %36 unwind label %140

36:                                               ; preds = %35
  %37 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %38 = getelementptr inbounds i8, ptr %37, i64 360
  %39 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %38, ptr noundef nonnull align 8 dereferenceable(44) %11) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %11) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %12) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %13) #6
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %14, ptr noundef nonnull align 8 dereferenceable(44) %4)
          to label %40 unwind label %143

40:                                               ; preds = %36
  invoke void @_ZN2ts11NodeFactory15createNodeArrayI3ptrINS_4data20ParameterDeclarationEEEENS3_9NodeArrayIT_EES8_b(ptr dead_on_unwind nonnull writable sret(%"struct.ts::data::NodeArray.182") align 8 %13, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %14, i1 noundef zeroext false)
          to label %41 unwind label %145

41:                                               ; preds = %40
  %42 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %43 = getelementptr inbounds i8, ptr %42, i64 408
  %44 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %43, ptr noundef nonnull align 8 dereferenceable(44) %13) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %13) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %14) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #6
  %45 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %46 = getelementptr inbounds i8, ptr %45, i64 456
  %47 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data8TypeNodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %5) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #6
  %48 = call noundef zeroext i1 @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
  br i1 %48, label %50, label %49

49:                                               ; preds = %41
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %6) #6
  br label %52

50:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #6
  invoke void @_ZN2ts11NodeFactory11createTokenI3ptrINS_4data4NodeEEEET_10SyntaxKind(ptr dead_on_unwind nonnull writable sret(%struct.ptr.17) align 8 %16, ptr noundef nonnull align 8 dereferenceable(232) %1, i32 noundef 39)
          to label %51 unwind label %148

51:                                               ; preds = %50
  invoke void @_ZN3ptrIN2ts4data4NodeEE2asIS_INS1_16PunctuationTokenIL10SyntaxKind39EEEEEET_v(ptr dead_on_unwind nonnull writable sret(%struct.ptr.435) align 8 %15, ptr noundef nonnull align 8 dereferenceable(16) %16)
          to label %52 unwind label %150

52:                                               ; preds = %51, %49
  %53 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %54 = getelementptr inbounds i8, ptr %53, i64 632
  %55 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(16) %15) #6
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #6
  br i1 %48, label %56, label %.critedge

56:                                               ; preds = %52
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #6
  br label %.critedge

.critedge:                                        ; preds = %52, %56
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #6
  %57 = getelementptr inbounds i8, ptr %1, i64 184
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %7) #6
  invoke void @_ZN2ts18ParenthesizerRules38parenthesizeConciseBodyOfArrowFunctionE3ptrINS_4data4NodeEE(ptr dead_on_unwind nonnull writable sret(%struct.ptr.17) align 8 %17, ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull %18)
          to label %58 unwind label %153

58:                                               ; preds = %.critedge
  %59 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %60 = getelementptr inbounds i8, ptr %59, i64 552
  %61 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data4NodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 8 dereferenceable(16) %17) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #6
  %62 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %63 = getelementptr inbounds i8, ptr %62, i64 40
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %19, ptr noundef nonnull align 8 dereferenceable(44) %63)
          to label %64 unwind label %155

64:                                               ; preds = %58
  %65 = invoke noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef nonnull %19)
          to label %66 unwind label %157

66:                                               ; preds = %64
  %67 = call noundef i32 @_ZN2tsanENS_13ModifierFlagsES0_(i32 noundef %65, i32 noundef 256)
  %68 = call noundef zeroext i1 @_ZN2tsntENS_13ModifierFlagsE(i32 noundef %67)
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #6
  %69 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %70 = getelementptr inbounds i8, ptr %69, i64 40
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %20, ptr noundef nonnull align 8 dereferenceable(44) %70)
          to label %71 unwind label %155

71:                                               ; preds = %66
  %72 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data4NodeEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %20)
          to label %73 unwind label %159

73:                                               ; preds = %71
  %74 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %75 = getelementptr inbounds i8, ptr %74, i64 360
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %21, ptr noundef nonnull align 8 dereferenceable(44) %75)
          to label %76 unwind label %159

76:                                               ; preds = %73
  %77 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data24TypeParameterDeclarationEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %21)
          to label %78 unwind label %161

78:                                               ; preds = %76
  %79 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %72, i32 noundef %77)
  %80 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %81 = getelementptr inbounds i8, ptr %80, i64 408
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_20ParameterDeclarationEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %22, ptr noundef nonnull align 8 dereferenceable(44) %81)
          to label %82 unwind label %161

82:                                               ; preds = %78
  %83 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data20ParameterDeclarationEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %22)
          to label %84 unwind label %163

84:                                               ; preds = %82
  %85 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %79, i32 noundef %83)
  %86 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %87 = getelementptr inbounds i8, ptr %86, i64 456
  call void @_ZN3ptrIN2ts4data8TypeNodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %87) #6
  call void @_ZN3ptrIN2ts4data4NodeEEC2INS1_8TypeNodeEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull %24)
  %88 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %23)
          to label %89 unwind label %165

89:                                               ; preds = %84
  %90 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %85, i32 noundef %88)
  %91 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %92 = getelementptr inbounds i8, ptr %91, i64 632
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %92) #6
  call void @_ZN3ptrIN2ts4data4NodeEEC2INS1_16PunctuationTokenIL10SyntaxKind39EEEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull %26)
  %93 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %25)
          to label %94 unwind label %167

94:                                               ; preds = %89
  %95 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %90, i32 noundef %93)
  %96 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %97 = getelementptr inbounds i8, ptr %96, i64 552
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %97) #6
  %98 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %27)
          to label %99 unwind label %169

99:                                               ; preds = %94
  %100 = call noundef i32 @_ZN2tscoENS_14TransformFlagsE(i32 noundef 67108864)
  %101 = call noundef i32 @_ZN2tsanENS_14TransformFlagsES0_(i32 noundef %98, i32 noundef %100)
  %102 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %95, i32 noundef %101)
  %103 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %104 = getelementptr inbounds i8, ptr %103, i64 360
  %105 = call noundef zeroext i1 @_ZN2ts4data9NodeArrayI3ptrINS0_24TypeParameterDeclarationEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(44) %104)
  br i1 %105, label %111, label %106

106:                                              ; preds = %99
  %107 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %108 = getelementptr inbounds i8, ptr %107, i64 456
  %109 = call noundef zeroext i1 @_ZN3ptrIN2ts4data8TypeNodeEEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %108)
  %110 = zext i1 %109 to i32
  br label %111

111:                                              ; preds = %106, %99
  %112 = phi i32 [ 1, %99 ], [ %110, %106 ]
  %113 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %102, i32 noundef %112)
  br i1 %68, label %116, label %114

114:                                              ; preds = %111
  %115 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef 256, i32 noundef 16384)
  br label %116

116:                                              ; preds = %111, %114
  %117 = phi i32 [ %115, %114 ], [ 0, %111 ]
  %118 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %113, i32 noundef %117)
  %119 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %118, i32 noundef 1024)
  %120 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %121 = getelementptr inbounds i8, ptr %120, i64 32
  store i32 %119, ptr %121, align 8, !tbaa !5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #6
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #6
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #6
  call void @_ZN3ptrIN2ts4data8TypeNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %22) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %21) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %20) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %28) #6
  call void @_ZN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEC2E11undefined_t(ptr noundef nonnull align 8 dereferenceable(44) %28)
  %122 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %123 = getelementptr inbounds i8, ptr %122, i64 472
  %124 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %123, ptr noundef nonnull align 8 dereferenceable(44) %28) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data8TypeNodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %28) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %29) #6
  call void @_ZN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEC2E11undefined_t(ptr noundef nonnull align 8 dereferenceable(44) %29)
  %125 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %126 = getelementptr inbounds i8, ptr %125, i64 136
  %127 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %126, ptr noundef nonnull align 8 dereferenceable(44) %29) #6
  call void @_ZNSt6vectorI3ptrIN2ts4data5JSDocEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %29) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %29) #6
  %128 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %129 = getelementptr inbounds i8, ptr %128, i64 568
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data6SymbolESt4lessIS5_ESaISt4pairIKS5_S8_EEE5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %129) #6
  %130 = call noundef ptr @_ZN3ptrIN2ts4data13ArrowFunctionEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %131 = getelementptr inbounds i8, ptr %130, i64 616
  %132 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data4NodeEEaSE11undefined_t(ptr noundef nonnull align 8 dereferenceable(16) %131)
  ret void

133:                                              ; preds = %8
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %30
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %10) #6
  br label %137

137:                                              ; preds = %135, %133
  %.pn = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #6
  br label %176

138:                                              ; preds = %31
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %35
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %12) #6
  br label %142

142:                                              ; preds = %140, %138
  %.pn22 = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #6
  br label %176

143:                                              ; preds = %36
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %147

145:                                              ; preds = %40
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %14) #6
  br label %147

147:                                              ; preds = %145, %143
  %.pn24 = phi { ptr, i32 } [ %146, %145 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #6
  br label %176

148:                                              ; preds = %50
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %152

150:                                              ; preds = %51
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #6
  br label %152

152:                                              ; preds = %148, %150
  %.pn26 = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  br label %176

153:                                              ; preds = %.critedge
  %154 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #6
  br label %176

155:                                              ; preds = %66, %58
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %176

157:                                              ; preds = %64
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #6
  br label %176

159:                                              ; preds = %73, %71
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %175

161:                                              ; preds = %78, %76
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %174

163:                                              ; preds = %82
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %173

165:                                              ; preds = %84
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %172

167:                                              ; preds = %89
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %171

169:                                              ; preds = %94
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #6
  br label %171

171:                                              ; preds = %169, %167
  %.pn28 = phi { ptr, i32 } [ %170, %169 ], [ %168, %167 ]
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #6
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #6
  br label %172

172:                                              ; preds = %171, %165
  %.pn28.pn = phi { ptr, i32 } [ %.pn28, %171 ], [ %166, %165 ]
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #6
  call void @_ZN3ptrIN2ts4data8TypeNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #6
  br label %173

173:                                              ; preds = %172, %163
  %.pn28.pn.pn = phi { ptr, i32 } [ %.pn28.pn, %172 ], [ %164, %163 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data20ParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %22) #6
  br label %174

174:                                              ; preds = %173, %161
  %.pn28.pn.pn.pn = phi { ptr, i32 } [ %.pn28.pn.pn, %173 ], [ %162, %161 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data24TypeParameterDeclarationEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %21) #6
  br label %175

175:                                              ; preds = %174, %159
  %.pn28.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn28.pn.pn.pn, %174 ], [ %160, %159 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %20) #6
  br label %176

176:                                              ; preds = %155, %157, %175, %153, %152, %147, %142, %137
  %.pn28.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %154, %153 ], [ %.pn26, %152 ], [ %.pn24, %147 ], [ %.pn22, %142 ], [ %.pn, %137 ], [ %.pn28.pn.pn.pn.pn, %175 ], [ %156, %155 ], [ %158, %157 ]
  call void @_ZN3ptrIN2ts4data13ArrowFunctionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #6
  resume { ptr, i32 } %.pn28.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data13ArrowFunctionEEEEDa10SyntaxKind(ptr dead_on_unwind noalias writable sret(%struct.ptr.431) align 8, ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11createTokenI3ptrINS_4data4NodeEEEET_10SyntaxKind(ptr dead_on_unwind noalias writable sret(%struct.ptr.17) align 8, ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3ptrIN2ts4data4NodeEE2asIS_INS1_16PunctuationTokenIL10SyntaxKind39EEEEEET_v(ptr dead_on_unwind noalias writable sret(%struct.ptr.435) align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind39EEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

declare void @_ZN2ts18ParenthesizerRules38parenthesizeConciseBodyOfArrowFunctionE3ptrINS_4data4NodeEE(ptr dead_on_unwind writable sret(%struct.ptr.17) align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !15, i64 32}
!6 = !{!"_ZTSN2ts4data4NodeE", !7, i64 8, !12, i64 20, !13, i64 24, !14, i64 28, !15, i64 32, !16, i64 40, !9, i64 88, !24, i64 96, !24, i64 112, !28, i64 128, !23, i64 132}
!7 = !{!"_ZTSN2ts4data9TextRangeE", !8, i64 0, !9, i64 8}
!8 = !{!"_ZTSN2ts8pos_typeE", !9, i64 0, !9, i64 4}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"_ZTS10SyntaxKind", !10, i64 0}
!13 = !{!"_ZTSN2ts9NodeFlagsE", !10, i64 0}
!14 = !{!"_ZTSN2ts13ModifierFlagsE", !10, i64 0}
!15 = !{!"_ZTSN2ts14TransformFlagsE", !10, i64 0}
!16 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_4NodeEEEE", !17, i64 0, !7, i64 24, !23, i64 36, !23, i64 37, !23, i64 38, !15, i64 40}
!17 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_4NodeEEEE", !18, i64 0}
!18 = !{!"_ZTSSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}
!22 = !{!"any pointer", !10, i64 0}
!23 = !{!"bool", !10, i64 0}
!24 = !{!"_ZTS3ptrIN2ts4data4NodeEE", !25, i64 0}
!25 = !{!"_ZTSSt10shared_ptrIN2ts4data4NodeEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrIN2ts4data4NodeELN9__gnu_cxx12_Lock_policyE2EE", !22, i64 0, !27, i64 8}
!27 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !22, i64 0}
!28 = !{!"_ZTSN2ts13InternalFlagsE", !10, i64 0}


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