; 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.ptr.1016 = type { %"class.std::shared_ptr.1017" }
%"class.std::shared_ptr.1017" = type { %"class.std::__shared_ptr.1018" }
%"class.std::__shared_ptr.1018" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::NodeArray.1043" = type <{ %"struct.ts::data::ReadonlyArray.1044", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.1044" = type { %"class.std::vector.1045" }
%"class.std::vector.1045" = type { %"struct.std::_Vector_base.1046" }
%"struct.std::_Vector_base.1046" = type { %"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_Vector_impl" }
%"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_Vector_impl" = type { %"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_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.1107" = type <{ %"struct.ts::data::ReadonlyArray.1108", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.1108" = type { %"class.std::vector.1109" }
%"class.std::vector.1109" = type { %"struct.std::_Vector_base.1110" }
%"struct.std::_Vector_base.1110" = type { %"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::NodeArray.564" = type <{ %"struct.ts::data::ReadonlyArray.565", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.565" = type { %"class.std::vector.566" }
%"class.std::vector.566" = type { %"struct.std::_Vector_base.567" }
%"struct.std::_Vector_base.567" = type { %"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::SourceFile" = type <{ %"struct.ts::data::SourceFileLike", %"struct.ts::data::NodeArray.564", %struct.ptr.1020, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %struct.ptr.1031, %"struct.ts::data::NodeArray.1035", %"class.std::__cxx11::basic_string", %"struct.ts::data::NodeArray.1043", %"struct.ts::data::NodeArray.1043", %"struct.ts::data::NodeArray.1043", i32, i8, [3 x i8], %"class.std::map.1051", i8, [3 x i8], i32, i32, [4 x i8], %struct.ptr.17, %"class.std::function.1056", %struct.ptr.17, %"class.std::map.190", %"class.std::map.1051", i32, i32, i32, [4 x i8], %"class.std::vector.1059", %"class.std::vector.1059", %"class.std::vector.1059", %"class.std::vector.1059", %"class.std::vector.1059", %"class.std::set", %"class.std::vector.1068", %"class.std::map.1073", %"class.std::map.1078", %"struct.ts::data::NodeArray", %"struct.ts::data::NodeArray", %"class.std::vector.1083", %"class.std::vector.1088", %struct.ptr.1093, %"class.std::__cxx11::basic_string", %"class.std::map.1097", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %struct.ptr.17, %struct.ptr.17, %"class.std::vector.1102", i32, [4 x i8] }>
%"struct.ts::data::SourceFileLike" = type { %"struct.ts::data::Declaration", %"class.std::__cxx11::basic_string", %"class.std::vector.1024", %"class.std::function.1029" }
%"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.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::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.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.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" }
%"class.std::vector.1024" = type { %"struct.std::_Vector_base.1025" }
%"struct.std::_Vector_base.1025" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.1029" = 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.ptr.1020 = type { %"class.std::shared_ptr.1021" }
%"class.std::shared_ptr.1021" = type { %"class.std::__shared_ptr.1022" }
%"class.std::__shared_ptr.1022" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.1031 = type { %"class.std::shared_ptr.1032" }
%"class.std::shared_ptr.1032" = type { %"class.std::__shared_ptr.1033" }
%"class.std::__shared_ptr.1033" = type { ptr, %"class.std::__shared_count" }
%"struct.ts::data::NodeArray.1035" = type <{ %"struct.ts::data::ReadonlyArray.1036", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.1036" = type { %"class.std::vector.1037" }
%"class.std::vector.1037" = type { %"struct.std::_Vector_base.1038" }
%"struct.std::_Vector_base.1038" = type { %"struct.std::_Vector_base<ts::data::AmdDependency, std::allocator<ts::data::AmdDependency>>::_Vector_impl" }
%"struct.std::_Vector_base<ts::data::AmdDependency, std::allocator<ts::data::AmdDependency>>::_Vector_impl" = type { %"struct.std::_Vector_base<ts::data::AmdDependency, std::allocator<ts::data::AmdDependency>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ts::data::AmdDependency, std::allocator<ts::data::AmdDependency>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.1056" = type { %"class.std::_Function_base", ptr }
%"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.std::map.1051" = type { %"class.std::_Rb_tree.1052" }
%"class.std::_Rb_tree.1052" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, std::__cxx11::basic_string<wchar_t>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, std::__cxx11::basic_string<wchar_t>>>, 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>, std::__cxx11::basic_string<wchar_t>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, std::__cxx11::basic_string<wchar_t>>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.1059" = type { %"struct.std::_Vector_base.1060" }
%"struct.std::_Vector_base.1060" = type { %"struct.std::_Vector_base<ts::data::DiagnosticWithLocation, std::allocator<ts::data::DiagnosticWithLocation>>::_Vector_impl" }
%"struct.std::_Vector_base<ts::data::DiagnosticWithLocation, std::allocator<ts::data::DiagnosticWithLocation>>::_Vector_impl" = type { %"struct.std::_Vector_base<ts::data::DiagnosticWithLocation, std::allocator<ts::data::DiagnosticWithLocation>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ts::data::DiagnosticWithLocation, std::allocator<ts::data::DiagnosticWithLocation>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.1064" }
%"class.std::_Rb_tree.1064" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::__cxx11::basic_string<wchar_t>, std::_Identity<std::__cxx11::basic_string<wchar_t>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::__cxx11::basic_string<wchar_t>, std::_Identity<std::__cxx11::basic_string<wchar_t>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.1068" = type { %"struct.std::_Vector_base.1069" }
%"struct.std::_Vector_base.1069" = type { %"struct.std::_Vector_base<ts::data::CommentDirective, std::allocator<ts::data::CommentDirective>>::_Vector_impl" }
%"struct.std::_Vector_base<ts::data::CommentDirective, std::allocator<ts::data::CommentDirective>>::_Vector_impl" = type { %"struct.std::_Vector_base<ts::data::CommentDirective, std::allocator<ts::data::CommentDirective>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ts::data::CommentDirective, std::allocator<ts::data::CommentDirective>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.1073" = type { %"class.std::_Rb_tree.1074" }
%"class.std::_Rb_tree.1074" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::ResolvedModuleFull>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::ResolvedModuleFull>>, 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::ResolvedModuleFull>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::ResolvedModuleFull>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.1078" = type { %"class.std::_Rb_tree.1079" }
%"class.std::_Rb_tree.1079" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::ResolvedTypeReferenceDirective>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::ResolvedTypeReferenceDirective>>, 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::ResolvedTypeReferenceDirective>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, ts::data::ResolvedTypeReferenceDirective>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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 }
%"class.std::vector.1083" = type { %"struct.std::_Vector_base.1084" }
%"struct.std::_Vector_base.1084" = type { %"struct.std::_Vector_base<ts::data::PatternAmbientModule, std::allocator<ts::data::PatternAmbientModule>>::_Vector_impl" }
%"struct.std::_Vector_base<ts::data::PatternAmbientModule, std::allocator<ts::data::PatternAmbientModule>>::_Vector_impl" = type { %"struct.std::_Vector_base<ts::data::PatternAmbientModule, std::allocator<ts::data::PatternAmbientModule>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ts::data::PatternAmbientModule, std::allocator<ts::data::PatternAmbientModule>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.1088" = type { %"struct.std::_Vector_base.1089" }
%"struct.std::_Vector_base.1089" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ptr.1093 = type { %"class.std::shared_ptr.1094" }
%"class.std::shared_ptr.1094" = type { %"class.std::__shared_ptr.1095" }
%"class.std::__shared_ptr.1095" = type { ptr, %"class.std::__shared_count" }
%"class.std::map.1097" = type { %"class.std::_Rb_tree.1098" }
%"class.std::_Rb_tree.1098" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, std::vector<std::map<std::__cxx11::basic_string<wchar_t>, ts::data::ArgumentWithCommentRange>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, std::vector<std::map<std::__cxx11::basic_string<wchar_t>, ts::data::ArgumentWithCommentRange>>>>, 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>, std::vector<std::map<std::__cxx11::basic_string<wchar_t>, ts::data::ArgumentWithCommentRange>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, std::vector<std::map<std::__cxx11::basic_string<wchar_t>, ts::data::ArgumentWithCommentRange>>>>, std::less<std::__cxx11::basic_string<wchar_t>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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] }
%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" }
%"class.std::vector.1102" = type { %"struct.std::_Vector_base.1103" }
%"struct.std::_Vector_base.1103" = type { %"struct.std::_Vector_base<ts::data::Symbol, std::allocator<ts::data::Symbol>>::_Vector_impl" }
%"struct.std::_Vector_base<ts::data::Symbol, std::allocator<ts::data::Symbol>>::_Vector_impl" = type { %"struct.std::_Vector_base<ts::data::Symbol, std::allocator<ts::data::Symbol>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ts::data::Symbol, std::allocator<ts::data::Symbol>>::_Vector_impl_data" = type { ptr, ptr, 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 uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_9StatementEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory26cloneSourceFileWithChangesE3ptrINS_4data10SourceFileEENS2_9NodeArrayIS1_INS2_9StatementEEEEbNS5_IS1_INS2_13FileReferenceEEEESB_bSB_(ptr dead_on_unwind noalias writable sret(%struct.ptr.1016) align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef) #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts11NodeFactory16updateSourceFileE3ptrINS_4data10SourceFileEENS2_9NodeArrayIS1_INS2_9StatementEEEEbNS5_IS1_INS2_13FileReferenceEEEESB_bSB_(ptr dead_on_unwind noalias writable sret(%struct.ptr.1016) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef %2, ptr noundef %3, i1 noundef zeroext %4, ptr noundef %5, ptr noundef %6, i1 noundef zeroext %7, ptr noundef %8) #4 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i8, align 1
  %18 = alloca ptr, align 8
  %19 = alloca %"struct.ts::data::NodeArray.1043", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %22 = alloca i1, align 1
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i1, align 1
  %26 = alloca %"struct.ts::data::NodeArray.1043", align 8
  %27 = alloca i1, align 1
  %28 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %29 = alloca i1, align 1
  %30 = alloca i1, align 1
  %31 = alloca %"struct.ts::data::NodeArray.1043", align 8
  %32 = alloca i1, align 1
  %33 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %34 = alloca i1, align 1
  %35 = alloca i1, align 1
  %36 = alloca %struct.ptr.1016, align 8
  %37 = alloca %struct.ptr.1016, align 8
  %38 = alloca i1, align 1
  %39 = alloca %"struct.ts::data::NodeArray.564", align 8
  %40 = alloca i1, align 1
  %41 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %42 = alloca i1, align 1
  %43 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %44 = alloca i1, align 1
  %45 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %46 = alloca i1, align 1
  %47 = alloca i1, align 1
  %48 = alloca %struct.ptr.1016, align 8
  %49 = alloca i1, align 1
  store ptr %0, ptr %10, align 8
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  %50 = zext i1 %4 to i8
  store i8 %50, ptr %14, align 1, !tbaa !9
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  %51 = zext i1 %7 to i8
  store i8 %51, ptr %17, align 1, !tbaa !9
  store ptr %8, ptr %18, align 8, !tbaa !5
  %52 = load ptr, ptr %11, align 8
  %53 = call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %54 = getelementptr inbounds %"struct.ts::data::SourceFile", ptr %53, i32 0, i32 1
  %55 = call noundef zeroext i1 @_ZN2ts4data9NodeArrayI3ptrINS0_9StatementEEEneERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %54, ptr noundef nonnull align 8 dereferenceable(44) %3)
  store i1 false, ptr %20, align 1
  store i1 false, ptr %22, align 1
  store i1 false, ptr %25, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %47, align 1
  store i1 false, ptr %49, align 1
  br i1 %55, label %99, label %56

56:                                               ; preds = %9
  %57 = call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %58 = getelementptr inbounds %"struct.ts::data::SourceFile", ptr %57, i32 0, i32 14
  %59 = load i8, ptr %58, align 4, !tbaa !11, !range !154, !noundef !155
  %60 = trunc i8 %59 to i1
  %61 = zext i1 %60 to i32
  %62 = load i8, ptr %14, align 1, !tbaa !9, !range !154, !noundef !155
  %63 = trunc i8 %62 to i1
  %64 = zext i1 %63 to i32
  %65 = icmp ne i32 %61, %64
  br i1 %65, label %99, label %66

66:                                               ; preds = %56
  %67 = call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %68 = getelementptr inbounds %"struct.ts::data::SourceFile", ptr %67, i32 0, i32 10
  call void @llvm.lifetime.start.p0(i64 48, ptr %19) #5
  store i1 true, ptr %20, align 1
  call void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %21, ptr noundef nonnull align 8 dereferenceable(44) %5)
  store i1 true, ptr %22, align 1
  invoke void @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEC2I3ptrIS2_EEENS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(44) %19, ptr noundef %21)
          to label %69 unwind label %160

69:                                               ; preds = %66
  store i1 true, ptr %25, align 1
  %70 = invoke noundef zeroext i1 @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(44) %68, ptr noundef nonnull align 8 dereferenceable(44) %19)
          to label %71 unwind label %164

71:                                               ; preds = %69
  br i1 %70, label %99, label %72

72:                                               ; preds = %71
  %73 = invoke noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
          to label %74 unwind label %164

74:                                               ; preds = %72
  %75 = getelementptr inbounds %"struct.ts::data::SourceFile", ptr %73, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 48, ptr %26) #5
  store i1 true, ptr %27, align 1
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %28, ptr noundef nonnull align 8 dereferenceable(44) %6)
          to label %76 unwind label %168

76:                                               ; preds = %74
  store i1 true, ptr %29, align 1
  invoke void @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEC2I3ptrIS2_EEENS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(44) %26, ptr noundef %28)
          to label %77 unwind label %172

77:                                               ; preds = %76
  store i1 true, ptr %30, align 1
  %78 = invoke noundef zeroext i1 @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(44) %75, ptr noundef nonnull align 8 dereferenceable(44) %26)
          to label %79 unwind label %176

79:                                               ; preds = %77
  br i1 %78, label %99, label %80

80:                                               ; preds = %79
  %81 = invoke noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
          to label %82 unwind label %176

82:                                               ; preds = %80
  %83 = getelementptr inbounds %"struct.ts::data::SourceFile", ptr %81, i32 0, i32 17
  %84 = load i8, ptr %83, align 8, !tbaa !156, !range !154, !noundef !155
  %85 = trunc i8 %84 to i1
  %86 = zext i1 %85 to i32
  %87 = load i8, ptr %17, align 1, !tbaa !9, !range !154, !noundef !155
  %88 = trunc i8 %87 to i1
  %89 = zext i1 %88 to i32
  %90 = icmp ne i32 %86, %89
  br i1 %90, label %99, label %91

91:                                               ; preds = %82
  %92 = invoke noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
          to label %93 unwind label %176

93:                                               ; preds = %91
  %94 = getelementptr inbounds %"struct.ts::data::SourceFile", ptr %92, i32 0, i32 12
  call void @llvm.lifetime.start.p0(i64 48, ptr %31) #5
  store i1 true, ptr %32, align 1
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %33, ptr noundef nonnull align 8 dereferenceable(44) %8)
          to label %95 unwind label %180

95:                                               ; preds = %93
  store i1 true, ptr %34, align 1
  invoke void @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEC2I3ptrIS2_EEENS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(44) %31, ptr noundef %33)
          to label %96 unwind label %184

96:                                               ; preds = %95
  store i1 true, ptr %35, align 1
  %97 = invoke noundef zeroext i1 @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(44) %94, ptr noundef nonnull align 8 dereferenceable(44) %31)
          to label %98 unwind label %188

98:                                               ; preds = %96
  br i1 %97, label %99, label %110

99:                                               ; preds = %98, %82, %79, %71, %56, %9
  call void @_ZN3ptrIN2ts4data10SourceFileEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(16) %2) #5
  store i1 true, ptr %38, align 1
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_9StatementEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %39, ptr noundef nonnull align 8 dereferenceable(44) %3)
          to label %100 unwind label %192

100:                                              ; preds = %99
  store i1 true, ptr %40, align 1
  %101 = load i8, ptr %14, align 1, !tbaa !9, !range !154, !noundef !155
  %102 = trunc i8 %101 to i1
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %41, ptr noundef nonnull align 8 dereferenceable(44) %5)
          to label %103 unwind label %196

103:                                              ; preds = %100
  store i1 true, ptr %42, align 1
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %43, ptr noundef nonnull align 8 dereferenceable(44) %6)
          to label %104 unwind label %200

104:                                              ; preds = %103
  store i1 true, ptr %44, align 1
  %105 = load i8, ptr %17, align 1, !tbaa !9, !range !154, !noundef !155
  %106 = trunc i8 %105 to i1
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %45, ptr noundef nonnull align 8 dereferenceable(44) %8)
          to label %107 unwind label %204

107:                                              ; preds = %104
  store i1 true, ptr %46, align 1
  invoke void @_ZN2ts11NodeFactory26cloneSourceFileWithChangesE3ptrINS_4data10SourceFileEENS2_9NodeArrayIS1_INS2_9StatementEEEEbNS5_IS1_INS2_13FileReferenceEEEESB_bSB_(ptr dead_on_unwind writable sret(%struct.ptr.1016) align 8 %36, ptr noundef nonnull align 8 dereferenceable(232) %52, ptr noundef %37, ptr noundef %39, i1 noundef zeroext %102, ptr noundef %41, ptr noundef %43, i1 noundef zeroext %106, ptr noundef %45)
          to label %108 unwind label %208

108:                                              ; preds = %107
  store i1 true, ptr %47, align 1
  call void @_ZN3ptrIN2ts4data10SourceFileEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(16) %2) #5
  store i1 true, ptr %49, align 1
  invoke void @_ZN2ts11NodeFactory6updateI3ptrINS_4data10SourceFileEEEET_S6_S6_(ptr dead_on_unwind writable sret(%struct.ptr.1016) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %52, ptr noundef %36, ptr noundef %48)
          to label %109 unwind label %212

109:                                              ; preds = %108
  br label %111

110:                                              ; preds = %98
  call void @_ZN3ptrIN2ts4data10SourceFileEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %2) #5
  br label %111

111:                                              ; preds = %110, %109
  %112 = load i1, ptr %49, align 1
  br i1 %112, label %113, label %114

113:                                              ; preds = %111
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #5
  br label %114

114:                                              ; preds = %113, %111
  %115 = load i1, ptr %47, align 1
  br i1 %115, label %116, label %117

116:                                              ; preds = %114
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #5
  br label %117

117:                                              ; preds = %116, %114
  %118 = load i1, ptr %46, align 1
  br i1 %118, label %119, label %120

119:                                              ; preds = %117
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %45) #5
  br label %120

120:                                              ; preds = %119, %117
  %121 = load i1, ptr %44, align 1
  br i1 %121, label %122, label %123

122:                                              ; preds = %120
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %43) #5
  br label %123

123:                                              ; preds = %122, %120
  %124 = load i1, ptr %42, align 1
  br i1 %124, label %125, label %126

125:                                              ; preds = %123
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %41) #5
  br label %126

126:                                              ; preds = %125, %123
  %127 = load i1, ptr %40, align 1
  br i1 %127, label %128, label %129

128:                                              ; preds = %126
  call void @_ZNSt6vectorI3ptrIN2ts4data9StatementEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %39) #5
  br label %129

129:                                              ; preds = %128, %126
  %130 = load i1, ptr %38, align 1
  br i1 %130, label %131, label %132

131:                                              ; preds = %129
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #5
  br label %132

132:                                              ; preds = %131, %129
  %133 = load i1, ptr %35, align 1
  br i1 %133, label %134, label %135

134:                                              ; preds = %132
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %31) #5
  br label %135

135:                                              ; preds = %134, %132
  %136 = load i1, ptr %34, align 1
  br i1 %136, label %137, label %138

137:                                              ; preds = %135
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %33) #5
  br label %138

138:                                              ; preds = %137, %135
  %139 = load i1, ptr %32, align 1
  br i1 %139, label %140, label %141

140:                                              ; preds = %138
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #5
  br label %141

141:                                              ; preds = %140, %138
  %142 = load i1, ptr %30, align 1
  br i1 %142, label %143, label %144

143:                                              ; preds = %141
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %26) #5
  br label %144

144:                                              ; preds = %143, %141
  %145 = load i1, ptr %29, align 1
  br i1 %145, label %146, label %147

146:                                              ; preds = %144
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %28) #5
  br label %147

147:                                              ; preds = %146, %144
  %148 = load i1, ptr %27, align 1
  br i1 %148, label %149, label %150

149:                                              ; preds = %147
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #5
  br label %150

150:                                              ; preds = %149, %147
  %151 = load i1, ptr %25, align 1
  br i1 %151, label %152, label %153

152:                                              ; preds = %150
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #5
  br label %153

153:                                              ; preds = %152, %150
  %154 = load i1, ptr %22, align 1
  br i1 %154, label %155, label %156

155:                                              ; preds = %153
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %21) #5
  br label %156

156:                                              ; preds = %155, %153
  %157 = load i1, ptr %20, align 1
  br i1 %157, label %158, label %159

158:                                              ; preds = %156
  call void @llvm.lifetime.end.p0(i64 48, ptr %19) #5
  br label %159

159:                                              ; preds = %158, %156
  ret void

160:                                              ; preds = %66
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %23, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %24, align 4
  br label %270

164:                                              ; preds = %72, %69
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %23, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %24, align 4
  br label %266

168:                                              ; preds = %74
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %23, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %24, align 4
  br label %262

172:                                              ; preds = %76
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %23, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %24, align 4
  br label %258

176:                                              ; preds = %91, %80, %77
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %23, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %24, align 4
  br label %254

180:                                              ; preds = %93
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %23, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %24, align 4
  br label %250

184:                                              ; preds = %95
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %23, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %24, align 4
  br label %246

188:                                              ; preds = %96
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %23, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %24, align 4
  br label %242

192:                                              ; preds = %99
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %23, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %24, align 4
  br label %238

196:                                              ; preds = %100
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %23, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %24, align 4
  br label %234

200:                                              ; preds = %103
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %23, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %24, align 4
  br label %230

204:                                              ; preds = %104
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %23, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %24, align 4
  br label %226

208:                                              ; preds = %107
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %23, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %24, align 4
  br label %222

212:                                              ; preds = %108
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %23, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %24, align 4
  %216 = load i1, ptr %49, align 1
  br i1 %216, label %217, label %218

217:                                              ; preds = %212
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #5
  br label %218

218:                                              ; preds = %217, %212
  %219 = load i1, ptr %47, align 1
  br i1 %219, label %220, label %221

220:                                              ; preds = %218
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #5
  br label %221

221:                                              ; preds = %220, %218
  br label %222

222:                                              ; preds = %221, %208
  %223 = load i1, ptr %46, align 1
  br i1 %223, label %224, label %225

224:                                              ; preds = %222
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %45) #5
  br label %225

225:                                              ; preds = %224, %222
  br label %226

226:                                              ; preds = %225, %204
  %227 = load i1, ptr %44, align 1
  br i1 %227, label %228, label %229

228:                                              ; preds = %226
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %43) #5
  br label %229

229:                                              ; preds = %228, %226
  br label %230

230:                                              ; preds = %229, %200
  %231 = load i1, ptr %42, align 1
  br i1 %231, label %232, label %233

232:                                              ; preds = %230
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %41) #5
  br label %233

233:                                              ; preds = %232, %230
  br label %234

234:                                              ; preds = %233, %196
  %235 = load i1, ptr %40, align 1
  br i1 %235, label %236, label %237

236:                                              ; preds = %234
  call void @_ZNSt6vectorI3ptrIN2ts4data9StatementEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %39) #5
  br label %237

237:                                              ; preds = %236, %234
  br label %238

238:                                              ; preds = %237, %192
  %239 = load i1, ptr %38, align 1
  br i1 %239, label %240, label %241

240:                                              ; preds = %238
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #5
  br label %241

241:                                              ; preds = %240, %238
  br label %242

242:                                              ; preds = %241, %188
  %243 = load i1, ptr %35, align 1
  br i1 %243, label %244, label %245

244:                                              ; preds = %242
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %31) #5
  br label %245

245:                                              ; preds = %244, %242
  br label %246

246:                                              ; preds = %245, %184
  %247 = load i1, ptr %34, align 1
  br i1 %247, label %248, label %249

248:                                              ; preds = %246
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %33) #5
  br label %249

249:                                              ; preds = %248, %246
  br label %250

250:                                              ; preds = %249, %180
  %251 = load i1, ptr %32, align 1
  br i1 %251, label %252, label %253

252:                                              ; preds = %250
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #5
  br label %253

253:                                              ; preds = %252, %250
  br label %254

254:                                              ; preds = %253, %176
  %255 = load i1, ptr %30, align 1
  br i1 %255, label %256, label %257

256:                                              ; preds = %254
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %26) #5
  br label %257

257:                                              ; preds = %256, %254
  br label %258

258:                                              ; preds = %257, %172
  %259 = load i1, ptr %29, align 1
  br i1 %259, label %260, label %261

260:                                              ; preds = %258
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %28) #5
  br label %261

261:                                              ; preds = %260, %258
  br label %262

262:                                              ; preds = %261, %168
  %263 = load i1, ptr %27, align 1
  br i1 %263, label %264, label %265

264:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #5
  br label %265

265:                                              ; preds = %264, %262
  br label %266

266:                                              ; preds = %265, %164
  %267 = load i1, ptr %25, align 1
  br i1 %267, label %268, label %269

268:                                              ; preds = %266
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #5
  br label %269

269:                                              ; preds = %268, %266
  br label %270

270:                                              ; preds = %269, %160
  %271 = load i1, ptr %22, align 1
  br i1 %271, label %272, label %273

272:                                              ; preds = %270
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %21) #5
  br label %273

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

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

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

277:                                              ; preds = %276
  %278 = load ptr, ptr %23, align 8
  %279 = load i32, ptr %24, align 4
  %280 = insertvalue { ptr, i32 } poison, ptr %278, 0
  %281 = insertvalue { ptr, i32 } %280, i32 %279, 1
  resume { ptr, i32 } %281
}

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { 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 = !{!12, !10, i64 852}
!12 = !{!"_ZTSN2ts4data10SourceFileE", !13, i64 0, !79, i64 416, !85, i64 464, !70, i64 480, !70, i64 512, !70, i64 544, !70, i64 576, !88, i64 608, !91, i64 624, !70, i64 672, !97, i64 704, !97, i64 752, !97, i64 800, !103, i64 848, !10, i64 852, !104, i64 856, !10, i64 904, !112, i64 908, !113, i64 912, !41, i64 920, !114, i64 936, !41, i64 968, !115, i64 984, !104, i64 1032, !30, i64 1080, !30, i64 1084, !30, i64 1088, !118, i64 1096, !118, i64 1120, !118, i64 1144, !118, i64 1168, !118, i64 1192, !122, i64 1216, !125, i64 1264, !129, i64 1288, !132, i64 1336, !35, i64 1384, !35, i64 1432, !135, i64 1480, !139, i64 1504, !143, i64 1528, !70, i64 1544, !146, i64 1576, !70, i64 1624, !70, i64 1656, !41, i64 1688, !41, i64 1704, !149, i64 1720, !153, i64 1744}
!13 = !{!"_ZTSN2ts4data14SourceFileLikeE", !14, i64 0, !70, i64 328, !73, i64 360, !77, i64 384}
!14 = !{!"_ZTSN2ts4data11DeclarationE", !15, i64 0, !67, i64 296, !67, i64 312}
!15 = !{!"_ZTSN2ts4data20DeclarationStatementE", !16, i64 0}
!16 = !{!"_ZTSN2ts4data9StatementE", !17, i64 0}
!17 = !{!"_ZTSN2ts4data17PrimaryExpressionE", !18, i64 0}
!18 = !{!"_ZTSN2ts4data16MemberExpressionE", !19, i64 0}
!19 = !{!"_ZTSN2ts4data22LeftHandSideExpressionE", !20, i64 0}
!20 = !{!"_ZTSN2ts4data16UpdateExpressionE", !21, i64 0}
!21 = !{!"_ZTSN2ts4data15UnaryExpressionE", !22, i64 0}
!22 = !{!"_ZTSN2ts4data27ExpressionWithTypeArgumentsE", !23, i64 0, !64, i64 280}
!23 = !{!"_ZTSN2ts4data21NodeWithTypeArgumentsE", !24, i64 0, !58, i64 232}
!24 = !{!"_ZTSN2ts4data10ExpressionE", !25, i64 0}
!25 = !{!"_ZTSN2ts4data8TypeNodeE", !26, i64 0}
!26 = !{!"_ZTSN2ts4data14JSDocContainerE", !27, i64 0, !46, i64 136, !52, i64 184}
!27 = !{!"_ZTSN2ts4data4NodeE", !28, i64 8, !31, i64 20, !32, i64 24, !33, i64 28, !34, i64 32, !35, i64 40, !30, i64 88, !41, i64 96, !41, i64 112, !45, i64 128, !10, i64 132}
!28 = !{!"_ZTSN2ts4data9TextRangeE", !29, i64 0, !30, i64 8}
!29 = !{!"_ZTSN2ts8pos_typeE", !30, i64 0, !30, i64 4}
!30 = !{!"int", !7, i64 0}
!31 = !{!"_ZTS10SyntaxKind", !7, i64 0}
!32 = !{!"_ZTSN2ts9NodeFlagsE", !7, i64 0}
!33 = !{!"_ZTSN2ts13ModifierFlagsE", !7, i64 0}
!34 = !{!"_ZTSN2ts14TransformFlagsE", !7, i64 0}
!35 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_4NodeEEEE", !36, i64 0, !28, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !34, i64 40}
!36 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_4NodeEEEE", !37, i64 0}
!37 = !{!"_ZTSSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTS3ptrIN2ts4data4NodeEE", !42, i64 0}
!42 = !{!"_ZTSSt10shared_ptrIN2ts4data4NodeEE", !43, i64 0}
!43 = !{!"_ZTSSt12__shared_ptrIN2ts4data4NodeELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !44, i64 8}
!44 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!45 = !{!"_ZTSN2ts13InternalFlagsE", !7, i64 0}
!46 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEE", !47, i64 0, !28, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !34, i64 40}
!47 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_5JSDocEEEE", !48, i64 0}
!48 = !{!"_ZTSSt6vectorI3ptrIN2ts4data5JSDocEESaIS4_EE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data5JSDocEESaIS4_EE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data5JSDocEESaIS4_EE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data5JSDocEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!52 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_8JSDocTagEEEE", !53, i64 0, !28, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !34, i64 40}
!53 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_8JSDocTagEEEE", !54, i64 0}
!54 = !{!"_ZTSSt6vectorI3ptrIN2ts4data8JSDocTagEESaIS4_EE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data8JSDocTagEESaIS4_EE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8JSDocTagEESaIS4_EE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8JSDocTagEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!58 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEE", !59, i64 0, !28, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !34, i64 40}
!59 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_8TypeNodeEEEE", !60, i64 0}
!60 = !{!"_ZTSSt6vectorI3ptrIN2ts4data8TypeNodeEESaIS4_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data8TypeNodeEESaIS4_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8TypeNodeEESaIS4_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8TypeNodeEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!64 = !{!"_ZTS3ptrIN2ts4data22LeftHandSideExpressionEE", !65, i64 0}
!65 = !{!"_ZTSSt10shared_ptrIN2ts4data22LeftHandSideExpressionEE", !66, i64 0}
!66 = !{!"_ZTSSt12__shared_ptrIN2ts4data22LeftHandSideExpressionELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !44, i64 8}
!67 = !{!"_ZTS3ptrIN2ts4data6SymbolEE", !68, i64 0}
!68 = !{!"_ZTSSt10shared_ptrIN2ts4data6SymbolEE", !69, i64 0}
!69 = !{!"_ZTSSt12__shared_ptrIN2ts4data6SymbolELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !44, i64 8}
!70 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE", !71, i64 0, !72, i64 8, !7, i64 16}
!71 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderE", !6, i64 0}
!72 = !{!"long", !7, i64 0}
!73 = !{!"_ZTSSt6vectorIiSaIiEE", !74, i64 0}
!74 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!77 = !{!"_ZTSSt8functionIFiiibEE", !78, i64 0, !6, i64 24}
!78 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!79 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_9StatementEEEE", !80, i64 0, !28, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !34, i64 40}
!80 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_9StatementEEEE", !81, i64 0}
!81 = !{!"_ZTSSt6vectorI3ptrIN2ts4data9StatementEESaIS4_EE", !82, i64 0}
!82 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data9StatementEESaIS4_EE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data9StatementEESaIS4_EE12_Vector_implE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data9StatementEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!85 = !{!"_ZTS3ptrIN2ts4data14EndOfFileTokenEE", !86, i64 0}
!86 = !{!"_ZTSSt10shared_ptrIN2ts4data14EndOfFileTokenEE", !87, i64 0}
!87 = !{!"_ZTSSt12__shared_ptrIN2ts4data14EndOfFileTokenELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !44, i64 8}
!88 = !{!"_ZTS3ptrIN2ts4data12RedirectInfoEE", !89, i64 0}
!89 = !{!"_ZTSSt10shared_ptrIN2ts4data12RedirectInfoEE", !90, i64 0}
!90 = !{!"_ZTSSt12__shared_ptrIN2ts4data12RedirectInfoELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !44, i64 8}
!91 = !{!"_ZTSN2ts4data9NodeArrayINS0_13AmdDependencyEEE", !92, i64 0, !28, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !34, i64 40}
!92 = !{!"_ZTSN2ts4data13ReadonlyArrayINS0_13AmdDependencyEEE", !93, i64 0}
!93 = !{!"_ZTSSt6vectorIN2ts4data13AmdDependencyESaIS2_EE", !94, i64 0}
!94 = !{!"_ZTSSt12_Vector_baseIN2ts4data13AmdDependencyESaIS2_EE", !95, i64 0}
!95 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13AmdDependencyESaIS2_EE12_Vector_implE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13AmdDependencyESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!97 = !{!"_ZTSN2ts4data9NodeArrayINS0_13FileReferenceEEE", !98, i64 0, !28, i64 24, !10, i64 36, !10, i64 37, !10, i64 38, !34, i64 40}
!98 = !{!"_ZTSN2ts4data13ReadonlyArrayINS0_13FileReferenceEEE", !99, i64 0}
!99 = !{!"_ZTSSt6vectorIN2ts4data13FileReferenceESaIS2_EE", !100, i64 0}
!100 = !{!"_ZTSSt12_Vector_baseIN2ts4data13FileReferenceESaIS2_EE", !101, i64 0}
!101 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13FileReferenceESaIS2_EE12_Vector_implE", !102, i64 0}
!102 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13FileReferenceESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!103 = !{!"_ZTSN2ts15LanguageVariantE", !7, i64 0}
!104 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !105, i64 0}
!105 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !106, i64 0}
!106 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !107, i64 0, !109, i64 8}
!107 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEE", !108, i64 0}
!108 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEE"}
!109 = !{!"_ZTSSt15_Rb_tree_header", !110, i64 0, !72, i64 32}
!110 = !{!"_ZTSSt18_Rb_tree_node_base", !111, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!111 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!112 = !{!"_ZTSN2ts12ScriptTargetE", !7, i64 0}
!113 = !{!"_ZTSN2ts10ScriptKindE", !7, i64 0}
!114 = !{!"_ZTSSt8functionIFvN2ts4data10SourceFileEEE", !78, i64 0, !6, i64 24}
!115 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data6SymbolESt4lessIS5_ESaISt4pairIKS5_S8_EEE", !116, i64 0}
!116 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data6SymbolEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE", !117, i64 0}
!117 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data6SymbolEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE13_Rb_tree_implISF_Lb1EEE", !107, i64 0, !109, i64 8}
!118 = !{!"_ZTSSt6vectorIN2ts4data22DiagnosticWithLocationESaIS2_EE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseIN2ts4data22DiagnosticWithLocationESaIS2_EE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseIN2ts4data22DiagnosticWithLocationESaIS2_EE12_Vector_implE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseIN2ts4data22DiagnosticWithLocationESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!122 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4lessIS5_ESaIS5_EE", !123, i64 0}
!123 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !124, i64 0}
!124 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !107, i64 0, !109, i64 8}
!125 = !{!"_ZTSSt6vectorIN2ts4data16CommentDirectiveESaIS2_EE", !126, i64 0}
!126 = !{!"_ZTSSt12_Vector_baseIN2ts4data16CommentDirectiveESaIS2_EE", !127, i64 0}
!127 = !{!"_ZTSNSt12_Vector_baseIN2ts4data16CommentDirectiveESaIS2_EE12_Vector_implE", !128, i64 0}
!128 = !{!"_ZTSNSt12_Vector_baseIN2ts4data16CommentDirectiveESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!129 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data18ResolvedModuleFullESt4lessIS5_ESaISt4pairIKS5_S8_EEE", !130, i64 0}
!130 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data18ResolvedModuleFullEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE", !131, i64 0}
!131 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data18ResolvedModuleFullEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE13_Rb_tree_implISF_Lb1EEE", !107, i64 0, !109, i64 8}
!132 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data30ResolvedTypeReferenceDirectiveESt4lessIS5_ESaISt4pairIKS5_S8_EEE", !133, i64 0}
!133 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data30ResolvedTypeReferenceDirectiveEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE", !134, i64 0}
!134 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data30ResolvedTypeReferenceDirectiveEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE13_Rb_tree_implISF_Lb1EEE", !107, i64 0, !109, i64 8}
!135 = !{!"_ZTSSt6vectorIN2ts4data20PatternAmbientModuleESaIS2_EE", !136, i64 0}
!136 = !{!"_ZTSSt12_Vector_baseIN2ts4data20PatternAmbientModuleESaIS2_EE", !137, i64 0}
!137 = !{!"_ZTSNSt12_Vector_baseIN2ts4data20PatternAmbientModuleESaIS2_EE12_Vector_implE", !138, i64 0}
!138 = !{!"_ZTSNSt12_Vector_baseIN2ts4data20PatternAmbientModuleESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!139 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE", !140, i64 0}
!140 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE", !141, i64 0}
!141 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE12_Vector_implE", !142, i64 0}
!142 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!143 = !{!"_ZTS3ptrIN2ts4data16CheckJsDirectiveEE", !144, i64 0}
!144 = !{!"_ZTSSt10shared_ptrIN2ts4data16CheckJsDirectiveEE", !145, i64 0}
!145 = !{!"_ZTSSt12__shared_ptrIN2ts4data16CheckJsDirectiveELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !44, i64 8}
!146 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt6vectorIS_IS5_N2ts4data24ArgumentWithCommentRangeESt4lessIS5_ESaISt4pairIKS5_S9_EEESaISG_EESB_SaISC_ISD_SI_EEE", !147, i64 0}
!147 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_St6vectorISt3mapIS5_N2ts4data24ArgumentWithCommentRangeESt4lessIS5_ESaIS6_IS7_SC_EEESaISH_EEESt10_Select1stISK_ESE_SaISK_EE", !148, i64 0}
!148 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_St6vectorISt3mapIS5_N2ts4data24ArgumentWithCommentRangeESt4lessIS5_ESaIS6_IS7_SC_EEESaISH_EEESt10_Select1stISK_ESE_SaISK_EE13_Rb_tree_implISE_Lb1EEE", !107, i64 0, !109, i64 8}
!149 = !{!"_ZTSSt6vectorIN2ts4data6SymbolESaIS2_EE", !150, i64 0}
!150 = !{!"_ZTSSt12_Vector_baseIN2ts4data6SymbolESaIS2_EE", !151, i64 0}
!151 = !{!"_ZTSNSt12_Vector_baseIN2ts4data6SymbolESaIS2_EE12_Vector_implE", !152, i64 0}
!152 = !{!"_ZTSNSt12_Vector_baseIN2ts4data6SymbolESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!153 = !{!"_ZTSN2ts16JSDocParsingModeE", !7, i64 0}
!154 = !{i8 0, i8 2}
!155 = !{}
!156 = !{!12, !10, i64 904}


; 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.ptr.1016 = type { %"class.std::shared_ptr.1017" }
%"class.std::shared_ptr.1017" = type { %"class.std::__shared_ptr.1018" }
%"class.std::__shared_ptr.1018" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::NodeArray.1043" = type <{ %"struct.ts::data::ReadonlyArray.1044", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.1044" = type { %"class.std::vector.1045" }
%"class.std::vector.1045" = type { %"struct.std::_Vector_base.1046" }
%"struct.std::_Vector_base.1046" = type { %"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_Vector_impl" }
%"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_Vector_impl" = type { %"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ts::data::FileReference, std::allocator<ts::data::FileReference>>::_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.1107" = type <{ %"struct.ts::data::ReadonlyArray.1108", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.1108" = type { %"class.std::vector.1109" }
%"class.std::vector.1109" = type { %"struct.std::_Vector_base.1110" }
%"struct.std::_Vector_base.1110" = type { %"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::FileReference>, std::allocator<ptr<ts::data::FileReference>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::NodeArray.564" = type <{ %"struct.ts::data::ReadonlyArray.565", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.565" = type { %"class.std::vector.566" }
%"class.std::vector.566" = type { %"struct.std::_Vector_base.567" }
%"struct.std::_Vector_base.567" = type { %"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::Statement>, std::allocator<ptr<ts::data::Statement>>>::_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 uwtable
declare dso_local void @_ZN2ts4data9NodeArrayI3ptrINS0_9StatementEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(44)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory26cloneSourceFileWithChangesE3ptrINS_4data10SourceFileEENS2_9NodeArrayIS1_INS2_9StatementEEEEbNS5_IS1_INS2_13FileReferenceEEEESB_bSB_(ptr dead_on_unwind noalias writable sret(%struct.ptr.1016) align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts11NodeFactory16updateSourceFileE3ptrINS_4data10SourceFileEENS2_9NodeArrayIS1_INS2_9StatementEEEEbNS5_IS1_INS2_13FileReferenceEEEESB_bSB_(ptr dead_on_unwind noalias writable sret(%struct.ptr.1016) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %2, ptr noundef %3, i1 noundef zeroext %4, ptr noundef %5, ptr noundef %6, i1 noundef zeroext %7, ptr noundef %8) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca %"struct.ts::data::NodeArray.1043", align 8
  %11 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %12 = alloca %"struct.ts::data::NodeArray.1043", align 8
  %13 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %14 = alloca %"struct.ts::data::NodeArray.1043", align 8
  %15 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %16 = alloca %struct.ptr.1016, align 8
  %17 = alloca %struct.ptr.1016, align 8
  %18 = alloca %"struct.ts::data::NodeArray.564", align 8
  %19 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %20 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %21 = alloca %"struct.ts::data::NodeArray.1107", align 8
  %22 = alloca %struct.ptr.1016, align 8
  %23 = tail call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %24 = getelementptr inbounds i8, ptr %23, i64 416
  %25 = tail call noundef zeroext i1 @_ZN2ts4data9NodeArrayI3ptrINS0_9StatementEEEneERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %24, ptr noundef nonnull align 8 dereferenceable(44) %3)
  br i1 %25, label %56, label %26

26:                                               ; preds = %9
  %27 = tail call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %28 = getelementptr inbounds i8, ptr %27, i64 852
  %29 = load i8, ptr %28, align 4, !tbaa !5, !range !152, !noundef !153
  %30 = zext i1 %4 to i8
  %.not = icmp eq i8 %29, %30
  br i1 %.not, label %31, label %56

31:                                               ; preds = %26
  %32 = tail call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) #5
  call void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %11, ptr noundef nonnull align 8 dereferenceable(44) %5)
  invoke void @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEC2I3ptrIS2_EEENS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(44) %10, ptr noundef nonnull %11)
          to label %33 unwind label %62

33:                                               ; preds = %31
  %34 = getelementptr inbounds i8, ptr %32, i64 704
  %35 = invoke noundef zeroext i1 @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(44) %34, ptr noundef nonnull align 8 dereferenceable(44) %10)
          to label %36 unwind label %.thread218

36:                                               ; preds = %33
  br i1 %35, label %56, label %37

37:                                               ; preds = %36
  %38 = call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %39 = getelementptr inbounds i8, ptr %38, i64 752
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #5
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %13, ptr noundef nonnull align 8 dereferenceable(44) %6)
          to label %40 unwind label %.thread237

40:                                               ; preds = %37
  invoke void @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEC2I3ptrIS2_EEENS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(44) %12, ptr noundef nonnull %13)
          to label %41 unwind label %.thread240

41:                                               ; preds = %40
  %42 = invoke noundef zeroext i1 @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(44) %39, ptr noundef nonnull align 8 dereferenceable(44) %12)
          to label %43 unwind label %.thread196

43:                                               ; preds = %41
  br i1 %42, label %56, label %44

44:                                               ; preds = %43
  %45 = call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %46 = getelementptr inbounds i8, ptr %45, i64 904
  %47 = load i8, ptr %46, align 8, !tbaa !154, !range !152, !noundef !153
  %48 = zext i1 %7 to i8
  %.not120 = icmp eq i8 %47, %48
  br i1 %.not120, label %49, label %56

49:                                               ; preds = %44
  %50 = call noundef ptr @_ZN3ptrIN2ts4data10SourceFileEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %2)
  %51 = getelementptr inbounds i8, ptr %50, i64 800
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) #5
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %15, ptr noundef nonnull align 8 dereferenceable(44) %8)
          to label %52 unwind label %.thread229

52:                                               ; preds = %49
  invoke void @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEC2I3ptrIS2_EEENS1_IT_EE(ptr noundef nonnull align 8 dereferenceable(44) %14, ptr noundef nonnull %15)
          to label %53 unwind label %.thread233

53:                                               ; preds = %52
  %54 = invoke noundef zeroext i1 @_ZN2ts4data9NodeArrayINS0_13FileReferenceEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(44) %51, ptr noundef nonnull align 8 dereferenceable(44) %14)
          to label %55 unwind label %.thread169

55:                                               ; preds = %53
  br i1 %54, label %56, label %.critedge138.thread

56:                                               ; preds = %55, %44, %43, %36, %26, %9
  %.070 = phi i1 [ false, %9 ], [ false, %26 ], [ true, %36 ], [ true, %43 ], [ true, %44 ], [ true, %55 ]
  %.052 = phi i1 [ false, %9 ], [ false, %26 ], [ false, %36 ], [ true, %43 ], [ true, %44 ], [ true, %55 ]
  %.044 = phi i1 [ false, %9 ], [ false, %26 ], [ false, %36 ], [ false, %43 ], [ false, %44 ], [ true, %55 ]
  call void @_ZN3ptrIN2ts4data10SourceFileEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %2) #5
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_9StatementEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %18, ptr noundef nonnull align 8 dereferenceable(44) %3)
          to label %57 unwind label %71

57:                                               ; preds = %56
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %19, ptr noundef nonnull align 8 dereferenceable(44) %5)
          to label %58 unwind label %73

58:                                               ; preds = %57
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %20, ptr noundef nonnull align 8 dereferenceable(44) %6)
          to label %59 unwind label %75

59:                                               ; preds = %58
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_13FileReferenceEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %21, ptr noundef nonnull align 8 dereferenceable(44) %8)
          to label %60 unwind label %77

60:                                               ; preds = %59
  invoke void @_ZN2ts11NodeFactory26cloneSourceFileWithChangesE3ptrINS_4data10SourceFileEENS2_9NodeArrayIS1_INS2_9StatementEEEEbNS5_IS1_INS2_13FileReferenceEEEESB_bSB_(ptr dead_on_unwind nonnull writable sret(%struct.ptr.1016) align 8 %16, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %17, ptr noundef nonnull %18, i1 noundef zeroext %4, ptr noundef nonnull %19, ptr noundef nonnull %20, i1 noundef zeroext %7, ptr noundef nonnull %21)
          to label %61 unwind label %79

61:                                               ; preds = %60
  call void @_ZN3ptrIN2ts4data10SourceFileEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(16) %2) #5
  invoke void @_ZN2ts11NodeFactory6updateI3ptrINS_4data10SourceFileEEEET_S6_S6_(ptr dead_on_unwind writable sret(%struct.ptr.1016) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %16, ptr noundef nonnull %22)
          to label %.critedge138 unwind label %81

.critedge138.thread:                              ; preds = %55
  call void @_ZN3ptrIN2ts4data10SourceFileEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %2) #5
  br label %.critedge140

.critedge138:                                     ; preds = %61
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #5
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %21) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %20) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data9StatementEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #5
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #5
  br i1 %.044, label %.critedge140, label %.critedge141

.critedge140:                                     ; preds = %.critedge138.thread, %.critedge138
  %.171154166 = phi i1 [ true, %.critedge138.thread ], [ %.070, %.critedge138 ]
  %.153156164 = phi i1 [ true, %.critedge138.thread ], [ %.052, %.critedge138 ]
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %14) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %15) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #5
  br i1 %.153156164, label %.critedge143, label %.critedge144

.critedge141:                                     ; preds = %.critedge138
  br i1 %.052, label %.critedge143, label %.critedge144

.critedge143:                                     ; preds = %.critedge140, %.critedge141
  %.171154165168 = phi i1 [ %.171154166, %.critedge140 ], [ %.070, %.critedge141 ]
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %12) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %13) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #5
  br i1 %.171154165168, label %.critedge146, label %.critedge147

.critedge144:                                     ; preds = %.critedge140, %.critedge141
  %.171154165167 = phi i1 [ %.171154166, %.critedge140 ], [ %.070, %.critedge141 ]
  br i1 %.171154165167, label %.critedge146, label %.critedge147

.critedge146:                                     ; preds = %.critedge143, %.critedge144
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %10) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %11) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #5
  br label %.critedge147

.critedge147:                                     ; preds = %.critedge143, %.critedge144, %.critedge146
  ret void

62:                                               ; preds = %31
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %93

.thread218:                                       ; preds = %33
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %92

.thread237:                                       ; preds = %37
  %65 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #5
  br label %92

.thread240:                                       ; preds = %40
  %66 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %13) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #5
  br label %92

.thread196:                                       ; preds = %41
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %90

.thread229:                                       ; preds = %49
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #5
  br label %90

.thread233:                                       ; preds = %52
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %15) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #5
  br label %90

.thread169:                                       ; preds = %53
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %88

71:                                               ; preds = %56
  %72 = landingpad { ptr, i32 }
          cleanup
  br label %87

73:                                               ; preds = %57
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %86

75:                                               ; preds = %58
  %76 = landingpad { ptr, i32 }
          cleanup
  br label %85

77:                                               ; preds = %59
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %84

79:                                               ; preds = %60
  %80 = landingpad { ptr, i32 }
          cleanup
  br label %83

81:                                               ; preds = %61
  %82 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #5
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #5
  br label %83

83:                                               ; preds = %79, %81
  %.pn = phi { ptr, i32 } [ %82, %81 ], [ %80, %79 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %21) #5
  br label %84

84:                                               ; preds = %77, %83
  %.pn.pn = phi { ptr, i32 } [ %.pn, %83 ], [ %78, %77 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %20) #5
  br label %85

85:                                               ; preds = %75, %84
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %84 ], [ %76, %75 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #5
  br label %86

86:                                               ; preds = %73, %85
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %85 ], [ %74, %73 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data9StatementEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #5
  br label %87

87:                                               ; preds = %86, %71
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %86 ], [ %72, %71 ]
  call void @_ZN3ptrIN2ts4data10SourceFileEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #5
  br i1 %.044, label %88, label %89

88:                                               ; preds = %87, %.thread169
  %.254176 = phi i1 [ true, %.thread169 ], [ %.052, %87 ]
  %.272175 = phi i1 [ true, %.thread169 ], [ %.070, %87 ]
  %.pn.pn.pn.pn.pn.pn174 = phi { ptr, i32 } [ %70, %.thread169 ], [ %.pn.pn.pn.pn.pn, %87 ]
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %14) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %15) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #5
  br i1 %.254176, label %90, label %91

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

90:                                               ; preds = %89, %.thread196, %88, %.thread229, %.thread233
  %.575201 = phi i1 [ true, %.thread196 ], [ %.070, %89 ], [ %.272175, %88 ], [ true, %.thread229 ], [ true, %.thread233 ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn200 = phi { ptr, i32 } [ %67, %.thread196 ], [ %.pn.pn.pn.pn.pn, %89 ], [ %.pn.pn.pn.pn.pn.pn174, %88 ], [ %68, %.thread229 ], [ %69, %.thread233 ]
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %12) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %13) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #5
  br i1 %.575201, label %92, label %.critedge149

91:                                               ; preds = %88, %89
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %89 ], [ %.pn.pn.pn.pn.pn.pn174, %88 ]
  %.8 = phi i1 [ %.070, %89 ], [ %.272175, %88 ]
  br i1 %.8, label %92, label %.critedge149

92:                                               ; preds = %.thread240, %.thread237, %90, %.thread218, %91
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn221 = phi { ptr, i32 } [ %64, %.thread218 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %91 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn200, %90 ], [ %65, %.thread237 ], [ %66, %.thread240 ]
  call void @_ZNSt6vectorIN2ts4data13FileReferenceESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %10) #5
  br label %93

93:                                               ; preds = %92, %62
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.ph = phi { ptr, i32 } [ %63, %62 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn221, %92 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data13FileReferenceEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %11) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #5
  br label %.critedge149

.critedge149:                                     ; preds = %91, %90, %93
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn227 = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.ph, %93 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %91 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn200, %90 ]
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn227
}

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { 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, !38, i64 852}
!6 = !{!"_ZTSN2ts4data10SourceFileE", !7, i64 0, !77, i64 416, !83, i64 464, !68, i64 480, !68, i64 512, !68, i64 544, !68, i64 576, !86, i64 608, !89, i64 624, !68, i64 672, !95, i64 704, !95, i64 752, !95, i64 800, !101, i64 848, !38, i64 852, !102, i64 856, !38, i64 904, !110, i64 908, !111, i64 912, !39, i64 920, !112, i64 936, !39, i64 968, !113, i64 984, !102, i64 1032, !24, i64 1080, !24, i64 1084, !24, i64 1088, !116, i64 1096, !116, i64 1120, !116, i64 1144, !116, i64 1168, !116, i64 1192, !120, i64 1216, !123, i64 1264, !127, i64 1288, !130, i64 1336, !31, i64 1384, !31, i64 1432, !133, i64 1480, !137, i64 1504, !141, i64 1528, !68, i64 1544, !144, i64 1576, !68, i64 1624, !68, i64 1656, !39, i64 1688, !39, i64 1704, !147, i64 1720, !151, i64 1744}
!7 = !{!"_ZTSN2ts4data14SourceFileLikeE", !8, i64 0, !68, i64 328, !71, i64 360, !75, i64 384}
!8 = !{!"_ZTSN2ts4data11DeclarationE", !9, i64 0, !65, i64 296, !65, i64 312}
!9 = !{!"_ZTSN2ts4data20DeclarationStatementE", !10, i64 0}
!10 = !{!"_ZTSN2ts4data9StatementE", !11, i64 0}
!11 = !{!"_ZTSN2ts4data17PrimaryExpressionE", !12, i64 0}
!12 = !{!"_ZTSN2ts4data16MemberExpressionE", !13, i64 0}
!13 = !{!"_ZTSN2ts4data22LeftHandSideExpressionE", !14, i64 0}
!14 = !{!"_ZTSN2ts4data16UpdateExpressionE", !15, i64 0}
!15 = !{!"_ZTSN2ts4data15UnaryExpressionE", !16, i64 0}
!16 = !{!"_ZTSN2ts4data27ExpressionWithTypeArgumentsE", !17, i64 0, !62, i64 280}
!17 = !{!"_ZTSN2ts4data21NodeWithTypeArgumentsE", !18, i64 0, !56, i64 232}
!18 = !{!"_ZTSN2ts4data10ExpressionE", !19, i64 0}
!19 = !{!"_ZTSN2ts4data8TypeNodeE", !20, i64 0}
!20 = !{!"_ZTSN2ts4data14JSDocContainerE", !21, i64 0, !44, i64 136, !50, i64 184}
!21 = !{!"_ZTSN2ts4data4NodeE", !22, i64 8, !27, i64 20, !28, i64 24, !29, i64 28, !30, i64 32, !31, i64 40, !24, i64 88, !39, i64 96, !39, i64 112, !43, i64 128, !38, i64 132}
!22 = !{!"_ZTSN2ts4data9TextRangeE", !23, i64 0, !24, i64 8}
!23 = !{!"_ZTSN2ts8pos_typeE", !24, i64 0, !24, i64 4}
!24 = !{!"int", !25, i64 0}
!25 = !{!"omnipotent char", !26, i64 0}
!26 = !{!"Simple C++ TBAA"}
!27 = !{!"_ZTS10SyntaxKind", !25, i64 0}
!28 = !{!"_ZTSN2ts9NodeFlagsE", !25, i64 0}
!29 = !{!"_ZTSN2ts13ModifierFlagsE", !25, i64 0}
!30 = !{!"_ZTSN2ts14TransformFlagsE", !25, i64 0}
!31 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_4NodeEEEE", !32, i64 0, !22, i64 24, !38, i64 36, !38, i64 37, !38, i64 38, !30, i64 40}
!32 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_4NodeEEEE", !33, i64 0}
!33 = !{!"_ZTSSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!37 = !{!"any pointer", !25, i64 0}
!38 = !{!"bool", !25, i64 0}
!39 = !{!"_ZTS3ptrIN2ts4data4NodeEE", !40, i64 0}
!40 = !{!"_ZTSSt10shared_ptrIN2ts4data4NodeEE", !41, i64 0}
!41 = !{!"_ZTSSt12__shared_ptrIN2ts4data4NodeELN9__gnu_cxx12_Lock_policyE2EE", !37, i64 0, !42, i64 8}
!42 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !37, i64 0}
!43 = !{!"_ZTSN2ts13InternalFlagsE", !25, i64 0}
!44 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_5JSDocEEEE", !45, i64 0, !22, i64 24, !38, i64 36, !38, i64 37, !38, i64 38, !30, i64 40}
!45 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_5JSDocEEEE", !46, i64 0}
!46 = !{!"_ZTSSt6vectorI3ptrIN2ts4data5JSDocEESaIS4_EE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data5JSDocEESaIS4_EE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data5JSDocEESaIS4_EE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data5JSDocEESaIS4_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!50 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_8JSDocTagEEEE", !51, i64 0, !22, i64 24, !38, i64 36, !38, i64 37, !38, i64 38, !30, i64 40}
!51 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_8JSDocTagEEEE", !52, i64 0}
!52 = !{!"_ZTSSt6vectorI3ptrIN2ts4data8JSDocTagEESaIS4_EE", !53, i64 0}
!53 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data8JSDocTagEESaIS4_EE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8JSDocTagEESaIS4_EE12_Vector_implE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8JSDocTagEESaIS4_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!56 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_8TypeNodeEEEE", !57, i64 0, !22, i64 24, !38, i64 36, !38, i64 37, !38, i64 38, !30, i64 40}
!57 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_8TypeNodeEEEE", !58, i64 0}
!58 = !{!"_ZTSSt6vectorI3ptrIN2ts4data8TypeNodeEESaIS4_EE", !59, i64 0}
!59 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data8TypeNodeEESaIS4_EE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8TypeNodeEESaIS4_EE12_Vector_implE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data8TypeNodeEESaIS4_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!62 = !{!"_ZTS3ptrIN2ts4data22LeftHandSideExpressionEE", !63, i64 0}
!63 = !{!"_ZTSSt10shared_ptrIN2ts4data22LeftHandSideExpressionEE", !64, i64 0}
!64 = !{!"_ZTSSt12__shared_ptrIN2ts4data22LeftHandSideExpressionELN9__gnu_cxx12_Lock_policyE2EE", !37, i64 0, !42, i64 8}
!65 = !{!"_ZTS3ptrIN2ts4data6SymbolEE", !66, i64 0}
!66 = !{!"_ZTSSt10shared_ptrIN2ts4data6SymbolEE", !67, i64 0}
!67 = !{!"_ZTSSt12__shared_ptrIN2ts4data6SymbolELN9__gnu_cxx12_Lock_policyE2EE", !37, i64 0, !42, i64 8}
!68 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE", !69, i64 0, !70, i64 8, !25, i64 16}
!69 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderE", !37, i64 0}
!70 = !{!"long", !25, i64 0}
!71 = !{!"_ZTSSt6vectorIiSaIiEE", !72, i64 0}
!72 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!75 = !{!"_ZTSSt8functionIFiiibEE", !76, i64 0, !37, i64 24}
!76 = !{!"_ZTSSt14_Function_base", !25, i64 0, !37, i64 16}
!77 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_9StatementEEEE", !78, i64 0, !22, i64 24, !38, i64 36, !38, i64 37, !38, i64 38, !30, i64 40}
!78 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_9StatementEEEE", !79, i64 0}
!79 = !{!"_ZTSSt6vectorI3ptrIN2ts4data9StatementEESaIS4_EE", !80, i64 0}
!80 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data9StatementEESaIS4_EE", !81, i64 0}
!81 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data9StatementEESaIS4_EE12_Vector_implE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data9StatementEESaIS4_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!83 = !{!"_ZTS3ptrIN2ts4data14EndOfFileTokenEE", !84, i64 0}
!84 = !{!"_ZTSSt10shared_ptrIN2ts4data14EndOfFileTokenEE", !85, i64 0}
!85 = !{!"_ZTSSt12__shared_ptrIN2ts4data14EndOfFileTokenELN9__gnu_cxx12_Lock_policyE2EE", !37, i64 0, !42, i64 8}
!86 = !{!"_ZTS3ptrIN2ts4data12RedirectInfoEE", !87, i64 0}
!87 = !{!"_ZTSSt10shared_ptrIN2ts4data12RedirectInfoEE", !88, i64 0}
!88 = !{!"_ZTSSt12__shared_ptrIN2ts4data12RedirectInfoELN9__gnu_cxx12_Lock_policyE2EE", !37, i64 0, !42, i64 8}
!89 = !{!"_ZTSN2ts4data9NodeArrayINS0_13AmdDependencyEEE", !90, i64 0, !22, i64 24, !38, i64 36, !38, i64 37, !38, i64 38, !30, i64 40}
!90 = !{!"_ZTSN2ts4data13ReadonlyArrayINS0_13AmdDependencyEEE", !91, i64 0}
!91 = !{!"_ZTSSt6vectorIN2ts4data13AmdDependencyESaIS2_EE", !92, i64 0}
!92 = !{!"_ZTSSt12_Vector_baseIN2ts4data13AmdDependencyESaIS2_EE", !93, i64 0}
!93 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13AmdDependencyESaIS2_EE12_Vector_implE", !94, i64 0}
!94 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13AmdDependencyESaIS2_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!95 = !{!"_ZTSN2ts4data9NodeArrayINS0_13FileReferenceEEE", !96, i64 0, !22, i64 24, !38, i64 36, !38, i64 37, !38, i64 38, !30, i64 40}
!96 = !{!"_ZTSN2ts4data13ReadonlyArrayINS0_13FileReferenceEEE", !97, i64 0}
!97 = !{!"_ZTSSt6vectorIN2ts4data13FileReferenceESaIS2_EE", !98, i64 0}
!98 = !{!"_ZTSSt12_Vector_baseIN2ts4data13FileReferenceESaIS2_EE", !99, i64 0}
!99 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13FileReferenceESaIS2_EE12_Vector_implE", !100, i64 0}
!100 = !{!"_ZTSNSt12_Vector_baseIN2ts4data13FileReferenceESaIS2_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!101 = !{!"_ZTSN2ts15LanguageVariantE", !25, i64 0}
!102 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !103, i64 0}
!103 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !104, i64 0}
!104 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !105, i64 0, !107, i64 8}
!105 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEE", !106, i64 0}
!106 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEE"}
!107 = !{!"_ZTSSt15_Rb_tree_header", !108, i64 0, !70, i64 32}
!108 = !{!"_ZTSSt18_Rb_tree_node_base", !109, i64 0, !37, i64 8, !37, i64 16, !37, i64 24}
!109 = !{!"_ZTSSt14_Rb_tree_color", !25, i64 0}
!110 = !{!"_ZTSN2ts12ScriptTargetE", !25, i64 0}
!111 = !{!"_ZTSN2ts10ScriptKindE", !25, i64 0}
!112 = !{!"_ZTSSt8functionIFvN2ts4data10SourceFileEEE", !76, i64 0, !37, i64 24}
!113 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data6SymbolESt4lessIS5_ESaISt4pairIKS5_S8_EEE", !114, i64 0}
!114 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data6SymbolEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE", !115, i64 0}
!115 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data6SymbolEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE13_Rb_tree_implISF_Lb1EEE", !105, i64 0, !107, i64 8}
!116 = !{!"_ZTSSt6vectorIN2ts4data22DiagnosticWithLocationESaIS2_EE", !117, i64 0}
!117 = !{!"_ZTSSt12_Vector_baseIN2ts4data22DiagnosticWithLocationESaIS2_EE", !118, i64 0}
!118 = !{!"_ZTSNSt12_Vector_baseIN2ts4data22DiagnosticWithLocationESaIS2_EE12_Vector_implE", !119, i64 0}
!119 = !{!"_ZTSNSt12_Vector_baseIN2ts4data22DiagnosticWithLocationESaIS2_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!120 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4lessIS5_ESaIS5_EE", !121, i64 0}
!121 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !122, i64 0}
!122 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !105, i64 0, !107, i64 8}
!123 = !{!"_ZTSSt6vectorIN2ts4data16CommentDirectiveESaIS2_EE", !124, i64 0}
!124 = !{!"_ZTSSt12_Vector_baseIN2ts4data16CommentDirectiveESaIS2_EE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseIN2ts4data16CommentDirectiveESaIS2_EE12_Vector_implE", !126, i64 0}
!126 = !{!"_ZTSNSt12_Vector_baseIN2ts4data16CommentDirectiveESaIS2_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!127 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data18ResolvedModuleFullESt4lessIS5_ESaISt4pairIKS5_S8_EEE", !128, i64 0}
!128 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data18ResolvedModuleFullEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE", !129, i64 0}
!129 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data18ResolvedModuleFullEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE13_Rb_tree_implISF_Lb1EEE", !105, i64 0, !107, i64 8}
!130 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEN2ts4data30ResolvedTypeReferenceDirectiveESt4lessIS5_ESaISt4pairIKS5_S8_EEE", !131, i64 0}
!131 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data30ResolvedTypeReferenceDirectiveEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE", !132, i64 0}
!132 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_N2ts4data30ResolvedTypeReferenceDirectiveEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE13_Rb_tree_implISF_Lb1EEE", !105, i64 0, !107, i64 8}
!133 = !{!"_ZTSSt6vectorIN2ts4data20PatternAmbientModuleESaIS2_EE", !134, i64 0}
!134 = !{!"_ZTSSt12_Vector_baseIN2ts4data20PatternAmbientModuleESaIS2_EE", !135, i64 0}
!135 = !{!"_ZTSNSt12_Vector_baseIN2ts4data20PatternAmbientModuleESaIS2_EE12_Vector_implE", !136, i64 0}
!136 = !{!"_ZTSNSt12_Vector_baseIN2ts4data20PatternAmbientModuleESaIS2_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!137 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE", !138, i64 0}
!138 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE", !139, i64 0}
!139 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE12_Vector_implE", !140, i64 0}
!140 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESaIS5_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!141 = !{!"_ZTS3ptrIN2ts4data16CheckJsDirectiveEE", !142, i64 0}
!142 = !{!"_ZTSSt10shared_ptrIN2ts4data16CheckJsDirectiveEE", !143, i64 0}
!143 = !{!"_ZTSSt12__shared_ptrIN2ts4data16CheckJsDirectiveELN9__gnu_cxx12_Lock_policyE2EE", !37, i64 0, !42, i64 8}
!144 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt6vectorIS_IS5_N2ts4data24ArgumentWithCommentRangeESt4lessIS5_ESaISt4pairIKS5_S9_EEESaISG_EESB_SaISC_ISD_SI_EEE", !145, i64 0}
!145 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_St6vectorISt3mapIS5_N2ts4data24ArgumentWithCommentRangeESt4lessIS5_ESaIS6_IS7_SC_EEESaISH_EEESt10_Select1stISK_ESE_SaISK_EE", !146, i64 0}
!146 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_St6vectorISt3mapIS5_N2ts4data24ArgumentWithCommentRangeESt4lessIS5_ESaIS6_IS7_SC_EEESaISH_EEESt10_Select1stISK_ESE_SaISK_EE13_Rb_tree_implISE_Lb1EEE", !105, i64 0, !107, i64 8}
!147 = !{!"_ZTSSt6vectorIN2ts4data6SymbolESaIS2_EE", !148, i64 0}
!148 = !{!"_ZTSSt12_Vector_baseIN2ts4data6SymbolESaIS2_EE", !149, i64 0}
!149 = !{!"_ZTSNSt12_Vector_baseIN2ts4data6SymbolESaIS2_EE12_Vector_implE", !150, i64 0}
!150 = !{!"_ZTSNSt12_Vector_baseIN2ts4data6SymbolESaIS2_EE17_Vector_impl_dataE", !37, i64 0, !37, i64 8, !37, i64 16}
!151 = !{!"_ZTSN2ts16JSDocParsingModeE", !25, i64 0}
!152 = !{i8 0, i8 2}
!153 = !{}
!154 = !{!6, !38, i64 904}


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