; LLVM IR from thepowersgang/mrustc :: src/resolve (use)

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

%"class.std::vector.271" = type { %"struct.std::_Vector_base.272" }
%"struct.std::_Vector_base.272" = type { %"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.305" = type { %"struct.std::_Vector_base.306" }
%"struct.std::_Vector_base.306" = type { %"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.311" = type { %"struct.std::_Vector_base.312" }
%"struct.std::_Vector_base.312" = type { %"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.113" = type { %"struct.std::_Vector_base.114" }
%"struct.std::_Vector_base.114" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Path" = type { ptr, %"class.AST::Path::Class", %"struct.AST::Path::Bindings" }
%"class.AST::Path::Class" = type { i32, %"union.AST::Path::Class::DataUnion" }
%"union.AST::Path::Class::DataUnion" = type { %"struct.AST::Path::Class::Data_UFCS" }
%"struct.AST::Path::Class::Data_UFCS" = type { %"class.std::unique_ptr.2", %"class.std::unique_ptr.10", %"class.std::vector" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.std::unique_ptr.10" = type { %"struct.std::__uniq_ptr_data.11" }
%"struct.std::__uniq_ptr_data.11" = type { %"class.std::__uniq_ptr_impl.12" }
%"class.std::__uniq_ptr_impl.12" = type { %"class.std::tuple.13" }
%"class.std::tuple.13" = type { %"struct.std::_Tuple_impl.14" }
%"struct.std::_Tuple_impl.14" = type { %"struct.std::_Head_base.17" }
%"struct.std::_Head_base.17" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.23", %"struct.AST::PathBinding.24" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector.18" }
%class.RcString = type { ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::PathBinding_Value" = type { i32, %"union.AST::PathBinding_Value::DataUnion" }
%"union.AST::PathBinding_Value::DataUnion" = type { %"struct.AST::PathBinding_Value::Data_EnumVar" }
%"struct.AST::PathBinding_Value::Data_EnumVar" = type { ptr, i32, ptr }
%"struct.AST::PathBinding.23" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.AST::PathBinding_Type" = type { i32, %"union.AST::PathBinding_Type::DataUnion" }
%"union.AST::PathBinding_Type::DataUnion" = type { %"struct.AST::PathBinding_Type::Data_Module" }
%"struct.AST::PathBinding_Type::Data_Module" = type { ptr, %"struct.AST::PathBinding_Type::(anonymous struct)::Hir" }
%"struct.AST::PathBinding_Type::(anonymous struct)::Hir" = type { ptr, ptr }
%"struct.AST::PathBinding.24" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%class.TraceLog = type { ptr, %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.270 = type { ptr, ptr }
%"struct.std::pair.276" = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.278" = type { ptr }
%class.PopOnDrop = type { ptr }
%struct.Span = type { ptr }
%class.anon.279 = type { ptr }
%class.anon.280 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.120" = type { ptr }
%class.anon.281 = type { i8 }
%class.anon.283 = type { i8 }
%class.anon.285 = type { i8 }
%class.anon.287 = type { i8 }
%class.anon.289 = type { i8 }
%class.anon.291 = type { ptr }
%"struct.AST::PathBinding_Type::Data_Crate" = type { ptr }
%"struct.AST::PathBinding_Type::Data_TypeAlias" = type { ptr }
%"struct.AST::PathBinding_Type::Data_Trait" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_TraitAlias" = type { ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Function" = type { ptr }
%"struct.AST::PathBinding_Value::Data_Static" = type { ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Struct" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Struct" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Enum" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Union" = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.292" = type { ptr }
%"struct.AST::PathBinding_Macro::Data_MacroRules" = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.299" = type { ptr }
%class.anon.300 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.301" = type { ptr }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.304" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.310" = type { ptr }
%"class.std::span" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.316" = type { ptr }
%"class.std::initializer_list.317" = type { ptr, i64 }
%"class.AST::PathNode" = type { %class.RcString, %"struct.AST::PathParams" }
%"struct.AST::PathParams" = type <{ %"class.std::vector.102", i8, [7 x i8] }>
%"class.std::vector.102" = type { %"struct.std::_Vector_base.103" }
%"struct.std::_Vector_base.103" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.318" = type { ptr }
%class.anon.371 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.372" = type { ptr }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%class.anon.409 = type { ptr }
%class.anon.410 = type { ptr }
%"class.AST::Module" = type { %"struct.AST::AbsolutePath", %"class.std::vector.33", %"class.std::vector.38", %"class.std::vector.43", %"struct.AST::Module::FileInfo", i8, i8, %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::vector.56", %"class.std::vector.61", %"class.std::vector.66" }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Module::FileInfo" = type { i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector.56" = type { %"struct.std::_Vector_base.57" }
%"struct.std::_Vector_base.57" = type { %"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.61" = type { %"struct.std::_Vector_base.62" }
%"struct.std::_Vector_base.62" = type { %"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.66" = type { %"struct.std::_Vector_base.67" }
%"struct.std::_Vector_base.67" = type { %"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Named" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %"class.AST::Item" }
%"class.AST::AttributeList" = type { %"class.std::vector.25" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Visibility" = type <{ %"class.std::shared_ptr.129", %"class.std::shared_ptr.132", i32, [4 x i8] }>
%"class.std::shared_ptr.129" = type { %"class.std::__shared_ptr.130" }
%"class.std::__shared_ptr.130" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.132" = type { %"class.std::__shared_ptr.133" }
%"class.std::__shared_ptr.133" = type { ptr, %"class.std::__shared_count" }
%"class.AST::Item" = type { i32, %"union.AST::Item::DataUnion" }
%"union.AST::Item::DataUnion" = type { %"class.AST::Module" }
%"struct.AST::Item::Data_Crate" = type { %class.RcString }
%"class.AST::Crate" = type { %"class.AST::AttributeList", %"class.std::map", %"class.AST::Module", %"class.std::vector.18", %"class.std::map.71", %"class.std::map.77", %class.RcString, %class.RcString, %class.RcString, %class.RcString, i8, %"class.std::vector.82", %"class.std::vector.87", %"class.std::vector.92", i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %class.RcString, %"class.AST::Path" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_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.71" = type { %"class.std::_Rb_tree.72" }
%"class.std::_Rb_tree.72" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, AST::ExternCrate>, std::_Select1st<std::pair<const RcString, AST::ExternCrate>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, AST::ExternCrate>, std::_Select1st<std::pair<const RcString, AST::ExternCrate>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.77" = type { %"class.std::_Rb_tree.78" }
%"class.std::_Rb_tree.78" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, const MacroRules *>, std::_Select1st<std::pair<const RcString, const MacroRules *>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, const MacroRules *>, std::_Select1st<std::pair<const RcString, const MacroRules *>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = type { %"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.87" = type { %"struct.std::_Vector_base.88" }
%"struct.std::_Vector_base.88" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.92" = type { %"struct.std::_Vector_base.93" }
%"struct.std::_Vector_base.93" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Struct" = type { %"class.AST::GenericParams", %"class.AST::StructData", %"struct.AST::Struct::Markings" }
%"class.AST::GenericParams" = type { %"class.std::vector.165", %"class.std::vector.170" }
%"class.std::vector.165" = type { %"struct.std::_Vector_base.166" }
%"struct.std::_Vector_base.166" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.170" = type { %"struct.std::_Vector_base.171" }
%"struct.std::_Vector_base.171" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::StructData" = type { i32, %"union.AST::StructData::DataUnion" }
%"union.AST::StructData::DataUnion" = type { %"struct.AST::StructData::Data_Tuple" }
%"struct.AST::StructData::Data_Tuple" = type { %"class.std::vector.211" }
%"class.std::vector.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Struct::Markings" = type { i32, i64, i64, i8, %class.U128, i8, %class.U128 }
%class.U128 = type { i64, i64 }
%"struct.AST::Named.293" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %class.MacroRulesPtr }
%class.MacroRulesPtr = type { ptr }
%"struct.AST::Module::MacroImport" = type { i8, %class.RcString, %"struct.AST::AbsolutePath", %class.MacroRef }
%class.MacroRef = type { i32, %"union.MacroRef::DataUnion" }
%"union.MacroRef::DataUnion" = type { ptr }
%"struct.std::pair.302" = type { %class.RcString, ptr }
%"struct.AST::UseItem" = type { %struct.Span, %"class.std::vector.140" }
%"class.std::vector.140" = type { %"struct.std::_Vector_base.141" }
%"struct.std::_Vector_base.141" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::UseItem::Ent" = type { %struct.Span, %"class.AST::Path", %class.RcString }
%"struct.AST::EnumVariant" = type { %"class.AST::AttributeList", %class.RcString, %"class.AST::EnumVariantData" }
%"class.AST::EnumVariantData" = type { i32, %"union.AST::EnumVariantData::DataUnion" }
%"union.AST::EnumVariantData::DataUnion" = type { %"struct.AST::EnumVariantData::Data_Tuple" }
%"struct.AST::EnumVariantData::Data_Tuple" = type { %"class.std::vector.211" }
%"class.HIR::Enum" = type { %"class.HIR::GenericParams", i8, i32, %"class.HIR::Enum::Class", %"struct.HIR::TraitMarkings" }
%"class.HIR::GenericParams" = type { %"class.std::vector.373", %"class.std::vector.378", %"class.std::vector.383", %"class.std::vector.388" }
%"class.std::vector.373" = type { %"struct.std::_Vector_base.374" }
%"struct.std::_Vector_base.374" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.378" = type { %"struct.std::_Vector_base.379" }
%"struct.std::_Vector_base.379" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.383" = type { %"struct.std::_Vector_base.384" }
%"struct.std::_Vector_base.384" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.388" = type { %"struct.std::_Vector_base.389" }
%"struct.std::_Vector_base.389" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Enum::Class" = type { i32, %"union.HIR::Enum::Class::DataUnion" }
%"union.HIR::Enum::Class::DataUnion" = type { %"class.std::vector.393", [8 x i8] }
%"class.std::vector.393" = type { %"struct.std::_Vector_base.394" }
%"struct.std::_Vector_base.394" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TraitMarkings" = type { i8, i8, i8, %"class.std::map.403" }
%"class.std::map.403" = type { %"class.std::_Rb_tree.404" }
%"class.std::_Rb_tree.404" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.HIR::Enum::DataVariant" = type { %class.RcString, i8, %"class.HIR::TypeRef" }
%"class.HIR::TypeRef" = type { ptr }

@__dso_handle = external hidden global i8
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@g_debug_indent_level = external global i32, align 4
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb = external hidden unnamed_addr constant [27 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack = external hidden global %"class.std::vector.271", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack = external hidden global i64, align 8
@.str.23 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [21 x i8], align 1
@__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb = external hidden unnamed_addr constant [197 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods = external hidden global %"class.std::vector.305", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods = external hidden global i64, align 8
@.str.34 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs = external hidden global %"class.std::vector.311", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs = external hidden global i64, align 8
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack = external hidden global %"class.std::vector.113", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack = external hidden global i64, align 8
@.str.42 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1

; Function Attrs: nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) #0

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nounwind
declare void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef) #2

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #6

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #7

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

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #7

declare void @__cxa_free_exception(ptr)

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1

declare void @__cxa_throw(ptr, ptr, ptr)

declare noundef zeroext i1 @_Z13debug_enabledv() #7

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240)) #7

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #8

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #7

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare i32 @__isoc99_sscanf(ptr noundef, ptr noundef, ...) #1

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1)) #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480)) #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8 %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(480) %4, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef %6, i1 noundef zeroext %7) #2 personality ptr @__gxx_personality_v0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i8, align 1
  %17 = alloca %"struct.AST::Path::Bindings", align 8
  %18 = alloca %class.TraceLog, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::function", align 8
  %22 = alloca %class.anon.270, align 8
  %23 = alloca %"struct.std::pair.276", align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.278", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.278", align 8
  %28 = alloca i32, align 4
  %29 = alloca %class.PopOnDrop, align 8
  %30 = alloca %"struct.std::pair.276", align 8
  %31 = alloca i32, align 4
  %32 = alloca %struct.Span, align 8
  %33 = alloca %"class.std::function", align 8
  %34 = alloca %class.anon.279, align 8
  %35 = alloca %struct.Span, align 8
  %36 = alloca %"class.std::function", align 8
  %37 = alloca %class.anon.280, align 8
  %38 = alloca ptr, align 8
  %39 = alloca %"struct.AST::AbsolutePath", align 8
  %40 = alloca %"class.AST::PathBinding_Type", align 8
  %41 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"struct.AST::AbsolutePath", align 8
  %48 = alloca %class.RcString, align 8
  %49 = alloca i8, align 1
  %50 = alloca ptr, align 8
  %51 = alloca i8, align 1
  %52 = alloca ptr, align 8
  %53 = alloca i8, align 1
  %54 = alloca ptr, align 8
  %55 = alloca %struct.Span, align 8
  %56 = alloca %"class.std::function", align 8
  %57 = alloca %class.anon.281, align 1
  %58 = alloca i8, align 1
  %59 = alloca ptr, align 8
  %60 = alloca %struct.Span, align 8
  %61 = alloca %"class.std::function", align 8
  %62 = alloca %class.anon.283, align 1
  %63 = alloca i8, align 1
  %64 = alloca ptr, align 8
  %65 = alloca i8, align 1
  %66 = alloca ptr, align 8
  %67 = alloca i8, align 1
  %68 = alloca ptr, align 8
  %69 = alloca %struct.Span, align 8
  %70 = alloca %"class.std::function", align 8
  %71 = alloca %class.anon.285, align 1
  %72 = alloca i8, align 1
  %73 = alloca ptr, align 8
  %74 = alloca %struct.Span, align 8
  %75 = alloca %"class.std::function", align 8
  %76 = alloca %class.anon.287, align 1
  %77 = alloca i8, align 1
  %78 = alloca ptr, align 8
  %79 = alloca %struct.Span, align 8
  %80 = alloca %"class.std::function", align 8
  %81 = alloca %class.anon.289, align 1
  %82 = alloca i8, align 1
  %83 = alloca ptr, align 8
  %84 = alloca %struct.Span, align 8
  %85 = alloca %"class.std::function", align 8
  %86 = alloca %class.anon.291, align 8
  %87 = alloca %"struct.AST::AbsolutePath", align 8
  %88 = alloca %class.RcString, align 8
  %89 = alloca %"class.std::vector.18", align 8
  %90 = alloca %"class.AST::PathBinding_Type", align 8
  %91 = alloca %"struct.AST::PathBinding_Type::Data_Crate", align 8
  %92 = alloca %"struct.AST::AbsolutePath", align 8
  %93 = alloca %class.RcString, align 8
  %94 = alloca %"class.std::vector.18", align 8
  %95 = alloca %"class.AST::PathBinding_Type", align 8
  %96 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %97 = alloca i8, align 1
  %98 = alloca ptr, align 8
  %99 = alloca %"struct.AST::AbsolutePath", align 8
  %100 = alloca %"class.AST::PathBinding_Type", align 8
  %101 = alloca %"struct.AST::PathBinding_Type::Data_TypeAlias", align 8
  %102 = alloca i8, align 1
  %103 = alloca ptr, align 8
  %104 = alloca %"struct.AST::AbsolutePath", align 8
  %105 = alloca %"class.AST::PathBinding_Type", align 8
  %106 = alloca %"struct.AST::PathBinding_Type::Data_Trait", align 8
  %107 = alloca i8, align 1
  %108 = alloca ptr, align 8
  %109 = alloca %"struct.AST::AbsolutePath", align 8
  %110 = alloca %"class.AST::PathBinding_Type", align 8
  %111 = alloca %"struct.AST::PathBinding_Type::Data_TraitAlias", align 8
  %112 = alloca i8, align 1
  %113 = alloca ptr, align 8
  %114 = alloca %"struct.AST::AbsolutePath", align 8
  %115 = alloca %"class.AST::PathBinding_Value", align 8
  %116 = alloca %"struct.AST::PathBinding_Value::Data_Function", align 8
  %117 = alloca i8, align 1
  %118 = alloca ptr, align 8
  %119 = alloca %"struct.AST::AbsolutePath", align 8
  %120 = alloca %"class.AST::PathBinding_Value", align 8
  %121 = alloca %"struct.AST::PathBinding_Value::Data_Static", align 8
  %122 = alloca i8, align 1
  %123 = alloca ptr, align 8
  %124 = alloca %"struct.AST::AbsolutePath", align 8
  %125 = alloca %"class.AST::PathBinding_Value", align 8
  %126 = alloca %"struct.AST::PathBinding_Value::Data_Struct", align 8
  %127 = alloca %"struct.AST::AbsolutePath", align 8
  %128 = alloca %"class.AST::PathBinding_Type", align 8
  %129 = alloca %"struct.AST::PathBinding_Type::Data_Struct", align 8
  %130 = alloca i8, align 1
  %131 = alloca ptr, align 8
  %132 = alloca %"struct.AST::AbsolutePath", align 8
  %133 = alloca %"class.AST::PathBinding_Type", align 8
  %134 = alloca %"struct.AST::PathBinding_Type::Data_Enum", align 8
  %135 = alloca i8, align 1
  %136 = alloca ptr, align 8
  %137 = alloca %"struct.AST::AbsolutePath", align 8
  %138 = alloca %"class.AST::PathBinding_Type", align 8
  %139 = alloca %"struct.AST::PathBinding_Type::Data_Union", align 8
  %140 = alloca i8, align 1
  %141 = alloca ptr, align 8
  %142 = alloca %"struct.AST::AbsolutePath", align 8
  %143 = alloca %"class.AST::PathBinding_Type", align 8
  %144 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %145 = alloca ptr, align 8
  %146 = alloca %"class.__gnu_cxx::__normal_iterator.292", align 8
  %147 = alloca %"class.__gnu_cxx::__normal_iterator.292", align 8
  %148 = alloca ptr, align 8
  %149 = alloca %"struct.AST::AbsolutePath", align 8
  %150 = alloca %class.RcString, align 8
  %151 = alloca %"class.AST::PathBinding_Macro", align 8
  %152 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %153 = alloca %"class.std::vector.113", align 8
  %154 = alloca ptr, align 8
  %155 = alloca i64, align 8
  %156 = alloca ptr, align 8
  %157 = alloca ptr, align 8
  %158 = alloca ptr, align 8
  %159 = alloca %"class.__gnu_cxx::__normal_iterator.299", align 8
  %160 = alloca %"class.__gnu_cxx::__normal_iterator.299", align 8
  %161 = alloca ptr, align 8
  %162 = alloca ptr, align 8
  %163 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %164 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %165 = alloca ptr, align 8
  %166 = alloca %struct.Span, align 8
  %167 = alloca %"class.std::function", align 8
  %168 = alloca %class.anon.300, align 8
  %169 = alloca i64, align 8
  %170 = alloca ptr, align 8
  %171 = alloca ptr, align 8
  %172 = alloca %"class.__gnu_cxx::__normal_iterator.301", align 8
  %173 = alloca %"class.__gnu_cxx::__normal_iterator.301", align 8
  %174 = alloca ptr, align 8
  %175 = alloca i8, align 1
  %176 = alloca ptr, align 8
  %177 = alloca i8, align 1
  %178 = alloca ptr, align 8
  %179 = alloca i8, align 1
  %180 = alloca ptr, align 8
  %181 = alloca %"struct.AST::AbsolutePath", align 8
  %182 = alloca %"class.AST::PathBinding_Macro", align 8
  %183 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %184 = alloca i8, align 1
  %185 = alloca ptr, align 8
  %186 = alloca i8, align 1
  %187 = alloca ptr, align 8
  %188 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %189 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %190 = alloca %"struct.AST::AbsolutePath", align 8
  %191 = alloca %class.RcString, align 8
  %192 = alloca %"class.AST::PathBinding_Macro", align 8
  %193 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %194 = alloca i8, align 1
  %195 = alloca ptr, align 8
  %196 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %197 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %198 = alloca ptr, align 8
  %199 = alloca ptr, align 8
  %200 = alloca ptr, align 8
  %201 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %202 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %203 = alloca ptr, align 8
  %204 = alloca ptr, align 8
  %205 = alloca %"class.__gnu_cxx::__normal_iterator.310", align 8
  %206 = alloca %"class.__gnu_cxx::__normal_iterator.310", align 8
  %207 = alloca %"class.__gnu_cxx::__normal_iterator.310", align 8
  %208 = alloca ptr, align 8
  %209 = alloca %"class.__gnu_cxx::__normal_iterator.310", align 8
  %210 = alloca ptr, align 8
  %211 = alloca %"struct.AST::Path::Bindings", align 8
  %212 = alloca %"class.AST::Path", align 8
  %213 = alloca %"class.AST::Path", align 8
  %214 = alloca %"class.AST::Path", align 8
  %215 = alloca %"class.std::span", align 8
  %216 = alloca %"struct.AST::Path::Bindings", align 8
  %217 = alloca ptr, align 8
  %218 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %219 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %220 = alloca ptr, align 8
  %221 = alloca ptr, align 8
  %222 = alloca ptr, align 8
  %223 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %224 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %225 = alloca ptr, align 8
  %226 = alloca ptr, align 8
  %227 = alloca %"struct.AST::Path::Bindings", align 8
  %228 = alloca ptr, align 8
  %229 = alloca %"class.__gnu_cxx::__normal_iterator.316", align 8
  %230 = alloca %"class.__gnu_cxx::__normal_iterator.316", align 8
  %231 = alloca %"class.__gnu_cxx::__normal_iterator.316", align 8
  %232 = alloca ptr, align 8
  %233 = alloca %"class.__gnu_cxx::__normal_iterator.316", align 8
  %234 = alloca ptr, align 8
  %235 = alloca %"struct.AST::Path::Bindings", align 8
  %236 = alloca %"class.AST::Path", align 8
  %237 = alloca %"class.AST::Path", align 8
  %238 = alloca %"class.AST::Path", align 8
  %239 = alloca %"class.std::span", align 8
  %240 = alloca %"struct.AST::Path::Bindings", align 8
  %241 = alloca i8, align 1
  %242 = alloca ptr, align 8
  %243 = alloca i8, align 1
  %244 = alloca ptr, align 8
  %245 = alloca %"struct.AST::Path::Bindings", align 8
  %246 = alloca %"class.AST::Path", align 8
  %247 = alloca %class.RcString, align 8
  %248 = alloca %"class.std::vector", align 8
  %249 = alloca %"class.std::initializer_list.317", align 8
  %250 = alloca [1 x %"class.AST::PathNode"], align 8
  %251 = alloca ptr, align 8
  %252 = alloca %class.RcString, align 8
  %253 = alloca %"struct.AST::PathParams", align 8
  %254 = alloca i1, align 1
  %255 = alloca %"class.std::allocator", align 1
  %256 = alloca i8, align 1
  %257 = alloca ptr, align 8
  %258 = alloca %"class.__gnu_cxx::__normal_iterator.318", align 8
  %259 = alloca %"class.__gnu_cxx::__normal_iterator.318", align 8
  %260 = alloca %"class.__gnu_cxx::__normal_iterator.318", align 8
  %261 = alloca ptr, align 8
  %262 = alloca %"class.__gnu_cxx::__normal_iterator.318", align 8
  %263 = alloca ptr, align 8
  %264 = alloca %"struct.AST::Path::Bindings", align 8
  %265 = alloca %"class.std::span", align 8
  %266 = alloca %"struct.AST::Path::Bindings", align 8
  %267 = alloca %"class.AST::Path", align 8
  %268 = alloca %class.RcString, align 8
  %269 = alloca %"class.std::vector", align 8
  %270 = alloca %"class.std::initializer_list.317", align 8
  %271 = alloca [1 x %"class.AST::PathNode"], align 8
  %272 = alloca ptr, align 8
  %273 = alloca %class.RcString, align 8
  %274 = alloca %"struct.AST::PathParams", align 8
  %275 = alloca i1, align 1
  %276 = alloca %"class.std::allocator", align 1
  %277 = alloca %"struct.AST::AbsolutePath", align 8
  %278 = alloca %struct.Span, align 8
  %279 = alloca %"class.std::function", align 8
  %280 = alloca %class.anon.371, align 8
  %281 = alloca i8, align 1
  %282 = alloca ptr, align 8
  %283 = alloca ptr, align 8
  %284 = alloca i32, align 4
  %285 = alloca ptr, align 8
  %286 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %287 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %288 = alloca ptr, align 8
  %289 = alloca %"struct.AST::Path::Bindings", align 8
  %290 = alloca %"struct.AST::AbsolutePath", align 8
  %291 = alloca %class.RcString, align 8
  %292 = alloca %"class.AST::PathBinding_Type", align 8
  %293 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %294 = alloca %"struct.AST::AbsolutePath", align 8
  %295 = alloca %class.RcString, align 8
  %296 = alloca %"class.AST::PathBinding_Value", align 8
  %297 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %298 = alloca ptr, align 8
  %299 = alloca i64, align 8
  %300 = alloca %"struct.AST::Path::Bindings", align 8
  %301 = alloca %"struct.AST::AbsolutePath", align 8
  %302 = alloca %class.RcString, align 8
  %303 = alloca %"class.AST::PathBinding_Type", align 8
  %304 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %305 = alloca %"struct.AST::AbsolutePath", align 8
  %306 = alloca %class.RcString, align 8
  %307 = alloca %"class.AST::PathBinding_Value", align 8
  %308 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %309 = alloca %struct.Span, align 8
  %310 = alloca %"class.std::function", align 8
  %311 = alloca %class.anon.409, align 8
  %312 = alloca %struct.Span, align 8
  %313 = alloca %"class.std::function", align 8
  %314 = alloca %class.anon.410, align 8
  %315 = alloca %"class.std::span", align 8
  store ptr %0, ptr %9, align 8
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  %316 = zext i1 %7 to i8
  store i8 %316, ptr %16, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 184, ptr %17) #0
  call void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17)
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #0
  %317 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %318 unwind label %369

318:                                              ; preds = %8
  %319 = zext i1 %317 to i64
  %320 = select i1 %317, ptr @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #0
  %321 = getelementptr inbounds %class.anon.270, ptr %22, i32 0, i32 0
  %322 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %322, ptr %321, align 8, !tbaa !5
  %323 = getelementptr inbounds %class.anon.270, ptr %22, i32 0, i32 1
  %324 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %324, ptr %323, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(16) %22) #0
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef %320, ptr noundef %21)
          to label %325 unwind label %373

325:                                              ; preds = %318
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #0
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #0
  %326 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack acquire, align 8
  %327 = icmp eq i8 %326, 0
  br i1 %327, label %328, label %333, !prof !11

328:                                              ; preds = %325
  %329 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #0
  %330 = icmp ne i32 %329, 0
  br i1 %330, label %331, label %333

331:                                              ; preds = %328
  call void @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #0
  %332 = call i32 @__cxa_atexit(ptr @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EED2Ev, ptr @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #0
  br label %333

333:                                              ; preds = %331, %328, %325
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #0
  %334 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %334, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #0
  %335 = load ptr, ptr %14, align 8, !tbaa !5
  %336 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %335)
          to label %337 unwind label %377

337:                                              ; preds = %333
  store ptr %336, ptr %25, align 8, !tbaa !5
  %338 = invoke { ptr, ptr } @_ZSt9make_pairIPKN3AST6ModuleEPKcESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %339 unwind label %377

339:                                              ; preds = %337
  %340 = getelementptr inbounds { ptr, ptr }, ptr %23, i32 0, i32 0
  %341 = extractvalue { ptr, ptr } %338, 0
  store ptr %341, ptr %340, align 8
  %342 = getelementptr inbounds { ptr, ptr }, ptr %23, i32 0, i32 1
  %343 = extractvalue { ptr, ptr } %338, 1
  store ptr %343, ptr %342, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #0
  %344 = call ptr @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #0
  %345 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.278", ptr %26, i32 0, i32 0
  store ptr %344, ptr %345, align 8
  %346 = call ptr @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #0
  %347 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.278", ptr %27, i32 0, i32 0
  store ptr %346, ptr %347, align 8
  %348 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.278", ptr %26, i32 0, i32 0
  %349 = load ptr, ptr %348, align 8
  %350 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.278", ptr %27, i32 0, i32 0
  %351 = load ptr, ptr %350, align 8
  %352 = invoke noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPSt4pairIPKN3AST6ModuleEPKcESt6vectorIS9_SaIS9_EEEES9_ENSt15iterator_traitsIT_E15difference_typeESG_SG_RKT0_(ptr %349, ptr %351, ptr noundef nonnull align 8 dereferenceable(16) %23)
          to label %353 unwind label %381

353:                                              ; preds = %339
  %354 = icmp sgt i64 %352, 1
  br i1 %354, label %355, label %389

355:                                              ; preds = %353
  br label %356

356:                                              ; preds = %355
  %357 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %358 unwind label %381

358:                                              ; preds = %356
  br i1 %357, label %359, label %385

359:                                              ; preds = %358
  %360 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %361 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %360, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %362 unwind label %381

362:                                              ; preds = %359
  %363 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %361, ptr noundef @.str.23)
          to label %364 unwind label %381

364:                                              ; preds = %362
  %365 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %363, ptr noundef @_ZSt3decRSt8ios_base)
          to label %366 unwind label %381

366:                                              ; preds = %364
  %367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %365, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %368 unwind label %381

368:                                              ; preds = %366
  br label %385

369:                                              ; preds = %8
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %19, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %20, align 4
  br label %3442

373:                                              ; preds = %318
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %19, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #0
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #0
  br label %3442

377:                                              ; preds = %337, %333
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %19, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #0
  br label %3441

381:                                              ; preds = %387, %366, %364, %362, %359, %356, %339
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %19, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %20, align 4
  br label %3441

385:                                              ; preds = %368, %358
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %17)
          to label %388 unwind label %381

388:                                              ; preds = %387
  store i32 1, ptr %28, align 4
  br label %3440

389:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %30, ptr align 8 %23, i64 16, i1 false)
  %390 = getelementptr inbounds { ptr, ptr }, ptr %30, i32 0, i32 0
  %391 = load ptr, ptr %390, align 8
  %392 = getelementptr inbounds { ptr, ptr }, ptr %30, i32 0, i32 1
  %393 = load ptr, ptr %392, align 8
  invoke void @_Z19push_and_pop_at_endISt4pairIPKN3AST6ModuleEPKcEE9PopOnDropIT_ERSt6vectorIS9_SaIS9_EES9_(ptr dead_on_unwind writable sret(%class.PopOnDrop) align 8 %29, ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack, ptr %391, ptr %393)
          to label %394 unwind label %422

394:                                              ; preds = %389
  %395 = load ptr, ptr %14, align 8, !tbaa !5
  %396 = invoke noundef i64 @_ZNK8RcString4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %395)
          to label %397 unwind label %426

397:                                              ; preds = %394
  %398 = icmp ugt i64 %396, 0
  br i1 %398, label %399, label %528

399:                                              ; preds = %397
  %400 = load ptr, ptr %14, align 8, !tbaa !5
  %401 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %400)
          to label %402 unwind label %426

402:                                              ; preds = %399
  %403 = getelementptr inbounds i8, ptr %401, i64 0
  %404 = load i8, ptr %403, align 1, !tbaa !14
  %405 = sext i8 %404 to i32
  %406 = icmp eq i32 %405, 35
  br i1 %406, label %407, label %528

407:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #0
  store i32 0, ptr %31, align 4, !tbaa !12
  %408 = load ptr, ptr %14, align 8, !tbaa !5
  %409 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %408)
          to label %410 unwind label %430

410:                                              ; preds = %407
  %411 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %409, ptr noundef @.str.10, ptr noundef %31) #0
  %412 = icmp ne i32 %411, 1
  br i1 %412, label %413, label %449

413:                                              ; preds = %410
  br label %414

414:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #0
  %415 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %415)
          to label %416 unwind label %434

416:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #0
  %417 = getelementptr inbounds %class.anon.279, ptr %34, i32 0, i32 0
  %418 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %418, ptr %417, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef %33)
          to label %419 unwind label %438

419:                                              ; preds = %416
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #0
  %420 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %420, ptr noundef @.str.5)
          to label %421 unwind label %443

421:                                              ; preds = %419
  invoke void @__cxa_throw(ptr %420, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %430

422:                                              ; preds = %389
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %19, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %20, align 4
  br label %3439

426:                                              ; preds = %2074, %2070, %1987, %1581, %399, %394
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %19, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %20, align 4
  br label %3438

430:                                              ; preds = %481, %465, %450, %421, %407
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %19, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %20, align 4
  br label %527

434:                                              ; preds = %414
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %19, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %20, align 4
  br label %442

438:                                              ; preds = %416
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %19, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #0
  br label %442

442:                                              ; preds = %438, %434
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #0
  br label %527

443:                                              ; preds = %419
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %19, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %20, align 4
  call void @__cxa_free_exception(ptr %420) #0
  br label %527

447:                                              ; No predecessors!
  br label %448

448:                                              ; preds = %447
  br label %449

449:                                              ; preds = %448, %410
  br label %450

450:                                              ; preds = %449
  %451 = load i32, ptr %31, align 4, !tbaa !12
  %452 = zext i32 %451 to i64
  %453 = load ptr, ptr %13, align 8, !tbaa !5
  %454 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %453)
          to label %455 unwind label %430

455:                                              ; preds = %450
  %456 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %454) #0
  %457 = icmp ult i64 %452, %456
  br i1 %457, label %479, label %458

458:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #0
  %459 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %459)
          to label %460 unwind label %466

460:                                              ; preds = %458
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #0
  %461 = getelementptr inbounds %class.anon.280, ptr %37, i32 0, i32 0
  %462 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %462, ptr %461, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef %36)
          to label %463 unwind label %470

463:                                              ; preds = %460
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #0
  %464 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %464, ptr noundef @.str.5)
          to label %465 unwind label %475

465:                                              ; preds = %463
  invoke void @__cxa_throw(ptr %464, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %430

466:                                              ; preds = %458
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %19, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %20, align 4
  br label %474

470:                                              ; preds = %460
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %19, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #0
  br label %474

474:                                              ; preds = %470, %466
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #0
  br label %527

475:                                              ; preds = %463
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %19, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %20, align 4
  call void @__cxa_free_exception(ptr %464) #0
  br label %527

479:                                              ; preds = %455
  br label %480

480:                                              ; preds = %479
  br label %481

481:                                              ; preds = %480
  %482 = load ptr, ptr %13, align 8, !tbaa !5
  %483 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %482)
          to label %484 unwind label %430

484:                                              ; preds = %481
  %485 = load i32, ptr %31, align 4, !tbaa !12
  %486 = zext i32 %485 to i64
  %487 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef %486) #0
  %488 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %487) #0
  br i1 %488, label %489, label %490

489:                                              ; preds = %484
  br label %492

490:                                              ; preds = %484
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str.4, i32 noundef 393, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #12
  unreachable

491:                                              ; No predecessors!
  br label %492

492:                                              ; preds = %491, %489
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #0
  %493 = load ptr, ptr %13, align 8, !tbaa !5
  %494 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %493)
          to label %495 unwind label %513

495:                                              ; preds = %492
  %496 = load i32, ptr %31, align 4, !tbaa !12
  %497 = zext i32 %496 to i64
  %498 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %494, i64 noundef %497) #0
  %499 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %498) #0
  store ptr %499, ptr %38, align 8, !tbaa !5
  %500 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  %501 = load ptr, ptr %38, align 8, !tbaa !5
  %502 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %501)
          to label %503 unwind label %513

503:                                              ; preds = %495
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %502)
          to label %504 unwind label %513

504:                                              ; preds = %503
  %505 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %41, i32 0, i32 0
  %506 = load ptr, ptr %38, align 8, !tbaa !5
  store ptr %506, ptr %505, align 8, !tbaa !15
  %507 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %41, i32 0, i32 1
  %508 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %507, i32 0, i32 0
  store ptr null, ptr %508, align 8, !tbaa !18
  %509 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %507, i32 0, i32 1
  store ptr null, ptr %509, align 8, !tbaa !19
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %40, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %41)
          to label %510 unwind label %517

510:                                              ; preds = %504
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %500, ptr noundef %39, ptr noundef %40)
          to label %511 unwind label %521

511:                                              ; preds = %510
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #0
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %17)
          to label %512 unwind label %513

512:                                              ; preds = %511
  store i32 1, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #0
  br label %3437

513:                                              ; preds = %511, %503, %495, %492
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %19, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %20, align 4
  br label %526

517:                                              ; preds = %504
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %19, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %20, align 4
  br label %525

521:                                              ; preds = %510
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %19, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #0
  br label %525

525:                                              ; preds = %521, %517
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #0
  br label %526

526:                                              ; preds = %525, %513
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #0
  br label %527

527:                                              ; preds = %526, %475, %474, %443, %442, %430
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #0
  br label %3438

528:                                              ; preds = %402, %397
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #0
  %529 = load ptr, ptr %13, align 8, !tbaa !5
  %530 = getelementptr inbounds %"class.AST::Module", ptr %529, i32 0, i32 1
  store ptr %530, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #0
  %531 = load ptr, ptr %42, align 8, !tbaa !5
  %532 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %531) #0
  %533 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %43, i32 0, i32 0
  store ptr %532, ptr %533, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #0
  %534 = load ptr, ptr %42, align 8, !tbaa !5
  %535 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %534) #0
  %536 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %44, i32 0, i32 0
  store ptr %535, ptr %536, align 8
  br label %537

537:                                              ; preds = %1486, %528
  %538 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #0
  br i1 %538, label %540, label %539

539:                                              ; preds = %537
  store i32 8, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #0
  br label %1489

540:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #0
  %541 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #0
  store ptr %541, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #0
  %542 = load ptr, ptr %45, align 8, !tbaa !5
  %543 = call noundef nonnull align 8 dereferenceable(568) ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %542) #0
  store ptr %543, ptr %46, align 8, !tbaa !5
  %544 = load ptr, ptr %46, align 8, !tbaa !5
  %545 = getelementptr inbounds %"struct.AST::Named", ptr %544, i32 0, i32 4
  %546 = invoke noundef zeroext i1 @_ZNK3AST4Item7is_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %545)
          to label %547 unwind label %549

547:                                              ; preds = %540
  br i1 %546, label %548, label %553

548:                                              ; preds = %547
  store i32 9, ptr %28, align 4
  br label %1480

549:                                              ; preds = %553, %540
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %19, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %20, align 4
  br label %1488

553:                                              ; preds = %547
  %554 = load ptr, ptr %46, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.AST::Named", ptr %554, i32 0, i32 3
  %556 = load ptr, ptr %14, align 8, !tbaa !5
  %557 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef nonnull align 8 dereferenceable(8) %556)
          to label %558 unwind label %549

558:                                              ; preds = %553
  br i1 %557, label %559, label %1479

559:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #0
  %560 = load ptr, ptr %13, align 8, !tbaa !5
  %561 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %560)
          to label %562 unwind label %586

562:                                              ; preds = %559
  %563 = load ptr, ptr %46, align 8, !tbaa !5
  %564 = getelementptr inbounds %"struct.AST::Named", ptr %563, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %564)
          to label %565 unwind label %586

565:                                              ; preds = %562
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %561, ptr noundef %48)
          to label %566 unwind label %590

566:                                              ; preds = %565
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #0
  br label %567

567:                                              ; preds = %566
  %568 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %569 unwind label %594

569:                                              ; preds = %567
  br i1 %568, label %570, label %598

570:                                              ; preds = %569
  %571 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %572 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %571, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %573 unwind label %594

573:                                              ; preds = %570
  %574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %572, ptr noundef @.str.25)
          to label %575 unwind label %594

575:                                              ; preds = %573
  %576 = load ptr, ptr %46, align 8, !tbaa !5
  %577 = getelementptr inbounds %"struct.AST::Named", ptr %576, i32 0, i32 4
  %578 = invoke noundef ptr @_ZNK3AST4Item7tag_strEv(ptr noundef nonnull align 8 dereferenceable(488) %577)
          to label %579 unwind label %594

579:                                              ; preds = %575
  %580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %574, ptr noundef %578)
          to label %581 unwind label %594

581:                                              ; preds = %579
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %580, ptr noundef @_ZSt3decRSt8ios_base)
          to label %583 unwind label %594

583:                                              ; preds = %581
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %582, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %585 unwind label %594

585:                                              ; preds = %583
  br label %598

586:                                              ; preds = %562, %559
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %19, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %20, align 4
  br label %1478

590:                                              ; preds = %565
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %19, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %20, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #0
  br label %1478

594:                                              ; preds = %583, %581, %579, %575, %573, %570, %567
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %19, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %20, align 4
  br label %1477

598:                                              ; preds = %585, %569
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #0
  store i8 1, ptr %49, align 1, !tbaa !9
  br label %601

601:                                              ; preds = %1475, %600
  %602 = load i8, ptr %49, align 1, !tbaa !9, !range !20, !noundef !21
  %603 = trunc i8 %602 to i1
  br i1 %603, label %605, label %604

604:                                              ; preds = %601
  store i32 12, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #0
  br label %1476

605:                                              ; preds = %601
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #0
  %606 = load ptr, ptr %46, align 8, !tbaa !5
  %607 = getelementptr inbounds %"struct.AST::Named", ptr %606, i32 0, i32 4
  store ptr %607, ptr %50, align 8, !tbaa !5
  br label %608

608:                                              ; preds = %1472, %605
  %609 = load i8, ptr %49, align 1, !tbaa !9, !range !20, !noundef !21
  %610 = trunc i8 %609 to i1
  br i1 %610, label %612, label %611

611:                                              ; preds = %608
  store i32 15, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #0
  br label %1474

612:                                              ; preds = %608
  %613 = load ptr, ptr %50, align 8, !tbaa !5
  %614 = invoke noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488) %613)
          to label %615 unwind label %616

615:                                              ; preds = %612
  switch i32 %614, label %1471 [
    i32 0, label %620
    i32 1, label %621
    i32 2, label %644
    i32 5, label %689
    i32 8, label %734
    i32 3, label %757
    i32 6, label %780
    i32 7, label %825
    i32 4, label %870
    i32 10, label %915
    i32 11, label %1057
    i32 15, label %1098
    i32 16, label %1142
    i32 17, label %1186
    i32 18, label %1227
    i32 12, label %1271
    i32 13, label %1341
    i32 14, label %1385
    i32 9, label %1429
  ]

616:                                              ; preds = %612
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %19, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %20, align 4
  br label %1473

620:                                              ; preds = %615
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 409, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #12
  unreachable

621:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #0
  store i8 1, ptr %51, align 1, !tbaa !9
  br label %622

622:                                              ; preds = %642, %621
  %623 = load i8, ptr %51, align 1, !tbaa !9, !range !20, !noundef !21
  %624 = trunc i8 %623 to i1
  br i1 %624, label %626, label %625

625:                                              ; preds = %622
  store i32 19, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #0
  br label %643

626:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #0
  %627 = load ptr, ptr %50, align 8, !tbaa !5
  %628 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %627)
          to label %629 unwind label %635

629:                                              ; preds = %626
  store ptr %628, ptr %52, align 8, !tbaa !5
  br label %630

630:                                              ; preds = %640, %629
  %631 = load ptr, ptr %52, align 8, !tbaa !5
  %632 = load i8, ptr %51, align 1, !tbaa !9, !range !20, !noundef !21
  %633 = trunc i8 %632 to i1
  br i1 %633, label %639, label %634

634:                                              ; preds = %630
  store i32 22, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #0
  br label %641

635:                                              ; preds = %626
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %19, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #0
  br label %1473

639:                                              ; preds = %630
  br label %640

640:                                              ; preds = %639
  store i8 0, ptr %51, align 1, !tbaa !9
  br label %630, !llvm.loop !22

641:                                              ; preds = %634
  br label %642

642:                                              ; preds = %641
  store i8 0, ptr %51, align 1, !tbaa !9
  br label %622, !llvm.loop !24

643:                                              ; preds = %625
  br label %1471

644:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #0
  store i8 1, ptr %53, align 1, !tbaa !9
  br label %645

645:                                              ; preds = %687, %644
  %646 = load i8, ptr %53, align 1, !tbaa !9, !range !20, !noundef !21
  %647 = trunc i8 %646 to i1
  br i1 %647, label %649, label %648

648:                                              ; preds = %645
  store i32 25, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #0
  br label %688

649:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #0
  %650 = load ptr, ptr %50, align 8, !tbaa !5
  %651 = invoke noundef nonnull align 8 dereferenceable(393) ptr @_ZNK3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488) %650)
          to label %652 unwind label %658

652:                                              ; preds = %649
  store ptr %651, ptr %54, align 8, !tbaa !5
  br label %653

653:                                              ; preds = %684, %652
  %654 = load ptr, ptr %54, align 8, !tbaa !5
  %655 = load i8, ptr %53, align 1, !tbaa !9, !range !20, !noundef !21
  %656 = trunc i8 %655 to i1
  br i1 %656, label %662, label %657

657:                                              ; preds = %653
  store i32 28, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #0
  br label %686

658:                                              ; preds = %668, %649
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %19, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %20, align 4
  br label %685

662:                                              ; preds = %653
  br label %663

663:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #0
  %664 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %664)
          to label %665 unwind label %669

665:                                              ; preds = %663
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #0
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 1 dereferenceable(1) %57) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef %56)
          to label %666 unwind label %673

666:                                              ; preds = %665
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #0
  %667 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %667, ptr noundef @.str.5)
          to label %668 unwind label %678

668:                                              ; preds = %666
  invoke void @__cxa_throw(ptr %667, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %658

669:                                              ; preds = %663
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %19, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %20, align 4
  br label %677

673:                                              ; preds = %665
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %19, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #0
  br label %677

677:                                              ; preds = %673, %669
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #0
  br label %685

678:                                              ; preds = %666
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %19, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %20, align 4
  call void @__cxa_free_exception(ptr %667) #0
  br label %685

682:                                              ; No predecessors!
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683
  store i8 0, ptr %53, align 1, !tbaa !9
  br label %653, !llvm.loop !25

685:                                              ; preds = %678, %677, %658
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #0
  br label %1473

686:                                              ; preds = %657
  br label %687

687:                                              ; preds = %686
  store i8 0, ptr %53, align 1, !tbaa !9
  br label %645, !llvm.loop !26

688:                                              ; preds = %648
  br label %1471

689:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #0
  store i8 1, ptr %58, align 1, !tbaa !9
  br label %690

690:                                              ; preds = %732, %689
  %691 = load i8, ptr %58, align 1, !tbaa !9, !range !20, !noundef !21
  %692 = trunc i8 %691 to i1
  br i1 %692, label %694, label %693

693:                                              ; preds = %690
  store i32 33, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #0
  br label %733

694:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #0
  %695 = load ptr, ptr %50, align 8, !tbaa !5
  %696 = invoke noundef nonnull align 8 dereferenceable(52) ptr @_ZNK3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488) %695)
          to label %697 unwind label %703

697:                                              ; preds = %694
  store ptr %696, ptr %59, align 8, !tbaa !5
  br label %698

698:                                              ; preds = %729, %697
  %699 = load ptr, ptr %59, align 8, !tbaa !5
  %700 = load i8, ptr %58, align 1, !tbaa !9, !range !20, !noundef !21
  %701 = trunc i8 %700 to i1
  br i1 %701, label %707, label %702

702:                                              ; preds = %698
  store i32 36, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #0
  br label %731

703:                                              ; preds = %713, %694
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %19, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %20, align 4
  br label %730

707:                                              ; preds = %698
  br label %708

708:                                              ; preds = %707
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #0
  %709 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %709)
          to label %710 unwind label %714

710:                                              ; preds = %708
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #0
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 1 dereferenceable(1) %62) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef %61)
          to label %711 unwind label %718

711:                                              ; preds = %710
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #0
  %712 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %712, ptr noundef @.str.5)
          to label %713 unwind label %723

713:                                              ; preds = %711
  invoke void @__cxa_throw(ptr %712, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %703

714:                                              ; preds = %708
  %715 = landingpad { ptr, i32 }
          cleanup
  %716 = extractvalue { ptr, i32 } %715, 0
  store ptr %716, ptr %19, align 8
  %717 = extractvalue { ptr, i32 } %715, 1
  store i32 %717, ptr %20, align 4
  br label %722

718:                                              ; preds = %710
  %719 = landingpad { ptr, i32 }
          cleanup
  %720 = extractvalue { ptr, i32 } %719, 0
  store ptr %720, ptr %19, align 8
  %721 = extractvalue { ptr, i32 } %719, 1
  store i32 %721, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #0
  br label %722

722:                                              ; preds = %718, %714
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #0
  br label %730

723:                                              ; preds = %711
  %724 = landingpad { ptr, i32 }
          cleanup
  %725 = extractvalue { ptr, i32 } %724, 0
  store ptr %725, ptr %19, align 8
  %726 = extractvalue { ptr, i32 } %724, 1
  store i32 %726, ptr %20, align 4
  call void @__cxa_free_exception(ptr %712) #0
  br label %730

727:                                              ; No predecessors!
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728
  store i8 0, ptr %58, align 1, !tbaa !9
  br label %698, !llvm.loop !27

730:                                              ; preds = %723, %722, %703
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #0
  br label %1473

731:                                              ; preds = %702
  br label %732

732:                                              ; preds = %731
  store i8 0, ptr %58, align 1, !tbaa !9
  br label %690, !llvm.loop !28

733:                                              ; preds = %693
  br label %1471

734:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #0
  store i8 1, ptr %63, align 1, !tbaa !9
  br label %735

735:                                              ; preds = %755, %734
  %736 = load i8, ptr %63, align 1, !tbaa !9, !range !20, !noundef !21
  %737 = trunc i8 %736 to i1
  br i1 %737, label %739, label %738

738:                                              ; preds = %735
  store i32 41, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #0
  br label %756

739:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #0
  %740 = load ptr, ptr %50, align 8, !tbaa !5
  %741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_MacroEv(ptr noundef nonnull align 8 dereferenceable(488) %740)
          to label %742 unwind label %748

742:                                              ; preds = %739
  store ptr %741, ptr %64, align 8, !tbaa !5
  br label %743

743:                                              ; preds = %753, %742
  %744 = load ptr, ptr %64, align 8, !tbaa !5
  %745 = load i8, ptr %63, align 1, !tbaa !9, !range !20, !noundef !21
  %746 = trunc i8 %745 to i1
  br i1 %746, label %752, label %747

747:                                              ; preds = %743
  store i32 44, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #0
  br label %754

748:                                              ; preds = %739
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %19, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #0
  br label %1473

752:                                              ; preds = %743
  br label %753

753:                                              ; preds = %752
  store i8 0, ptr %63, align 1, !tbaa !9
  br label %743, !llvm.loop !29

754:                                              ; preds = %747
  br label %755

755:                                              ; preds = %754
  store i8 0, ptr %63, align 1, !tbaa !9
  br label %735, !llvm.loop !30

756:                                              ; preds = %738
  br label %1471

757:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #0
  store i8 1, ptr %65, align 1, !tbaa !9
  br label %758

758:                                              ; preds = %778, %757
  %759 = load i8, ptr %65, align 1, !tbaa !9, !range !20, !noundef !21
  %760 = trunc i8 %759 to i1
  br i1 %760, label %762, label %761

761:                                              ; preds = %758
  store i32 47, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #0
  br label %779

762:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #0
  %763 = load ptr, ptr %50, align 8, !tbaa !5
  %764 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %763)
          to label %765 unwind label %771

765:                                              ; preds = %762
  store ptr %764, ptr %66, align 8, !tbaa !5
  br label %766

766:                                              ; preds = %776, %765
  %767 = load ptr, ptr %66, align 8, !tbaa !5
  %768 = load i8, ptr %65, align 1, !tbaa !9, !range !20, !noundef !21
  %769 = trunc i8 %768 to i1
  br i1 %769, label %775, label %770

770:                                              ; preds = %766
  store i32 50, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #0
  br label %777

771:                                              ; preds = %762
  %772 = landingpad { ptr, i32 }
          cleanup
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %19, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #0
  br label %1473

775:                                              ; preds = %766
  br label %776

776:                                              ; preds = %775
  store i8 0, ptr %65, align 1, !tbaa !9
  br label %766, !llvm.loop !31

777:                                              ; preds = %770
  br label %778

778:                                              ; preds = %777
  store i8 0, ptr %65, align 1, !tbaa !9
  br label %758, !llvm.loop !32

779:                                              ; preds = %761
  br label %1471

780:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #0
  store i8 1, ptr %67, align 1, !tbaa !9
  br label %781

781:                                              ; preds = %823, %780
  %782 = load i8, ptr %67, align 1, !tbaa !9, !range !20, !noundef !21
  %783 = trunc i8 %782 to i1
  br i1 %783, label %785, label %784

784:                                              ; preds = %781
  store i32 53, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #0
  br label %824

785:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #0
  %786 = load ptr, ptr %50, align 8, !tbaa !5
  %787 = invoke noundef nonnull align 8 dereferenceable(472) ptr @_ZNK3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %786)
          to label %788 unwind label %794

788:                                              ; preds = %785
  store ptr %787, ptr %68, align 8, !tbaa !5
  br label %789

789:                                              ; preds = %820, %788
  %790 = load ptr, ptr %68, align 8, !tbaa !5
  %791 = load i8, ptr %67, align 1, !tbaa !9, !range !20, !noundef !21
  %792 = trunc i8 %791 to i1
  br i1 %792, label %798, label %793

793:                                              ; preds = %789
  store i32 56, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #0
  br label %822

794:                                              ; preds = %804, %785
  %795 = landingpad { ptr, i32 }
          cleanup
  %796 = extractvalue { ptr, i32 } %795, 0
  store ptr %796, ptr %19, align 8
  %797 = extractvalue { ptr, i32 } %795, 1
  store i32 %797, ptr %20, align 4
  br label %821

798:                                              ; preds = %789
  br label %799

799:                                              ; preds = %798
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #0
  %800 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %800)
          to label %801 unwind label %805

801:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #0
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 1 dereferenceable(1) %71) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef %70)
          to label %802 unwind label %809

802:                                              ; preds = %801
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #0
  %803 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %803, ptr noundef @.str.5)
          to label %804 unwind label %814

804:                                              ; preds = %802
  invoke void @__cxa_throw(ptr %803, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %794

805:                                              ; preds = %799
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %19, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %20, align 4
  br label %813

809:                                              ; preds = %801
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %19, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #0
  br label %813

813:                                              ; preds = %809, %805
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #0
  br label %821

814:                                              ; preds = %802
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %19, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %20, align 4
  call void @__cxa_free_exception(ptr %803) #0
  br label %821

818:                                              ; No predecessors!
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  store i8 0, ptr %67, align 1, !tbaa !9
  br label %789, !llvm.loop !33

821:                                              ; preds = %814, %813, %794
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #0
  br label %1473

822:                                              ; preds = %793
  br label %823

823:                                              ; preds = %822
  store i8 0, ptr %67, align 1, !tbaa !9
  br label %781, !llvm.loop !34

824:                                              ; preds = %784
  br label %1471

825:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #0
  store i8 1, ptr %72, align 1, !tbaa !9
  br label %826

826:                                              ; preds = %868, %825
  %827 = load i8, ptr %72, align 1, !tbaa !9, !range !20, !noundef !21
  %828 = trunc i8 %827 to i1
  br i1 %828, label %830, label %829

829:                                              ; preds = %826
  store i32 61, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #0
  br label %869

830:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #0
  %831 = load ptr, ptr %50, align 8, !tbaa !5
  %832 = invoke noundef nonnull align 8 dereferenceable(448) ptr @_ZNK3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %831)
          to label %833 unwind label %839

833:                                              ; preds = %830
  store ptr %832, ptr %73, align 8, !tbaa !5
  br label %834

834:                                              ; preds = %865, %833
  %835 = load ptr, ptr %73, align 8, !tbaa !5
  %836 = load i8, ptr %72, align 1, !tbaa !9, !range !20, !noundef !21
  %837 = trunc i8 %836 to i1
  br i1 %837, label %843, label %838

838:                                              ; preds = %834
  store i32 64, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #0
  br label %867

839:                                              ; preds = %849, %830
  %840 = landingpad { ptr, i32 }
          cleanup
  %841 = extractvalue { ptr, i32 } %840, 0
  store ptr %841, ptr %19, align 8
  %842 = extractvalue { ptr, i32 } %840, 1
  store i32 %842, ptr %20, align 4
  br label %866

843:                                              ; preds = %834
  br label %844

844:                                              ; preds = %843
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #0
  %845 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %845)
          to label %846 unwind label %850

846:                                              ; preds = %844
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #0
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 1 dereferenceable(1) %76) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef %75)
          to label %847 unwind label %854

847:                                              ; preds = %846
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #0
  %848 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %848, ptr noundef @.str.5)
          to label %849 unwind label %859

849:                                              ; preds = %847
  invoke void @__cxa_throw(ptr %848, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %839

850:                                              ; preds = %844
  %851 = landingpad { ptr, i32 }
          cleanup
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %19, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %20, align 4
  br label %858

854:                                              ; preds = %846
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %19, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #0
  br label %858

858:                                              ; preds = %854, %850
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #0
  br label %866

859:                                              ; preds = %847
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %19, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %20, align 4
  call void @__cxa_free_exception(ptr %848) #0
  br label %866

863:                                              ; No predecessors!
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  store i8 0, ptr %72, align 1, !tbaa !9
  br label %834, !llvm.loop !35

866:                                              ; preds = %859, %858, %839
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #0
  br label %1473

867:                                              ; preds = %838
  br label %868

868:                                              ; preds = %867
  store i8 0, ptr %72, align 1, !tbaa !9
  br label %826, !llvm.loop !36

869:                                              ; preds = %829
  br label %1471

870:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #0
  store i8 1, ptr %77, align 1, !tbaa !9
  br label %871

871:                                              ; preds = %913, %870
  %872 = load i8, ptr %77, align 1, !tbaa !9, !range !20, !noundef !21
  %873 = trunc i8 %872 to i1
  br i1 %873, label %875, label %874

874:                                              ; preds = %871
  store i32 69, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #0
  br label %914

875:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #0
  %876 = load ptr, ptr %50, align 8, !tbaa !5
  %877 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488) %876)
          to label %878 unwind label %884

878:                                              ; preds = %875
  store ptr %877, ptr %78, align 8, !tbaa !5
  br label %879

879:                                              ; preds = %910, %878
  %880 = load ptr, ptr %78, align 8, !tbaa !5
  %881 = load i8, ptr %77, align 1, !tbaa !9, !range !20, !noundef !21
  %882 = trunc i8 %881 to i1
  br i1 %882, label %888, label %883

883:                                              ; preds = %879
  store i32 72, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #0
  br label %912

884:                                              ; preds = %894, %875
  %885 = landingpad { ptr, i32 }
          cleanup
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %19, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %20, align 4
  br label %911

888:                                              ; preds = %879
  br label %889

889:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #0
  %890 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %890)
          to label %891 unwind label %895

891:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #0
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 1 dereferenceable(1) %81) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef %80)
          to label %892 unwind label %899

892:                                              ; preds = %891
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #0
  %893 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %893, ptr noundef @.str.5)
          to label %894 unwind label %904

894:                                              ; preds = %892
  invoke void @__cxa_throw(ptr %893, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %884

895:                                              ; preds = %889
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %19, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %20, align 4
  br label %903

899:                                              ; preds = %891
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %19, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #0
  br label %903

903:                                              ; preds = %899, %895
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #0
  br label %911

904:                                              ; preds = %892
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %19, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %20, align 4
  call void @__cxa_free_exception(ptr %893) #0
  br label %911

908:                                              ; No predecessors!
  br label %909

909:                                              ; preds = %908
  br label %910

910:                                              ; preds = %909
  store i8 0, ptr %77, align 1, !tbaa !9
  br label %879, !llvm.loop !37

911:                                              ; preds = %904, %903, %884
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #0
  br label %1473

912:                                              ; preds = %883
  br label %913

913:                                              ; preds = %912
  store i8 0, ptr %77, align 1, !tbaa !9
  br label %871, !llvm.loop !38

914:                                              ; preds = %874
  br label %1471

915:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #0
  store i8 1, ptr %82, align 1, !tbaa !9
  br label %916

916:                                              ; preds = %1055, %915
  %917 = load i8, ptr %82, align 1, !tbaa !9, !range !20, !noundef !21
  %918 = trunc i8 %917 to i1
  br i1 %918, label %920, label %919

919:                                              ; preds = %916
  store i32 77, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #0
  br label %1056

920:                                              ; preds = %916
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #0
  %921 = load ptr, ptr %50, align 8, !tbaa !5
  %922 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(488) %921)
          to label %923 unwind label %929

923:                                              ; preds = %920
  store ptr %922, ptr %83, align 8, !tbaa !5
  br label %924

924:                                              ; preds = %1052, %923
  %925 = load ptr, ptr %83, align 8, !tbaa !5
  %926 = load i8, ptr %82, align 1, !tbaa !9, !range !20, !noundef !21
  %927 = trunc i8 %926 to i1
  br i1 %927, label %933, label %928

928:                                              ; preds = %924
  store i32 80, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #0
  br label %1054

929:                                              ; preds = %1022, %991, %975, %960, %954, %948, %946, %944, %941, %938, %933, %920
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %19, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %20, align 4
  br label %1053

933:                                              ; preds = %924
  %934 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  %935 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %934)
          to label %936 unwind label %929

936:                                              ; preds = %933
  br i1 %935, label %954, label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  %939 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %940 unwind label %929

940:                                              ; preds = %938
  br i1 %939, label %941, label %951

941:                                              ; preds = %940
  %942 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %942, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %944 unwind label %929

944:                                              ; preds = %941
  %945 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %943, ptr noundef @.str.26)
          to label %946 unwind label %929

946:                                              ; preds = %944
  %947 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %945, ptr noundef @_ZSt3decRSt8ios_base)
          to label %948 unwind label %929

948:                                              ; preds = %946
  %949 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %947, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %950 unwind label %929

950:                                              ; preds = %948
  br label %951

951:                                              ; preds = %950, %940
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952
  br label %1051

954:                                              ; preds = %936
  %955 = load ptr, ptr %83, align 8, !tbaa !5
  %956 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %955, i32 0, i32 0
  %957 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %956, ptr noundef @.str.2)
          to label %958 unwind label %929

958:                                              ; preds = %954
  br i1 %957, label %959, label %1022

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  %961 = load ptr, ptr %11, align 8, !tbaa !5
  %962 = getelementptr inbounds %"class.AST::Crate", ptr %961, i32 0, i32 4
  %963 = load ptr, ptr %83, align 8, !tbaa !5
  %964 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %963, i32 0, i32 0
  %965 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %962, ptr noundef nonnull align 8 dereferenceable(8) %964)
          to label %966 unwind label %929

966:                                              ; preds = %960
  %967 = icmp ne i64 %965, 0
  br i1 %967, label %989, label %968

968:                                              ; preds = %966
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #0
  %969 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %969)
          to label %970 unwind label %976

970:                                              ; preds = %968
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #0
  %971 = getelementptr inbounds %class.anon.291, ptr %86, i32 0, i32 0
  %972 = load ptr, ptr %83, align 8, !tbaa !5
  store ptr %972, ptr %971, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(8) %86) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef %85)
          to label %973 unwind label %980

973:                                              ; preds = %970
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #0
  %974 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %974, ptr noundef @.str.5)
          to label %975 unwind label %985

975:                                              ; preds = %973
  invoke void @__cxa_throw(ptr %974, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %929

976:                                              ; preds = %968
  %977 = landingpad { ptr, i32 }
          cleanup
  %978 = extractvalue { ptr, i32 } %977, 0
  store ptr %978, ptr %19, align 8
  %979 = extractvalue { ptr, i32 } %977, 1
  store i32 %979, ptr %20, align 4
  br label %984

980:                                              ; preds = %970
  %981 = landingpad { ptr, i32 }
          cleanup
  %982 = extractvalue { ptr, i32 } %981, 0
  store ptr %982, ptr %19, align 8
  %983 = extractvalue { ptr, i32 } %981, 1
  store i32 %983, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #0
  br label %984

984:                                              ; preds = %980, %976
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #0
  br label %1053

985:                                              ; preds = %973
  %986 = landingpad { ptr, i32 }
          cleanup
  %987 = extractvalue { ptr, i32 } %986, 0
  store ptr %987, ptr %19, align 8
  %988 = extractvalue { ptr, i32 } %986, 1
  store i32 %988, ptr %20, align 4
  call void @__cxa_free_exception(ptr %974) #0
  br label %1053

989:                                              ; preds = %966
  br label %990

990:                                              ; preds = %989
  br label %991

991:                                              ; preds = %990
  %992 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  %993 = load ptr, ptr %83, align 8, !tbaa !5
  %994 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %993, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %994)
          to label %995 unwind label %929

995:                                              ; preds = %991
  call void @llvm.memset.p0.i64(ptr align 8 %89, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorI8RcStringSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #0
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef %88, ptr noundef %89)
          to label %996 unwind label %1008

996:                                              ; preds = %995
  %997 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Crate", ptr %91, i32 0, i32 0
  %998 = load ptr, ptr %11, align 8, !tbaa !5
  %999 = getelementptr inbounds %"class.AST::Crate", ptr %998, i32 0, i32 4
  %1000 = load ptr, ptr %83, align 8, !tbaa !5
  %1001 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %1000, i32 0, i32 0
  %1002 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %999, ptr noundef nonnull align 8 dereferenceable(8) %1001)
          to label %1003 unwind label %1012

1003:                                             ; preds = %996
  store ptr %1002, ptr %997, align 8, !tbaa !39
  %1004 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Crate", ptr %91, i32 0, i32 0
  %1005 = load ptr, ptr %1004, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %90, ptr %1005)
          to label %1006 unwind label %1012

1006:                                             ; preds = %1003
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %992, ptr noundef %87, ptr noundef %90)
          to label %1007 unwind label %1016

1007:                                             ; preds = %1006
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #0
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #0
  br label %1050

1008:                                             ; preds = %995
  %1009 = landingpad { ptr, i32 }
          cleanup
  %1010 = extractvalue { ptr, i32 } %1009, 0
  store ptr %1010, ptr %19, align 8
  %1011 = extractvalue { ptr, i32 } %1009, 1
  store i32 %1011, ptr %20, align 4
  br label %1021

1012:                                             ; preds = %1003, %996
  %1013 = landingpad { ptr, i32 }
          cleanup
  %1014 = extractvalue { ptr, i32 } %1013, 0
  store ptr %1014, ptr %19, align 8
  %1015 = extractvalue { ptr, i32 } %1013, 1
  store i32 %1015, ptr %20, align 4
  br label %1020

1016:                                             ; preds = %1006
  %1017 = landingpad { ptr, i32 }
          cleanup
  %1018 = extractvalue { ptr, i32 } %1017, 0
  store ptr %1018, ptr %19, align 8
  %1019 = extractvalue { ptr, i32 } %1017, 1
  store i32 %1019, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #0
  br label %1020

1020:                                             ; preds = %1016, %1012
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #0
  br label %1021

1021:                                             ; preds = %1020, %1008
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #0
  br label %1053

1022:                                             ; preds = %958
  %1023 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  %1024 = load ptr, ptr %83, align 8, !tbaa !5
  %1025 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %1024, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %1025)
          to label %1026 unwind label %929

1026:                                             ; preds = %1022
  call void @llvm.memset.p0.i64(ptr align 8 %94, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorI8RcStringSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #0
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef %93, ptr noundef %94)
          to label %1027 unwind label %1036

1027:                                             ; preds = %1026
  %1028 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %96, i32 0, i32 0
  %1029 = load ptr, ptr %11, align 8, !tbaa !5
  %1030 = getelementptr inbounds %"class.AST::Crate", ptr %1029, i32 0, i32 2
  store ptr %1030, ptr %1028, align 8, !tbaa !15
  %1031 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %96, i32 0, i32 1
  %1032 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1031, i32 0, i32 0
  store ptr null, ptr %1032, align 8, !tbaa !18
  %1033 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1031, i32 0, i32 1
  store ptr null, ptr %1033, align 8, !tbaa !19
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %95, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %96)
          to label %1034 unwind label %1040

1034:                                             ; preds = %1027
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1023, ptr noundef %92, ptr noundef %95)
          to label %1035 unwind label %1044

1035:                                             ; preds = %1034
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #0
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #0
  br label %1050

1036:                                             ; preds = %1026
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %19, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %20, align 4
  br label %1049

1040:                                             ; preds = %1027
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %19, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %20, align 4
  br label %1048

1044:                                             ; preds = %1034
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %19, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #0
  br label %1048

1048:                                             ; preds = %1044, %1040
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #0
  br label %1049

1049:                                             ; preds = %1048, %1036
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #0
  br label %1053

1050:                                             ; preds = %1035, %1007
  br label %1051

1051:                                             ; preds = %1050, %953
  br label %1052

1052:                                             ; preds = %1051
  store i8 0, ptr %82, align 1, !tbaa !9
  br label %924, !llvm.loop !41

1053:                                             ; preds = %1049, %1021, %985, %984, %929
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #0
  br label %1473

1054:                                             ; preds = %928
  br label %1055

1055:                                             ; preds = %1054
  store i8 0, ptr %82, align 1, !tbaa !9
  br label %916, !llvm.loop !42

1056:                                             ; preds = %919
  br label %1471

1057:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #0
  store i8 1, ptr %97, align 1, !tbaa !9
  br label %1058

1058:                                             ; preds = %1096, %1057
  %1059 = load i8, ptr %97, align 1, !tbaa !9, !range !20, !noundef !21
  %1060 = trunc i8 %1059 to i1
  br i1 %1060, label %1062, label %1061

1061:                                             ; preds = %1058
  store i32 87, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #0
  br label %1097

1062:                                             ; preds = %1058
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #0
  %1063 = load ptr, ptr %50, align 8, !tbaa !5
  %1064 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488) %1063)
          to label %1065 unwind label %1071

1065:                                             ; preds = %1062
  store ptr %1064, ptr %98, align 8, !tbaa !5
  br label %1066

1066:                                             ; preds = %1084, %1065
  %1067 = load ptr, ptr %98, align 8, !tbaa !5
  %1068 = load i8, ptr %97, align 1, !tbaa !9, !range !20, !noundef !21
  %1069 = trunc i8 %1068 to i1
  br i1 %1069, label %1075, label %1070

1070:                                             ; preds = %1066
  store i32 90, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #0
  br label %1095

1071:                                             ; preds = %1075, %1062
  %1072 = landingpad { ptr, i32 }
          cleanup
  %1073 = extractvalue { ptr, i32 } %1072, 0
  store ptr %1073, ptr %19, align 8
  %1074 = extractvalue { ptr, i32 } %1072, 1
  store i32 %1074, ptr %20, align 4
  br label %1094

1075:                                             ; preds = %1066
  %1076 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1077 unwind label %1071

1077:                                             ; preds = %1075
  %1078 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %101, i32 0, i32 0
  %1079 = load ptr, ptr %98, align 8, !tbaa !5
  store ptr %1079, ptr %1078, align 8, !tbaa !43
  %1080 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %101, i32 0, i32 0
  %1081 = load ptr, ptr %1080, align 8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %100, ptr %1081)
          to label %1082 unwind label %1085

1082:                                             ; preds = %1077
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1076, ptr noundef %99, ptr noundef %100)
          to label %1083 unwind label %1089

1083:                                             ; preds = %1082
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #0
  br label %1084

1084:                                             ; preds = %1083
  store i8 0, ptr %97, align 1, !tbaa !9
  br label %1066, !llvm.loop !45

1085:                                             ; preds = %1077
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %19, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %20, align 4
  br label %1093

1089:                                             ; preds = %1082
  %1090 = landingpad { ptr, i32 }
          cleanup
  %1091 = extractvalue { ptr, i32 } %1090, 0
  store ptr %1091, ptr %19, align 8
  %1092 = extractvalue { ptr, i32 } %1090, 1
  store i32 %1092, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #0
  br label %1093

1093:                                             ; preds = %1089, %1085
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #0
  br label %1094

1094:                                             ; preds = %1093, %1071
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #0
  br label %1473

1095:                                             ; preds = %1070
  br label %1096

1096:                                             ; preds = %1095
  store i8 0, ptr %97, align 1, !tbaa !9
  br label %1058, !llvm.loop !46

1097:                                             ; preds = %1061
  br label %1471

1098:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #0
  store i8 1, ptr %102, align 1, !tbaa !9
  br label %1099

1099:                                             ; preds = %1140, %1098
  %1100 = load i8, ptr %102, align 1, !tbaa !9, !range !20, !noundef !21
  %1101 = trunc i8 %1100 to i1
  br i1 %1101, label %1103, label %1102

1102:                                             ; preds = %1099
  store i32 93, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #0
  br label %1141

1103:                                             ; preds = %1099
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #0
  %1104 = load ptr, ptr %50, align 8, !tbaa !5
  %1105 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3AST4Item8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(488) %1104)
          to label %1106 unwind label %1112

1106:                                             ; preds = %1103
  store ptr %1105, ptr %103, align 8, !tbaa !5
  br label %1107

1107:                                             ; preds = %1128, %1106
  %1108 = load ptr, ptr %103, align 8, !tbaa !5
  %1109 = load i8, ptr %102, align 1, !tbaa !9, !range !20, !noundef !21
  %1110 = trunc i8 %1109 to i1
  br i1 %1110, label %1116, label %1111

1111:                                             ; preds = %1107
  store i32 96, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #0
  br label %1139

1112:                                             ; preds = %1116, %1103
  %1113 = landingpad { ptr, i32 }
          cleanup
  %1114 = extractvalue { ptr, i32 } %1113, 0
  store ptr %1114, ptr %19, align 8
  %1115 = extractvalue { ptr, i32 } %1113, 1
  store i32 %1115, ptr %20, align 4
  br label %1138

1116:                                             ; preds = %1107
  %1117 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1118 unwind label %1112

1118:                                             ; preds = %1116
  %1119 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %106, i32 0, i32 0
  %1120 = load ptr, ptr %103, align 8, !tbaa !5
  store ptr %1120, ptr %1119, align 8, !tbaa !47
  %1121 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %106, i32 0, i32 1
  store ptr null, ptr %1121, align 8, !tbaa !49
  %1122 = getelementptr inbounds { ptr, ptr }, ptr %106, i32 0, i32 0
  %1123 = load ptr, ptr %1122, align 8
  %1124 = getelementptr inbounds { ptr, ptr }, ptr %106, i32 0, i32 1
  %1125 = load ptr, ptr %1124, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %105, ptr %1123, ptr %1125)
          to label %1126 unwind label %1129

1126:                                             ; preds = %1118
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1117, ptr noundef %104, ptr noundef %105)
          to label %1127 unwind label %1133

1127:                                             ; preds = %1126
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #0
  br label %1128

1128:                                             ; preds = %1127
  store i8 0, ptr %102, align 1, !tbaa !9
  br label %1107, !llvm.loop !50

1129:                                             ; preds = %1118
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %19, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %20, align 4
  br label %1137

1133:                                             ; preds = %1126
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %19, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #0
  br label %1137

1137:                                             ; preds = %1133, %1129
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #0
  br label %1138

1138:                                             ; preds = %1137, %1112
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #0
  br label %1473

1139:                                             ; preds = %1111
  br label %1140

1140:                                             ; preds = %1139
  store i8 0, ptr %102, align 1, !tbaa !9
  br label %1099, !llvm.loop !51

1141:                                             ; preds = %1102
  br label %1471

1142:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #0
  store i8 1, ptr %107, align 1, !tbaa !9
  br label %1143

1143:                                             ; preds = %1184, %1142
  %1144 = load i8, ptr %107, align 1, !tbaa !9, !range !20, !noundef !21
  %1145 = trunc i8 %1144 to i1
  br i1 %1145, label %1147, label %1146

1146:                                             ; preds = %1143
  store i32 99, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #0
  br label %1185

1147:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #0
  %1148 = load ptr, ptr %50, align 8, !tbaa !5
  %1149 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZNK3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488) %1148)
          to label %1150 unwind label %1156

1150:                                             ; preds = %1147
  store ptr %1149, ptr %108, align 8, !tbaa !5
  br label %1151

1151:                                             ; preds = %1172, %1150
  %1152 = load ptr, ptr %108, align 8, !tbaa !5
  %1153 = load i8, ptr %107, align 1, !tbaa !9, !range !20, !noundef !21
  %1154 = trunc i8 %1153 to i1
  br i1 %1154, label %1160, label %1155

1155:                                             ; preds = %1151
  store i32 102, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #0
  br label %1183

1156:                                             ; preds = %1160, %1147
  %1157 = landingpad { ptr, i32 }
          cleanup
  %1158 = extractvalue { ptr, i32 } %1157, 0
  store ptr %1158, ptr %19, align 8
  %1159 = extractvalue { ptr, i32 } %1157, 1
  store i32 %1159, ptr %20, align 4
  br label %1182

1160:                                             ; preds = %1151
  %1161 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1162 unwind label %1156

1162:                                             ; preds = %1160
  %1163 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %111, i32 0, i32 0
  %1164 = load ptr, ptr %108, align 8, !tbaa !5
  store ptr %1164, ptr %1163, align 8, !tbaa !52
  %1165 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %111, i32 0, i32 1
  store ptr null, ptr %1165, align 8, !tbaa !54
  %1166 = getelementptr inbounds { ptr, ptr }, ptr %111, i32 0, i32 0
  %1167 = load ptr, ptr %1166, align 8
  %1168 = getelementptr inbounds { ptr, ptr }, ptr %111, i32 0, i32 1
  %1169 = load ptr, ptr %1168, align 8
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %110, ptr %1167, ptr %1169)
          to label %1170 unwind label %1173

1170:                                             ; preds = %1162
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1161, ptr noundef %109, ptr noundef %110)
          to label %1171 unwind label %1177

1171:                                             ; preds = %1170
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #0
  br label %1172

1172:                                             ; preds = %1171
  store i8 0, ptr %107, align 1, !tbaa !9
  br label %1151, !llvm.loop !55

1173:                                             ; preds = %1162
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %19, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %20, align 4
  br label %1181

1177:                                             ; preds = %1170
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %19, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #0
  br label %1181

1181:                                             ; preds = %1177, %1173
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #0
  br label %1182

1182:                                             ; preds = %1181, %1156
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #0
  br label %1473

1183:                                             ; preds = %1155
  br label %1184

1184:                                             ; preds = %1183
  store i8 0, ptr %107, align 1, !tbaa !9
  br label %1143, !llvm.loop !56

1185:                                             ; preds = %1146
  br label %1471

1186:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #0
  store i8 1, ptr %112, align 1, !tbaa !9
  br label %1187

1187:                                             ; preds = %1225, %1186
  %1188 = load i8, ptr %112, align 1, !tbaa !9, !range !20, !noundef !21
  %1189 = trunc i8 %1188 to i1
  br i1 %1189, label %1191, label %1190

1190:                                             ; preds = %1187
  store i32 105, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #0
  br label %1226

1191:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #0
  %1192 = load ptr, ptr %50, align 8, !tbaa !5
  %1193 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488) %1192)
          to label %1194 unwind label %1200

1194:                                             ; preds = %1191
  store ptr %1193, ptr %113, align 8, !tbaa !5
  br label %1195

1195:                                             ; preds = %1213, %1194
  %1196 = load ptr, ptr %113, align 8, !tbaa !5
  %1197 = load i8, ptr %112, align 1, !tbaa !9, !range !20, !noundef !21
  %1198 = trunc i8 %1197 to i1
  br i1 %1198, label %1204, label %1199

1199:                                             ; preds = %1195
  store i32 108, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #0
  br label %1224

1200:                                             ; preds = %1204, %1191
  %1201 = landingpad { ptr, i32 }
          cleanup
  %1202 = extractvalue { ptr, i32 } %1201, 0
  store ptr %1202, ptr %19, align 8
  %1203 = extractvalue { ptr, i32 } %1201, 1
  store i32 %1203, ptr %20, align 4
  br label %1223

1204:                                             ; preds = %1195
  %1205 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1206 unwind label %1200

1206:                                             ; preds = %1204
  %1207 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %116, i32 0, i32 0
  %1208 = load ptr, ptr %113, align 8, !tbaa !5
  store ptr %1208, ptr %1207, align 8, !tbaa !57
  %1209 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %116, i32 0, i32 0
  %1210 = load ptr, ptr %1209, align 8
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %115, ptr %1210)
          to label %1211 unwind label %1214

1211:                                             ; preds = %1206
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1205, ptr noundef %114, ptr noundef %115)
          to label %1212 unwind label %1218

1212:                                             ; preds = %1211
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #0
  br label %1213

1213:                                             ; preds = %1212
  store i8 0, ptr %112, align 1, !tbaa !9
  br label %1195, !llvm.loop !59

1214:                                             ; preds = %1206
  %1215 = landingpad { ptr, i32 }
          cleanup
  %1216 = extractvalue { ptr, i32 } %1215, 0
  store ptr %1216, ptr %19, align 8
  %1217 = extractvalue { ptr, i32 } %1215, 1
  store i32 %1217, ptr %20, align 4
  br label %1222

1218:                                             ; preds = %1211
  %1219 = landingpad { ptr, i32 }
          cleanup
  %1220 = extractvalue { ptr, i32 } %1219, 0
  store ptr %1220, ptr %19, align 8
  %1221 = extractvalue { ptr, i32 } %1219, 1
  store i32 %1221, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #0
  br label %1222

1222:                                             ; preds = %1218, %1214
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #0
  br label %1223

1223:                                             ; preds = %1222, %1200
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #0
  br label %1473

1224:                                             ; preds = %1199
  br label %1225

1225:                                             ; preds = %1224
  store i8 0, ptr %112, align 1, !tbaa !9
  br label %1187, !llvm.loop !60

1226:                                             ; preds = %1190
  br label %1471

1227:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %117) #0
  store i8 1, ptr %117, align 1, !tbaa !9
  br label %1228

1228:                                             ; preds = %1269, %1227
  %1229 = load i8, ptr %117, align 1, !tbaa !9, !range !20, !noundef !21
  %1230 = trunc i8 %1229 to i1
  br i1 %1230, label %1232, label %1231

1231:                                             ; preds = %1228
  store i32 111, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #0
  br label %1270

1232:                                             ; preds = %1228
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #0
  %1233 = load ptr, ptr %50, align 8, !tbaa !5
  %1234 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488) %1233)
          to label %1235 unwind label %1241

1235:                                             ; preds = %1232
  store ptr %1234, ptr %118, align 8, !tbaa !5
  br label %1236

1236:                                             ; preds = %1257, %1235
  %1237 = load ptr, ptr %118, align 8, !tbaa !5
  %1238 = load i8, ptr %117, align 1, !tbaa !9, !range !20, !noundef !21
  %1239 = trunc i8 %1238 to i1
  br i1 %1239, label %1245, label %1240

1240:                                             ; preds = %1236
  store i32 114, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #0
  br label %1268

1241:                                             ; preds = %1245, %1232
  %1242 = landingpad { ptr, i32 }
          cleanup
  %1243 = extractvalue { ptr, i32 } %1242, 0
  store ptr %1243, ptr %19, align 8
  %1244 = extractvalue { ptr, i32 } %1242, 1
  store i32 %1244, ptr %20, align 4
  br label %1267

1245:                                             ; preds = %1236
  %1246 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1247 unwind label %1241

1247:                                             ; preds = %1245
  %1248 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %121, i32 0, i32 0
  %1249 = load ptr, ptr %118, align 8, !tbaa !5
  store ptr %1249, ptr %1248, align 8, !tbaa !61
  %1250 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %121, i32 0, i32 1
  store ptr null, ptr %1250, align 8, !tbaa !63
  %1251 = getelementptr inbounds { ptr, ptr }, ptr %121, i32 0, i32 0
  %1252 = load ptr, ptr %1251, align 8
  %1253 = getelementptr inbounds { ptr, ptr }, ptr %121, i32 0, i32 1
  %1254 = load ptr, ptr %1253, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %120, ptr %1252, ptr %1254)
          to label %1255 unwind label %1258

1255:                                             ; preds = %1247
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1246, ptr noundef %119, ptr noundef %120)
          to label %1256 unwind label %1262

1256:                                             ; preds = %1255
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #0
  br label %1257

1257:                                             ; preds = %1256
  store i8 0, ptr %117, align 1, !tbaa !9
  br label %1236, !llvm.loop !64

1258:                                             ; preds = %1247
  %1259 = landingpad { ptr, i32 }
          cleanup
  %1260 = extractvalue { ptr, i32 } %1259, 0
  store ptr %1260, ptr %19, align 8
  %1261 = extractvalue { ptr, i32 } %1259, 1
  store i32 %1261, ptr %20, align 4
  br label %1266

1262:                                             ; preds = %1255
  %1263 = landingpad { ptr, i32 }
          cleanup
  %1264 = extractvalue { ptr, i32 } %1263, 0
  store ptr %1264, ptr %19, align 8
  %1265 = extractvalue { ptr, i32 } %1263, 1
  store i32 %1265, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #0
  br label %1266

1266:                                             ; preds = %1262, %1258
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #0
  br label %1267

1267:                                             ; preds = %1266, %1241
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #0
  br label %1473

1268:                                             ; preds = %1240
  br label %1269

1269:                                             ; preds = %1268
  store i8 0, ptr %117, align 1, !tbaa !9
  br label %1228, !llvm.loop !65

1270:                                             ; preds = %1231
  br label %1471

1271:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %122) #0
  store i8 1, ptr %122, align 1, !tbaa !9
  br label %1272

1272:                                             ; preds = %1339, %1271
  %1273 = load i8, ptr %122, align 1, !tbaa !9, !range !20, !noundef !21
  %1274 = trunc i8 %1273 to i1
  br i1 %1274, label %1276, label %1275

1275:                                             ; preds = %1272
  store i32 117, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %122) #0
  br label %1340

1276:                                             ; preds = %1272
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #0
  %1277 = load ptr, ptr %50, align 8, !tbaa !5
  %1278 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZNK3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488) %1277)
          to label %1279 unwind label %1285

1279:                                             ; preds = %1276
  store ptr %1278, ptr %123, align 8, !tbaa !5
  br label %1280

1280:                                             ; preds = %1327, %1279
  %1281 = load ptr, ptr %123, align 8, !tbaa !5
  %1282 = load i8, ptr %122, align 1, !tbaa !9, !range !20, !noundef !21
  %1283 = trunc i8 %1282 to i1
  br i1 %1283, label %1289, label %1284

1284:                                             ; preds = %1280
  store i32 120, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #0
  br label %1338

1285:                                             ; preds = %1315, %1294, %1289, %1276
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %19, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %20, align 4
  br label %1337

1289:                                             ; preds = %1280
  %1290 = load ptr, ptr %123, align 8, !tbaa !5
  %1291 = getelementptr inbounds %"class.AST::Struct", ptr %1290, i32 0, i32 1
  %1292 = invoke noundef zeroext i1 @_ZNK3AST10StructData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %1291)
          to label %1293 unwind label %1285

1293:                                             ; preds = %1289
  br i1 %1292, label %1315, label %1294

1294:                                             ; preds = %1293
  %1295 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1296 unwind label %1285

1296:                                             ; preds = %1294
  %1297 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %126, i32 0, i32 0
  %1298 = load ptr, ptr %123, align 8, !tbaa !5
  store ptr %1298, ptr %1297, align 8, !tbaa !66
  %1299 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %126, i32 0, i32 1
  store ptr null, ptr %1299, align 8, !tbaa !68
  %1300 = getelementptr inbounds { ptr, ptr }, ptr %126, i32 0, i32 0
  %1301 = load ptr, ptr %1300, align 8
  %1302 = getelementptr inbounds { ptr, ptr }, ptr %126, i32 0, i32 1
  %1303 = load ptr, ptr %1302, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %125, ptr %1301, ptr %1303)
          to label %1304 unwind label %1306

1304:                                             ; preds = %1296
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1295, ptr noundef %124, ptr noundef %125)
          to label %1305 unwind label %1310

1305:                                             ; preds = %1304
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #0
  br label %1315

1306:                                             ; preds = %1296
  %1307 = landingpad { ptr, i32 }
          cleanup
  %1308 = extractvalue { ptr, i32 } %1307, 0
  store ptr %1308, ptr %19, align 8
  %1309 = extractvalue { ptr, i32 } %1307, 1
  store i32 %1309, ptr %20, align 4
  br label %1314

1310:                                             ; preds = %1304
  %1311 = landingpad { ptr, i32 }
          cleanup
  %1312 = extractvalue { ptr, i32 } %1311, 0
  store ptr %1312, ptr %19, align 8
  %1313 = extractvalue { ptr, i32 } %1311, 1
  store i32 %1313, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #0
  br label %1314

1314:                                             ; preds = %1310, %1306
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #0
  br label %1337

1315:                                             ; preds = %1305, %1293
  %1316 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1317 unwind label %1285

1317:                                             ; preds = %1315
  %1318 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %129, i32 0, i32 0
  %1319 = load ptr, ptr %123, align 8, !tbaa !5
  store ptr %1319, ptr %1318, align 8, !tbaa !69
  %1320 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %129, i32 0, i32 1
  store ptr null, ptr %1320, align 8, !tbaa !71
  %1321 = getelementptr inbounds { ptr, ptr }, ptr %129, i32 0, i32 0
  %1322 = load ptr, ptr %1321, align 8
  %1323 = getelementptr inbounds { ptr, ptr }, ptr %129, i32 0, i32 1
  %1324 = load ptr, ptr %1323, align 8
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %128, ptr %1322, ptr %1324)
          to label %1325 unwind label %1328

1325:                                             ; preds = %1317
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1316, ptr noundef %127, ptr noundef %128)
          to label %1326 unwind label %1332

1326:                                             ; preds = %1325
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #0
  br label %1327

1327:                                             ; preds = %1326
  store i8 0, ptr %122, align 1, !tbaa !9
  br label %1280, !llvm.loop !72

1328:                                             ; preds = %1317
  %1329 = landingpad { ptr, i32 }
          cleanup
  %1330 = extractvalue { ptr, i32 } %1329, 0
  store ptr %1330, ptr %19, align 8
  %1331 = extractvalue { ptr, i32 } %1329, 1
  store i32 %1331, ptr %20, align 4
  br label %1336

1332:                                             ; preds = %1325
  %1333 = landingpad { ptr, i32 }
          cleanup
  %1334 = extractvalue { ptr, i32 } %1333, 0
  store ptr %1334, ptr %19, align 8
  %1335 = extractvalue { ptr, i32 } %1333, 1
  store i32 %1335, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #0
  br label %1336

1336:                                             ; preds = %1332, %1328
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #0
  br label %1337

1337:                                             ; preds = %1336, %1314, %1285
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %122) #0
  br label %1473

1338:                                             ; preds = %1284
  br label %1339

1339:                                             ; preds = %1338
  store i8 0, ptr %122, align 1, !tbaa !9
  br label %1272, !llvm.loop !73

1340:                                             ; preds = %1275
  br label %1471

1341:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %130) #0
  store i8 1, ptr %130, align 1, !tbaa !9
  br label %1342

1342:                                             ; preds = %1383, %1341
  %1343 = load i8, ptr %130, align 1, !tbaa !9, !range !20, !noundef !21
  %1344 = trunc i8 %1343 to i1
  br i1 %1344, label %1346, label %1345

1345:                                             ; preds = %1342
  store i32 123, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #0
  br label %1384

1346:                                             ; preds = %1342
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #0
  %1347 = load ptr, ptr %50, align 8, !tbaa !5
  %1348 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488) %1347)
          to label %1349 unwind label %1355

1349:                                             ; preds = %1346
  store ptr %1348, ptr %131, align 8, !tbaa !5
  br label %1350

1350:                                             ; preds = %1371, %1349
  %1351 = load ptr, ptr %131, align 8, !tbaa !5
  %1352 = load i8, ptr %130, align 1, !tbaa !9, !range !20, !noundef !21
  %1353 = trunc i8 %1352 to i1
  br i1 %1353, label %1359, label %1354

1354:                                             ; preds = %1350
  store i32 126, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #0
  br label %1382

1355:                                             ; preds = %1359, %1346
  %1356 = landingpad { ptr, i32 }
          cleanup
  %1357 = extractvalue { ptr, i32 } %1356, 0
  store ptr %1357, ptr %19, align 8
  %1358 = extractvalue { ptr, i32 } %1356, 1
  store i32 %1358, ptr %20, align 4
  br label %1381

1359:                                             ; preds = %1350
  %1360 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1361 unwind label %1355

1361:                                             ; preds = %1359
  %1362 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %134, i32 0, i32 0
  %1363 = load ptr, ptr %131, align 8, !tbaa !5
  store ptr %1363, ptr %1362, align 8, !tbaa !74
  %1364 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %134, i32 0, i32 1
  store ptr null, ptr %1364, align 8, !tbaa !76
  %1365 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 0
  %1366 = load ptr, ptr %1365, align 8
  %1367 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 1
  %1368 = load ptr, ptr %1367, align 8
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %133, ptr %1366, ptr %1368)
          to label %1369 unwind label %1372

1369:                                             ; preds = %1361
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1360, ptr noundef %132, ptr noundef %133)
          to label %1370 unwind label %1376

1370:                                             ; preds = %1369
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #0
  br label %1371

1371:                                             ; preds = %1370
  store i8 0, ptr %130, align 1, !tbaa !9
  br label %1350, !llvm.loop !77

1372:                                             ; preds = %1361
  %1373 = landingpad { ptr, i32 }
          cleanup
  %1374 = extractvalue { ptr, i32 } %1373, 0
  store ptr %1374, ptr %19, align 8
  %1375 = extractvalue { ptr, i32 } %1373, 1
  store i32 %1375, ptr %20, align 4
  br label %1380

1376:                                             ; preds = %1369
  %1377 = landingpad { ptr, i32 }
          cleanup
  %1378 = extractvalue { ptr, i32 } %1377, 0
  store ptr %1378, ptr %19, align 8
  %1379 = extractvalue { ptr, i32 } %1377, 1
  store i32 %1379, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #0
  br label %1380

1380:                                             ; preds = %1376, %1372
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #0
  br label %1381

1381:                                             ; preds = %1380, %1355
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #0
  br label %1473

1382:                                             ; preds = %1354
  br label %1383

1383:                                             ; preds = %1382
  store i8 0, ptr %130, align 1, !tbaa !9
  br label %1342, !llvm.loop !78

1384:                                             ; preds = %1345
  br label %1471

1385:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %135) #0
  store i8 1, ptr %135, align 1, !tbaa !9
  br label %1386

1386:                                             ; preds = %1427, %1385
  %1387 = load i8, ptr %135, align 1, !tbaa !9, !range !20, !noundef !21
  %1388 = trunc i8 %1387 to i1
  br i1 %1388, label %1390, label %1389

1389:                                             ; preds = %1386
  store i32 129, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #0
  br label %1428

1390:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #0
  %1391 = load ptr, ptr %50, align 8, !tbaa !5
  %1392 = invoke noundef nonnull align 8 dereferenceable(76) ptr @_ZNK3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488) %1391)
          to label %1393 unwind label %1399

1393:                                             ; preds = %1390
  store ptr %1392, ptr %136, align 8, !tbaa !5
  br label %1394

1394:                                             ; preds = %1415, %1393
  %1395 = load ptr, ptr %136, align 8, !tbaa !5
  %1396 = load i8, ptr %135, align 1, !tbaa !9, !range !20, !noundef !21
  %1397 = trunc i8 %1396 to i1
  br i1 %1397, label %1403, label %1398

1398:                                             ; preds = %1394
  store i32 132, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #0
  br label %1426

1399:                                             ; preds = %1403, %1390
  %1400 = landingpad { ptr, i32 }
          cleanup
  %1401 = extractvalue { ptr, i32 } %1400, 0
  store ptr %1401, ptr %19, align 8
  %1402 = extractvalue { ptr, i32 } %1400, 1
  store i32 %1402, ptr %20, align 4
  br label %1425

1403:                                             ; preds = %1394
  %1404 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1405 unwind label %1399

1405:                                             ; preds = %1403
  %1406 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %139, i32 0, i32 0
  %1407 = load ptr, ptr %136, align 8, !tbaa !5
  store ptr %1407, ptr %1406, align 8, !tbaa !79
  %1408 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %139, i32 0, i32 1
  store ptr null, ptr %1408, align 8, !tbaa !81
  %1409 = getelementptr inbounds { ptr, ptr }, ptr %139, i32 0, i32 0
  %1410 = load ptr, ptr %1409, align 8
  %1411 = getelementptr inbounds { ptr, ptr }, ptr %139, i32 0, i32 1
  %1412 = load ptr, ptr %1411, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %138, ptr %1410, ptr %1412)
          to label %1413 unwind label %1416

1413:                                             ; preds = %1405
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1404, ptr noundef %137, ptr noundef %138)
          to label %1414 unwind label %1420

1414:                                             ; preds = %1413
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #0
  br label %1415

1415:                                             ; preds = %1414
  store i8 0, ptr %135, align 1, !tbaa !9
  br label %1394, !llvm.loop !82

1416:                                             ; preds = %1405
  %1417 = landingpad { ptr, i32 }
          cleanup
  %1418 = extractvalue { ptr, i32 } %1417, 0
  store ptr %1418, ptr %19, align 8
  %1419 = extractvalue { ptr, i32 } %1417, 1
  store i32 %1419, ptr %20, align 4
  br label %1424

1420:                                             ; preds = %1413
  %1421 = landingpad { ptr, i32 }
          cleanup
  %1422 = extractvalue { ptr, i32 } %1421, 0
  store ptr %1422, ptr %19, align 8
  %1423 = extractvalue { ptr, i32 } %1421, 1
  store i32 %1423, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #0
  br label %1424

1424:                                             ; preds = %1420, %1416
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #0
  br label %1425

1425:                                             ; preds = %1424, %1399
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #0
  br label %1473

1426:                                             ; preds = %1398
  br label %1427

1427:                                             ; preds = %1426
  store i8 0, ptr %135, align 1, !tbaa !9
  br label %1386, !llvm.loop !83

1428:                                             ; preds = %1389
  br label %1471

1429:                                             ; preds = %615
  call void @llvm.lifetime.start.p0(i64 1, ptr %140) #0
  store i8 1, ptr %140, align 1, !tbaa !9
  br label %1430

1430:                                             ; preds = %1469, %1429
  %1431 = load i8, ptr %140, align 1, !tbaa !9, !range !20, !noundef !21
  %1432 = trunc i8 %1431 to i1
  br i1 %1432, label %1434, label %1433

1433:                                             ; preds = %1430
  store i32 135, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #0
  br label %1470

1434:                                             ; preds = %1430
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #0
  %1435 = load ptr, ptr %50, align 8, !tbaa !5
  %1436 = invoke noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %1435)
          to label %1437 unwind label %1443

1437:                                             ; preds = %1434
  store ptr %1436, ptr %141, align 8, !tbaa !5
  br label %1438

1438:                                             ; preds = %1457, %1437
  %1439 = load ptr, ptr %141, align 8, !tbaa !5
  %1440 = load i8, ptr %140, align 1, !tbaa !9, !range !20, !noundef !21
  %1441 = trunc i8 %1440 to i1
  br i1 %1441, label %1447, label %1442

1442:                                             ; preds = %1438
  store i32 138, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #0
  br label %1468

1443:                                             ; preds = %1447, %1434
  %1444 = landingpad { ptr, i32 }
          cleanup
  %1445 = extractvalue { ptr, i32 } %1444, 0
  store ptr %1445, ptr %19, align 8
  %1446 = extractvalue { ptr, i32 } %1444, 1
  store i32 %1446, ptr %20, align 4
  br label %1467

1447:                                             ; preds = %1438
  %1448 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %1449 unwind label %1443

1449:                                             ; preds = %1447
  %1450 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %144, i32 0, i32 0
  %1451 = load ptr, ptr %141, align 8, !tbaa !5
  store ptr %1451, ptr %1450, align 8, !tbaa !15
  %1452 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %144, i32 0, i32 1
  %1453 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1452, i32 0, i32 0
  store ptr null, ptr %1453, align 8, !tbaa !18
  %1454 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1452, i32 0, i32 1
  store ptr null, ptr %1454, align 8, !tbaa !19
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %143, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %144)
          to label %1455 unwind label %1458

1455:                                             ; preds = %1449
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1448, ptr noundef %142, ptr noundef %143)
          to label %1456 unwind label %1462

1456:                                             ; preds = %1455
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #0
  br label %1457

1457:                                             ; preds = %1456
  store i8 0, ptr %140, align 1, !tbaa !9
  br label %1438, !llvm.loop !84

1458:                                             ; preds = %1449
  %1459 = landingpad { ptr, i32 }
          cleanup
  %1460 = extractvalue { ptr, i32 } %1459, 0
  store ptr %1460, ptr %19, align 8
  %1461 = extractvalue { ptr, i32 } %1459, 1
  store i32 %1461, ptr %20, align 4
  br label %1466

1462:                                             ; preds = %1455
  %1463 = landingpad { ptr, i32 }
          cleanup
  %1464 = extractvalue { ptr, i32 } %1463, 0
  store ptr %1464, ptr %19, align 8
  %1465 = extractvalue { ptr, i32 } %1463, 1
  store i32 %1465, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #0
  br label %1466

1466:                                             ; preds = %1462, %1458
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #0
  br label %1467

1467:                                             ; preds = %1466, %1443
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #0
  br label %1473

1468:                                             ; preds = %1442
  br label %1469

1469:                                             ; preds = %1468
  store i8 0, ptr %140, align 1, !tbaa !9
  br label %1430, !llvm.loop !85

1470:                                             ; preds = %1433
  br label %1471

1471:                                             ; preds = %1470, %1428, %1384, %1340, %1270, %1226, %1185, %1141, %1097, %1056, %914, %869, %824, %779, %756, %733, %688, %643, %615
  br label %1472

1472:                                             ; preds = %1471
  store i8 0, ptr %49, align 1, !tbaa !9
  br label %608, !llvm.loop !86

1473:                                             ; preds = %1467, %1425, %1381, %1337, %1267, %1223, %1182, %1138, %1094, %1053, %911, %866, %821, %771, %748, %730, %685, %635, %616
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #0
  br label %1477

1474:                                             ; preds = %611
  br label %1475

1475:                                             ; preds = %1474
  store i8 0, ptr %49, align 1, !tbaa !9
  br label %601, !llvm.loop !87

1476:                                             ; preds = %604
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #0
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #0
  br label %1479

1477:                                             ; preds = %1473, %594
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #0
  br label %1478

1478:                                             ; preds = %1477, %590, %586
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #0
  br label %1488

1479:                                             ; preds = %1476, %558
  store i32 0, ptr %28, align 4
  br label %1480

1480:                                             ; preds = %1479, %548
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #0
  %1481 = load i32, ptr %28, align 4
  switch i32 %1481, label %1483 [
    i32 0, label %1482
  ]

1482:                                             ; preds = %1480
  store i32 0, ptr %28, align 4
  br label %1483

1483:                                             ; preds = %1482, %1480
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #0
  %1484 = load i32, ptr %28, align 4
  switch i32 %1484, label %3448 [
    i32 0, label %1485
    i32 9, label %1486
  ]

1485:                                             ; preds = %1483
  br label %1486

1486:                                             ; preds = %1485, %1483
  %1487 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #0
  br label %537

1488:                                             ; preds = %1478, %549
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #0
  br label %3438

1489:                                             ; preds = %539
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #0
  %1490 = load ptr, ptr %13, align 8, !tbaa !5
  %1491 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %1490)
          to label %1492 unwind label %1502

1492:                                             ; preds = %1489
  store ptr %1491, ptr %145, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #0
  %1493 = load ptr, ptr %145, align 8, !tbaa !5
  %1494 = call ptr @_ZNKSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1493) #0
  %1495 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.292", ptr %146, i32 0, i32 0
  store ptr %1494, ptr %1495, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #0
  %1496 = load ptr, ptr %145, align 8, !tbaa !5
  %1497 = call ptr @_ZNKSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1496) #0
  %1498 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.292", ptr %147, i32 0, i32 0
  store ptr %1497, ptr %1498, align 8
  br label %1499

1499:                                             ; preds = %1576, %1492
  %1500 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %147) #0
  br i1 %1500, label %1506, label %1501

1501:                                             ; preds = %1499
  store i32 141, ptr %28, align 4
  br label %1579

1502:                                             ; preds = %1489
  %1503 = landingpad { ptr, i32 }
          cleanup
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %19, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %20, align 4
  br label %1580

1506:                                             ; preds = %1499
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #0
  %1507 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %146) #0
  store ptr %1507, ptr %148, align 8, !tbaa !5
  %1508 = load ptr, ptr %148, align 8, !tbaa !5
  %1509 = getelementptr inbounds %"struct.AST::Named.293", ptr %1508, i32 0, i32 3
  %1510 = load ptr, ptr %14, align 8, !tbaa !5
  %1511 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1509, ptr noundef nonnull align 8 dereferenceable(8) %1510)
          to label %1512 unwind label %1551

1512:                                             ; preds = %1506
  br i1 %1511, label %1513, label %1572

1513:                                             ; preds = %1512
  %1514 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %1515 = load ptr, ptr %13, align 8, !tbaa !5
  %1516 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1515)
          to label %1517 unwind label %1551

1517:                                             ; preds = %1513
  %1518 = load ptr, ptr %148, align 8, !tbaa !5
  %1519 = getelementptr inbounds %"struct.AST::Named.293", ptr %1518, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull align 8 dereferenceable(8) %1519)
          to label %1520 unwind label %1551

1520:                                             ; preds = %1517
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %149, ptr noundef nonnull align 8 dereferenceable(32) %1516, ptr noundef %150)
          to label %1521 unwind label %1555

1521:                                             ; preds = %1520
  %1522 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %152, i32 0, i32 0
  store ptr null, ptr %1522, align 8, !tbaa !88
  %1523 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %152, i32 0, i32 1
  %1524 = load ptr, ptr %148, align 8, !tbaa !5
  %1525 = getelementptr inbounds %"struct.AST::Named.293", ptr %1524, i32 0, i32 4
  %1526 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1525)
          to label %1527 unwind label %1559

1527:                                             ; preds = %1521
  store ptr %1526, ptr %1523, align 8, !tbaa !90
  %1528 = getelementptr inbounds { ptr, ptr }, ptr %152, i32 0, i32 0
  %1529 = load ptr, ptr %1528, align 8
  %1530 = getelementptr inbounds { ptr, ptr }, ptr %152, i32 0, i32 1
  %1531 = load ptr, ptr %1530, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %151, ptr %1529, ptr %1531)
          to label %1532 unwind label %1559

1532:                                             ; preds = %1527
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %1514, ptr noundef %149, ptr noundef %151)
          to label %1533 unwind label %1563

1533:                                             ; preds = %1532
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %151) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #0
  br label %1534

1534:                                             ; preds = %1533
  %1535 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1536 unwind label %1551

1536:                                             ; preds = %1534
  br i1 %1535, label %1537, label %1569

1537:                                             ; preds = %1536
  %1538 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %1539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1538, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %1540 unwind label %1551

1540:                                             ; preds = %1537
  %1541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1539, ptr noundef @.str.27)
          to label %1542 unwind label %1551

1542:                                             ; preds = %1540
  %1543 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %1544 = getelementptr inbounds %"struct.AST::PathBinding.24", ptr %1543, i32 0, i32 0
  %1545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %1541, ptr noundef nonnull align 8 dereferenceable(32) %1544)
          to label %1546 unwind label %1551

1546:                                             ; preds = %1542
  %1547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1545, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1548 unwind label %1551

1548:                                             ; preds = %1546
  %1549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1547, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1550 unwind label %1551

1550:                                             ; preds = %1548
  br label %1569

1551:                                             ; preds = %1548, %1546, %1542, %1540, %1537, %1534, %1517, %1513, %1506
  %1552 = landingpad { ptr, i32 }
          cleanup
  %1553 = extractvalue { ptr, i32 } %1552, 0
  store ptr %1553, ptr %19, align 8
  %1554 = extractvalue { ptr, i32 } %1552, 1
  store i32 %1554, ptr %20, align 4
  br label %1578

1555:                                             ; preds = %1520
  %1556 = landingpad { ptr, i32 }
          cleanup
  %1557 = extractvalue { ptr, i32 } %1556, 0
  store ptr %1557, ptr %19, align 8
  %1558 = extractvalue { ptr, i32 } %1556, 1
  store i32 %1558, ptr %20, align 4
  br label %1568

1559:                                             ; preds = %1527, %1521
  %1560 = landingpad { ptr, i32 }
          cleanup
  %1561 = extractvalue { ptr, i32 } %1560, 0
  store ptr %1561, ptr %19, align 8
  %1562 = extractvalue { ptr, i32 } %1560, 1
  store i32 %1562, ptr %20, align 4
  br label %1567

1563:                                             ; preds = %1532
  %1564 = landingpad { ptr, i32 }
          cleanup
  %1565 = extractvalue { ptr, i32 } %1564, 0
  store ptr %1565, ptr %19, align 8
  %1566 = extractvalue { ptr, i32 } %1564, 1
  store i32 %1566, ptr %20, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %151) #0
  br label %1567

1567:                                             ; preds = %1563, %1559
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #0
  br label %1568

1568:                                             ; preds = %1567, %1555
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #0
  br label %1578

1569:                                             ; preds = %1550, %1536
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

1571:                                             ; preds = %1570
  store i32 141, ptr %28, align 4
  br label %1573

1572:                                             ; preds = %1512
  store i32 0, ptr %28, align 4
  br label %1573

1573:                                             ; preds = %1572, %1571
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #0
  %1574 = load i32, ptr %28, align 4
  switch i32 %1574, label %1579 [
    i32 0, label %1575
  ]

1575:                                             ; preds = %1573
  br label %1576

1576:                                             ; preds = %1575
  %1577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %146) #0
  br label %1499

1578:                                             ; preds = %1568, %1551
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #0
  br label %1580

1579:                                             ; preds = %1573, %1501
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #0
  br label %1581

1580:                                             ; preds = %1578, %1502
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #0
  br label %3438

1581:                                             ; preds = %1579
  %1582 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %1583 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %1582)
          to label %1584 unwind label %426

1584:                                             ; preds = %1581
  br i1 %1583, label %1585, label %1987

1585:                                             ; preds = %1584
  call void @llvm.lifetime.start.p0(i64 24, ptr %153) #0
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %153) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #0
  %1586 = load ptr, ptr %11, align 8, !tbaa !5
  %1587 = invoke noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST5Crate11root_moduleEv(ptr noundef nonnull align 8 dereferenceable(1112) %1586)
          to label %1588 unwind label %1599

1588:                                             ; preds = %1585
  store ptr %1587, ptr %154, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 8 dereferenceable(8) %154)
          to label %1589 unwind label %1599

1589:                                             ; preds = %1588
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #0
  store i64 0, ptr %155, align 8, !tbaa !91
  br label %1590

1590:                                             ; preds = %1755, %1589
  %1591 = load i64, ptr %155, align 8, !tbaa !91
  %1592 = load ptr, ptr %13, align 8, !tbaa !5
  %1593 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1592)
          to label %1594 unwind label %1603

1594:                                             ; preds = %1590
  %1595 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1593, i32 0, i32 1
  %1596 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1595) #0
  %1597 = icmp ult i64 %1591, %1596
  br i1 %1597, label %1607, label %1598

1598:                                             ; preds = %1594
  store i32 145, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #0
  br label %1761

1599:                                             ; preds = %1588, %1585
  %1600 = landingpad { ptr, i32 }
          cleanup
  %1601 = extractvalue { ptr, i32 } %1600, 0
  store ptr %1601, ptr %19, align 8
  %1602 = extractvalue { ptr, i32 } %1600, 1
  store i32 %1602, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #0
  br label %1986

1603:                                             ; preds = %1590
  %1604 = landingpad { ptr, i32 }
          cleanup
  %1605 = extractvalue { ptr, i32 } %1604, 0
  store ptr %1605, ptr %19, align 8
  %1606 = extractvalue { ptr, i32 } %1604, 1
  store i32 %1606, ptr %20, align 4
  br label %1760

1607:                                             ; preds = %1594
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #0
  %1608 = load ptr, ptr %13, align 8, !tbaa !5
  %1609 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1608)
          to label %1610 unwind label %1635

1610:                                             ; preds = %1607
  %1611 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1609, i32 0, i32 1
  %1612 = load i64, ptr %155, align 8, !tbaa !91
  %1613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1611, i64 noundef %1612) #0
  store ptr %1613, ptr %156, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #0
  store ptr null, ptr %157, align 8, !tbaa !5
  %1614 = load ptr, ptr %156, align 8, !tbaa !5
  %1615 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %1614)
          to label %1616 unwind label %1639

1616:                                             ; preds = %1610
  %1617 = getelementptr inbounds i8, ptr %1615, i64 0
  %1618 = load i8, ptr %1617, align 1, !tbaa !14
  %1619 = sext i8 %1618 to i32
  %1620 = icmp eq i32 %1619, 35
  br i1 %1620, label %1621, label %1677

1621:                                             ; preds = %1616
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #0
  %1622 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #0
  %1623 = load ptr, ptr %1622, align 8, !tbaa !5
  %1624 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %1623)
          to label %1625 unwind label %1643

1625:                                             ; preds = %1621
  store ptr %1624, ptr %158, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #0
  %1626 = load ptr, ptr %158, align 8, !tbaa !5
  %1627 = call ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1626) #0
  %1628 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.299", ptr %159, i32 0, i32 0
  store ptr %1627, ptr %1628, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #0
  %1629 = load ptr, ptr %158, align 8, !tbaa !5
  %1630 = call ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1629) #0
  %1631 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.299", ptr %160, i32 0, i32 0
  store ptr %1630, ptr %1631, align 8
  br label %1632

1632:                                             ; preds = %1672, %1625
  %1633 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(8) %160) #0
  br i1 %1633, label %1647, label %1634

1634:                                             ; preds = %1632
  store i32 148, ptr %28, align 4
  br label %1674

1635:                                             ; preds = %1607
  %1636 = landingpad { ptr, i32 }
          cleanup
  %1637 = extractvalue { ptr, i32 } %1636, 0
  store ptr %1637, ptr %19, align 8
  %1638 = extractvalue { ptr, i32 } %1636, 1
  store i32 %1638, ptr %20, align 4
  br label %1759

1639:                                             ; preds = %1753, %1737, %1610
  %1640 = landingpad { ptr, i32 }
          cleanup
  %1641 = extractvalue { ptr, i32 } %1640, 0
  store ptr %1641, ptr %19, align 8
  %1642 = extractvalue { ptr, i32 } %1640, 1
  store i32 %1642, ptr %20, align 4
  br label %1758

1643:                                             ; preds = %1621
  %1644 = landingpad { ptr, i32 }
          cleanup
  %1645 = extractvalue { ptr, i32 } %1644, 0
  store ptr %1645, ptr %19, align 8
  %1646 = extractvalue { ptr, i32 } %1644, 1
  store i32 %1646, ptr %20, align 4
  br label %1675

1647:                                             ; preds = %1632
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #0
  %1648 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %159) #0
  store ptr %1648, ptr %161, align 8, !tbaa !5
  %1649 = load ptr, ptr %161, align 8, !tbaa !5
  %1650 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %1649) #0
  br i1 %1650, label %1651, label %1668

1651:                                             ; preds = %1647
  %1652 = load ptr, ptr %161, align 8, !tbaa !5
  %1653 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1652) #0
  %1654 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1653)
          to label %1655 unwind label %1664

1655:                                             ; preds = %1651
  %1656 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1654, i32 0, i32 1
  %1657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1656) #0
  %1658 = load ptr, ptr %156, align 8, !tbaa !5
  %1659 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1657, ptr noundef nonnull align 8 dereferenceable(8) %1658)
          to label %1660 unwind label %1664

1660:                                             ; preds = %1655
  br i1 %1659, label %1661, label %1668

1661:                                             ; preds = %1660
  %1662 = load ptr, ptr %161, align 8, !tbaa !5
  %1663 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %1662) #0
  store ptr %1663, ptr %157, align 8, !tbaa !5
  store i32 148, ptr %28, align 4
  br label %1669

1664:                                             ; preds = %1655, %1651
  %1665 = landingpad { ptr, i32 }
          cleanup
  %1666 = extractvalue { ptr, i32 } %1665, 0
  store ptr %1666, ptr %19, align 8
  %1667 = extractvalue { ptr, i32 } %1665, 1
  store i32 %1667, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #0
  br label %1675

1668:                                             ; preds = %1660, %1647
  store i32 0, ptr %28, align 4
  br label %1669

1669:                                             ; preds = %1668, %1661
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #0
  %1670 = load i32, ptr %28, align 4
  switch i32 %1670, label %1674 [
    i32 0, label %1671
  ]

1671:                                             ; preds = %1669
  br label %1672

1672:                                             ; preds = %1671
  %1673 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %159) #0
  br label %1632

1674:                                             ; preds = %1669, %1634
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #0
  br label %1676

1675:                                             ; preds = %1664, %1643
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #0
  br label %1758

1676:                                             ; preds = %1674
  br label %1724

1677:                                             ; preds = %1616
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #0
  %1678 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #0
  %1679 = load ptr, ptr %1678, align 8, !tbaa !5
  %1680 = getelementptr inbounds %"class.AST::Module", ptr %1679, i32 0, i32 1
  store ptr %1680, ptr %162, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #0
  %1681 = load ptr, ptr %162, align 8, !tbaa !5
  %1682 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1681) #0
  %1683 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %163, i32 0, i32 0
  store ptr %1682, ptr %1683, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #0
  %1684 = load ptr, ptr %162, align 8, !tbaa !5
  %1685 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1684) #0
  %1686 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %164, i32 0, i32 0
  store ptr %1685, ptr %1686, align 8
  br label %1687

1687:                                             ; preds = %1721, %1677
  %1688 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(8) %164) #0
  br i1 %1688, label %1690, label %1689

1689:                                             ; preds = %1687
  store i32 150, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #0
  br label %1723

1690:                                             ; preds = %1687
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #0
  %1691 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #0
  store ptr %1691, ptr %165, align 8, !tbaa !5
  %1692 = load ptr, ptr %165, align 8, !tbaa !5
  %1693 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1692) #0
  %1694 = getelementptr inbounds %"struct.AST::Named", ptr %1693, i32 0, i32 4
  %1695 = invoke noundef zeroext i1 @_ZNK3AST4Item9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %1694)
          to label %1696 unwind label %1715

1696:                                             ; preds = %1690
  br i1 %1695, label %1697, label %1720

1697:                                             ; preds = %1696
  %1698 = load ptr, ptr %165, align 8, !tbaa !5
  %1699 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1698) #0
  %1700 = getelementptr inbounds %"struct.AST::Named", ptr %1699, i32 0, i32 3
  %1701 = load ptr, ptr %13, align 8, !tbaa !5
  %1702 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1701)
          to label %1703 unwind label %1715

1703:                                             ; preds = %1697
  %1704 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1702, i32 0, i32 1
  %1705 = load i64, ptr %155, align 8, !tbaa !91
  %1706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1704, i64 noundef %1705) #0
  %1707 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1700, ptr noundef nonnull align 8 dereferenceable(8) %1706)
          to label %1708 unwind label %1715

1708:                                             ; preds = %1703
  br i1 %1707, label %1709, label %1719

1709:                                             ; preds = %1708
  %1710 = load ptr, ptr %165, align 8, !tbaa !5
  %1711 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1710) #0
  %1712 = getelementptr inbounds %"struct.AST::Named", ptr %1711, i32 0, i32 4
  %1713 = invoke noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %1712)
          to label %1714 unwind label %1715

1714:                                             ; preds = %1709
  store ptr %1713, ptr %157, align 8, !tbaa !5
  br label %1719

1715:                                             ; preds = %1709, %1703, %1697, %1690
  %1716 = landingpad { ptr, i32 }
          cleanup
  %1717 = extractvalue { ptr, i32 } %1716, 0
  store ptr %1717, ptr %19, align 8
  %1718 = extractvalue { ptr, i32 } %1716, 1
  store i32 %1718, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #0
  br label %1758

1719:                                             ; preds = %1714, %1708
  br label %1720

1720:                                             ; preds = %1719, %1696
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #0
  br label %1721

1721:                                             ; preds = %1720
  %1722 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #0
  br label %1687

1723:                                             ; preds = %1689
  br label %1724

1724:                                             ; preds = %1723, %1676
  br label %1725

1725:                                             ; preds = %1724
  %1726 = load ptr, ptr %157, align 8, !tbaa !5
  %1727 = icmp ne ptr %1726, null
  br i1 %1727, label %1751, label %1728

1728:                                             ; preds = %1725
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #0
  %1729 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef nonnull align 8 dereferenceable(8) %1729)
          to label %1730 unwind label %1738

1730:                                             ; preds = %1728
  call void @llvm.lifetime.start.p0(i64 16, ptr %168) #0
  %1731 = getelementptr inbounds %class.anon.300, ptr %168, i32 0, i32 0
  %1732 = load ptr, ptr %156, align 8, !tbaa !5
  store ptr %1732, ptr %1731, align 8, !tbaa !5
  %1733 = getelementptr inbounds %class.anon.300, ptr %168, i32 0, i32 1
  %1734 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %1734, ptr %1733, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull align 8 dereferenceable(16) %168) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef %167)
          to label %1735 unwind label %1742

1735:                                             ; preds = %1730
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #0
  call void @llvm.lifetime.end.p0(i64 16, ptr %168) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #0
  %1736 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1736, ptr noundef @.str.5)
          to label %1737 unwind label %1747

1737:                                             ; preds = %1735
  invoke void @__cxa_throw(ptr %1736, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %1639

1738:                                             ; preds = %1728
  %1739 = landingpad { ptr, i32 }
          cleanup
  %1740 = extractvalue { ptr, i32 } %1739, 0
  store ptr %1740, ptr %19, align 8
  %1741 = extractvalue { ptr, i32 } %1739, 1
  store i32 %1741, ptr %20, align 4
  br label %1746

1742:                                             ; preds = %1730
  %1743 = landingpad { ptr, i32 }
          cleanup
  %1744 = extractvalue { ptr, i32 } %1743, 0
  store ptr %1744, ptr %19, align 8
  %1745 = extractvalue { ptr, i32 } %1743, 1
  store i32 %1745, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #0
  call void @llvm.lifetime.end.p0(i64 16, ptr %168) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #0
  br label %1746

1746:                                             ; preds = %1742, %1738
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #0
  br label %1758

1747:                                             ; preds = %1735
  %1748 = landingpad { ptr, i32 }
          cleanup
  %1749 = extractvalue { ptr, i32 } %1748, 0
  store ptr %1749, ptr %19, align 8
  %1750 = extractvalue { ptr, i32 } %1748, 1
  store i32 %1750, ptr %20, align 4
  call void @__cxa_free_exception(ptr %1736) #0
  br label %1758

1751:                                             ; preds = %1725
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %1754 unwind label %1639

1754:                                             ; preds = %1753
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #0
  br label %1755

1755:                                             ; preds = %1754
  %1756 = load i64, ptr %155, align 8, !tbaa !91
  %1757 = add i64 %1756, 1
  store i64 %1757, ptr %155, align 8, !tbaa !91
  br label %1590, !llvm.loop !93

1758:                                             ; preds = %1747, %1746, %1715, %1675, %1639
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #0
  br label %1759

1759:                                             ; preds = %1758, %1635
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #0
  br label %1760

1760:                                             ; preds = %1759, %1603
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #0
  br label %1986

1761:                                             ; preds = %1598
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #0
  %1762 = call noundef i64 @_ZNKSt6vectorIPKN3AST6ModuleESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #0
  store i64 %1762, ptr %169, align 8, !tbaa !91
  br label %1763

1763:                                             ; preds = %1982, %1761
  %1764 = load i64, ptr %169, align 8, !tbaa !91
  %1765 = add i64 %1764, -1
  store i64 %1765, ptr %169, align 8, !tbaa !91
  %1766 = icmp ne i64 %1764, 0
  br i1 %1766, label %1768, label %1767

1767:                                             ; preds = %1763
  store i32 154, ptr %28, align 4
  br label %1984

1768:                                             ; preds = %1763
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #0
  %1769 = load i64, ptr %169, align 8, !tbaa !91
  %1770 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %1769) #0
  %1771 = load ptr, ptr %1770, align 8, !tbaa !5
  store ptr %1771, ptr %170, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #0
  %1772 = load ptr, ptr %170, align 8, !tbaa !5
  %1773 = getelementptr inbounds %"class.AST::Module", ptr %1772, i32 0, i32 12
  store ptr %1773, ptr %171, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #0
  %1774 = load ptr, ptr %171, align 8, !tbaa !5
  %1775 = call ptr @_ZNKSt6vectorIN3AST6Module11MacroImportESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1774) #0
  %1776 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.301", ptr %172, i32 0, i32 0
  store ptr %1775, ptr %1776, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #0
  %1777 = load ptr, ptr %171, align 8, !tbaa !5
  %1778 = call ptr @_ZNKSt6vectorIN3AST6Module11MacroImportESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1777) #0
  %1779 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.301", ptr %173, i32 0, i32 0
  store ptr %1778, ptr %1779, align 8
  br label %1780

1780:                                             ; preds = %1966, %1768
  %1781 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %173) #0
  br i1 %1781, label %1783, label %1782

1782:                                             ; preds = %1780
  store i32 156, ptr %28, align 4
  br label %1969

1783:                                             ; preds = %1780
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #0
  %1784 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %172) #0
  store ptr %1784, ptr %174, align 8, !tbaa !5
  %1785 = load ptr, ptr %174, align 8, !tbaa !5
  %1786 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %1785, i32 0, i32 1
  %1787 = load ptr, ptr %14, align 8, !tbaa !5
  %1788 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1786, ptr noundef nonnull align 8 dereferenceable(8) %1787)
          to label %1789 unwind label %1808

1789:                                             ; preds = %1783
  br i1 %1788, label %1790, label %1962

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790
  %1792 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1793 unwind label %1808

1793:                                             ; preds = %1791
  br i1 %1792, label %1794, label %1812

1794:                                             ; preds = %1793
  %1795 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %1796 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1795, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %1797 unwind label %1808

1797:                                             ; preds = %1794
  %1798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1796, ptr noundef @.str.28)
          to label %1799 unwind label %1808

1799:                                             ; preds = %1797
  %1800 = load ptr, ptr %174, align 8, !tbaa !5
  %1801 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %1800, i32 0, i32 2
  %1802 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %1798, ptr noundef nonnull align 8 dereferenceable(32) %1801)
          to label %1803 unwind label %1808

1803:                                             ; preds = %1799
  %1804 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1802, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1805 unwind label %1808

1805:                                             ; preds = %1803
  %1806 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1804, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1807 unwind label %1808

1807:                                             ; preds = %1805
  br label %1812

1808:                                             ; preds = %1956, %1805, %1803, %1799, %1797, %1794, %1791, %1783
  %1809 = landingpad { ptr, i32 }
          cleanup
  %1810 = extractvalue { ptr, i32 } %1809, 0
  store ptr %1810, ptr %19, align 8
  %1811 = extractvalue { ptr, i32 } %1809, 1
  store i32 %1811, ptr %20, align 4
  br label %1968

1812:                                             ; preds = %1807, %1793
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813
  call void @llvm.lifetime.start.p0(i64 1, ptr %175) #0
  store i8 1, ptr %175, align 1, !tbaa !9
  br label %1815

1815:                                             ; preds = %1955, %1814
  %1816 = load i8, ptr %175, align 1, !tbaa !9, !range !20, !noundef !21
  %1817 = trunc i8 %1816 to i1
  br i1 %1817, label %1819, label %1818

1818:                                             ; preds = %1815
  store i32 160, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #0
  br label %1956

1819:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #0
  %1820 = load ptr, ptr %174, align 8, !tbaa !5
  %1821 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %1820, i32 0, i32 3
  store ptr %1821, ptr %176, align 8, !tbaa !5
  br label %1822

1822:                                             ; preds = %1952, %1819
  %1823 = load i8, ptr %175, align 1, !tbaa !9, !range !20, !noundef !21
  %1824 = trunc i8 %1823 to i1
  br i1 %1824, label %1826, label %1825

1825:                                             ; preds = %1822
  store i32 163, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #0
  br label %1954

1826:                                             ; preds = %1822
  %1827 = load ptr, ptr %176, align 8, !tbaa !5
  %1828 = invoke noundef i32 @_ZNK8MacroRef3tagEv(ptr noundef nonnull align 8 dereferenceable(16) %1827)
          to label %1829 unwind label %1830

1829:                                             ; preds = %1826
  switch i32 %1828, label %1951 [
    i32 0, label %1834
    i32 1, label %1835
    i32 2, label %1858
    i32 3, label %1905
    i32 4, label %1928
  ]

1830:                                             ; preds = %1826
  %1831 = landingpad { ptr, i32 }
          cleanup
  %1832 = extractvalue { ptr, i32 } %1831, 0
  store ptr %1832, ptr %19, align 8
  %1833 = extractvalue { ptr, i32 } %1831, 1
  store i32 %1833, ptr %20, align 4
  br label %1953

1834:                                             ; preds = %1829
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 531, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #12
  unreachable

1835:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 1, ptr %177) #0
  store i8 1, ptr %177, align 1, !tbaa !9
  br label %1836

1836:                                             ; preds = %1856, %1835
  %1837 = load i8, ptr %177, align 1, !tbaa !9, !range !20, !noundef !21
  %1838 = trunc i8 %1837 to i1
  br i1 %1838, label %1840, label %1839

1839:                                             ; preds = %1836
  store i32 167, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #0
  br label %1857

1840:                                             ; preds = %1836
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #0
  %1841 = load ptr, ptr %176, align 8, !tbaa !5
  %1842 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK8MacroRef7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(16) %1841)
          to label %1843 unwind label %1849

1843:                                             ; preds = %1840
  store ptr %1842, ptr %178, align 8, !tbaa !5
  br label %1844

1844:                                             ; preds = %1854, %1843
  %1845 = load ptr, ptr %178, align 8, !tbaa !5
  %1846 = load i8, ptr %177, align 1, !tbaa !9, !range !20, !noundef !21
  %1847 = trunc i8 %1846 to i1
  br i1 %1847, label %1853, label %1848

1848:                                             ; preds = %1844
  store i32 170, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #0
  br label %1855

1849:                                             ; preds = %1840
  %1850 = landingpad { ptr, i32 }
          cleanup
  %1851 = extractvalue { ptr, i32 } %1850, 0
  store ptr %1851, ptr %19, align 8
  %1852 = extractvalue { ptr, i32 } %1850, 1
  store i32 %1852, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #0
  br label %1953

1853:                                             ; preds = %1844
  br label %1854

1854:                                             ; preds = %1853
  store i8 0, ptr %177, align 1, !tbaa !9
  br label %1844, !llvm.loop !94

1855:                                             ; preds = %1848
  br label %1856

1856:                                             ; preds = %1855
  store i8 0, ptr %177, align 1, !tbaa !9
  br label %1836, !llvm.loop !95

1857:                                             ; preds = %1839
  br label %1951

1858:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #0
  store i8 1, ptr %179, align 1, !tbaa !9
  br label %1859

1859:                                             ; preds = %1903, %1858
  %1860 = load i8, ptr %179, align 1, !tbaa !9, !range !20, !noundef !21
  %1861 = trunc i8 %1860 to i1
  br i1 %1861, label %1863, label %1862

1862:                                             ; preds = %1859
  store i32 173, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #0
  br label %1904

1863:                                             ; preds = %1859
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #0
  %1864 = load ptr, ptr %176, align 8, !tbaa !5
  %1865 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(16) %1864)
          to label %1866 unwind label %1872

1866:                                             ; preds = %1863
  store ptr %1865, ptr %180, align 8, !tbaa !5
  br label %1867

1867:                                             ; preds = %1891, %1866
  %1868 = load ptr, ptr %180, align 8, !tbaa !5
  %1869 = load i8, ptr %179, align 1, !tbaa !9, !range !20, !noundef !21
  %1870 = trunc i8 %1869 to i1
  br i1 %1870, label %1876, label %1871

1871:                                             ; preds = %1867
  store i32 176, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #0
  br label %1902

1872:                                             ; preds = %1876, %1863
  %1873 = landingpad { ptr, i32 }
          cleanup
  %1874 = extractvalue { ptr, i32 } %1873, 0
  store ptr %1874, ptr %19, align 8
  %1875 = extractvalue { ptr, i32 } %1873, 1
  store i32 %1875, ptr %20, align 4
  br label %1901

1876:                                             ; preds = %1867
  %1877 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %1878 = load ptr, ptr %174, align 8, !tbaa !5
  %1879 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %1878, i32 0, i32 2
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %1879)
          to label %1880 unwind label %1872

1880:                                             ; preds = %1876
  %1881 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %183, i32 0, i32 0
  store ptr null, ptr %1881, align 8, !tbaa !88
  %1882 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %183, i32 0, i32 1
  %1883 = load ptr, ptr %180, align 8, !tbaa !5
  %1884 = load ptr, ptr %1883, align 8, !tbaa !5
  store ptr %1884, ptr %1882, align 8, !tbaa !90
  %1885 = getelementptr inbounds { ptr, ptr }, ptr %183, i32 0, i32 0
  %1886 = load ptr, ptr %1885, align 8
  %1887 = getelementptr inbounds { ptr, ptr }, ptr %183, i32 0, i32 1
  %1888 = load ptr, ptr %1887, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %182, ptr %1886, ptr %1888)
          to label %1889 unwind label %1892

1889:                                             ; preds = %1880
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %1877, ptr noundef %181, ptr noundef %182)
          to label %1890 unwind label %1896

1890:                                             ; preds = %1889
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %182) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #0
  br label %1891

1891:                                             ; preds = %1890
  store i8 0, ptr %179, align 1, !tbaa !9
  br label %1867, !llvm.loop !96

1892:                                             ; preds = %1880
  %1893 = landingpad { ptr, i32 }
          cleanup
  %1894 = extractvalue { ptr, i32 } %1893, 0
  store ptr %1894, ptr %19, align 8
  %1895 = extractvalue { ptr, i32 } %1893, 1
  store i32 %1895, ptr %20, align 4
  br label %1900

1896:                                             ; preds = %1889
  %1897 = landingpad { ptr, i32 }
          cleanup
  %1898 = extractvalue { ptr, i32 } %1897, 0
  store ptr %1898, ptr %19, align 8
  %1899 = extractvalue { ptr, i32 } %1897, 1
  store i32 %1899, ptr %20, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %182) #0
  br label %1900

1900:                                             ; preds = %1896, %1892
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #0
  br label %1901

1901:                                             ; preds = %1900, %1872
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #0
  br label %1953

1902:                                             ; preds = %1871
  br label %1903

1903:                                             ; preds = %1902
  store i8 0, ptr %179, align 1, !tbaa !9
  br label %1859, !llvm.loop !97

1904:                                             ; preds = %1862
  br label %1951

1905:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #0
  store i8 1, ptr %184, align 1, !tbaa !9
  br label %1906

1906:                                             ; preds = %1926, %1905
  %1907 = load i8, ptr %184, align 1, !tbaa !9, !range !20, !noundef !21
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1910, label %1909

1909:                                             ; preds = %1906
  store i32 179, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #0
  br label %1927

1910:                                             ; preds = %1906
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #0
  %1911 = load ptr, ptr %176, align 8, !tbaa !5
  %1912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef19as_BuiltinProcMacroEv(ptr noundef nonnull align 8 dereferenceable(16) %1911)
          to label %1913 unwind label %1919

1913:                                             ; preds = %1910
  store ptr %1912, ptr %185, align 8, !tbaa !5
  br label %1914

1914:                                             ; preds = %1924, %1913
  %1915 = load ptr, ptr %185, align 8, !tbaa !5
  %1916 = load i8, ptr %184, align 1, !tbaa !9, !range !20, !noundef !21
  %1917 = trunc i8 %1916 to i1
  br i1 %1917, label %1923, label %1918

1918:                                             ; preds = %1914
  store i32 182, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #0
  br label %1925

1919:                                             ; preds = %1910
  %1920 = landingpad { ptr, i32 }
          cleanup
  %1921 = extractvalue { ptr, i32 } %1920, 0
  store ptr %1921, ptr %19, align 8
  %1922 = extractvalue { ptr, i32 } %1920, 1
  store i32 %1922, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #0
  br label %1953

1923:                                             ; preds = %1914
  br label %1924

1924:                                             ; preds = %1923
  store i8 0, ptr %184, align 1, !tbaa !9
  br label %1914, !llvm.loop !98

1925:                                             ; preds = %1918
  br label %1926

1926:                                             ; preds = %1925
  store i8 0, ptr %184, align 1, !tbaa !9
  br label %1906, !llvm.loop !99

1927:                                             ; preds = %1909
  br label %1951

1928:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 1, ptr %186) #0
  store i8 1, ptr %186, align 1, !tbaa !9
  br label %1929

1929:                                             ; preds = %1949, %1928
  %1930 = load i8, ptr %186, align 1, !tbaa !9, !range !20, !noundef !21
  %1931 = trunc i8 %1930 to i1
  br i1 %1931, label %1933, label %1932

1932:                                             ; preds = %1929
  store i32 185, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %186) #0
  br label %1950

1933:                                             ; preds = %1929
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #0
  %1934 = load ptr, ptr %176, align 8, !tbaa !5
  %1935 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef20as_ExternalProcMacroEv(ptr noundef nonnull align 8 dereferenceable(16) %1934)
          to label %1936 unwind label %1942

1936:                                             ; preds = %1933
  store ptr %1935, ptr %187, align 8, !tbaa !5
  br label %1937

1937:                                             ; preds = %1947, %1936
  %1938 = load ptr, ptr %187, align 8, !tbaa !5
  %1939 = load i8, ptr %186, align 1, !tbaa !9, !range !20, !noundef !21
  %1940 = trunc i8 %1939 to i1
  br i1 %1940, label %1946, label %1941

1941:                                             ; preds = %1937
  store i32 188, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #0
  br label %1948

1942:                                             ; preds = %1933
  %1943 = landingpad { ptr, i32 }
          cleanup
  %1944 = extractvalue { ptr, i32 } %1943, 0
  store ptr %1944, ptr %19, align 8
  %1945 = extractvalue { ptr, i32 } %1943, 1
  store i32 %1945, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %186) #0
  br label %1953

1946:                                             ; preds = %1937
  br label %1947

1947:                                             ; preds = %1946
  store i8 0, ptr %186, align 1, !tbaa !9
  br label %1937, !llvm.loop !100

1948:                                             ; preds = %1941
  br label %1949

1949:                                             ; preds = %1948
  store i8 0, ptr %186, align 1, !tbaa !9
  br label %1929, !llvm.loop !101

1950:                                             ; preds = %1932
  br label %1951

1951:                                             ; preds = %1950, %1927, %1904, %1857, %1829
  br label %1952

1952:                                             ; preds = %1951
  store i8 0, ptr %175, align 1, !tbaa !9
  br label %1822, !llvm.loop !102

1953:                                             ; preds = %1942, %1919, %1901, %1849, %1830
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #0
  br label %1968

1954:                                             ; preds = %1825
  br label %1955

1955:                                             ; preds = %1954
  store i8 0, ptr %175, align 1, !tbaa !9
  br label %1815, !llvm.loop !103

1956:                                             ; preds = %1818
  %1957 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %1958 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %1957)
          to label %1959 unwind label %1808

1959:                                             ; preds = %1956
  br i1 %1958, label %1961, label %1960

1960:                                             ; preds = %1959
  store i32 156, ptr %28, align 4
  br label %1963

1961:                                             ; preds = %1959
  br label %1962

1962:                                             ; preds = %1961, %1789
  store i32 0, ptr %28, align 4
  br label %1963

1963:                                             ; preds = %1962, %1960
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #0
  %1964 = load i32, ptr %28, align 4
  switch i32 %1964, label %1969 [
    i32 0, label %1965
  ]

1965:                                             ; preds = %1963
  br label %1966

1966:                                             ; preds = %1965
  %1967 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %172) #0
  br label %1780

1968:                                             ; preds = %1953, %1808
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #0
  br label %1983

1969:                                             ; preds = %1963, %1782
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #0
  br label %1970

1970:                                             ; preds = %1969
  %1971 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %1972 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %1971)
          to label %1973 unwind label %1975

1973:                                             ; preds = %1970
  br i1 %1972, label %1979, label %1974

1974:                                             ; preds = %1973
  store i32 154, ptr %28, align 4
  br label %1980

1975:                                             ; preds = %1970
  %1976 = landingpad { ptr, i32 }
          cleanup
  %1977 = extractvalue { ptr, i32 } %1976, 0
  store ptr %1977, ptr %19, align 8
  %1978 = extractvalue { ptr, i32 } %1976, 1
  store i32 %1978, ptr %20, align 4
  br label %1983

1979:                                             ; preds = %1973
  store i32 0, ptr %28, align 4
  br label %1980

1980:                                             ; preds = %1979, %1974
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #0
  %1981 = load i32, ptr %28, align 4
  switch i32 %1981, label %1984 [
    i32 0, label %1982
  ]

1982:                                             ; preds = %1980
  br label %1763, !llvm.loop !104

1983:                                             ; preds = %1975, %1968
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #0
  br label %1986

1984:                                             ; preds = %1980, %1767
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #0
  br label %1985

1985:                                             ; preds = %1984
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %153) #0
  call void @llvm.lifetime.end.p0(i64 24, ptr %153) #0
  br label %1987

1986:                                             ; preds = %1983, %1760, %1599
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %153) #0
  call void @llvm.lifetime.end.p0(i64 24, ptr %153) #0
  br label %3438

1987:                                             ; preds = %1985, %1584
  %1988 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %1989 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %1988)
          to label %1990 unwind label %426

1990:                                             ; preds = %1987
  br i1 %1989, label %1991, label %2067

1991:                                             ; preds = %1990
  %1992 = load ptr, ptr %13, align 8, !tbaa !5
  %1993 = load ptr, ptr %11, align 8, !tbaa !5
  %1994 = getelementptr inbounds %"class.AST::Crate", ptr %1993, i32 0, i32 2
  %1995 = icmp eq ptr %1992, %1994
  br i1 %1995, label %1996, label %2067

1996:                                             ; preds = %1991
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #0
  %1997 = load ptr, ptr %11, align 8, !tbaa !5
  %1998 = getelementptr inbounds %"class.AST::Crate", ptr %1997, i32 0, i32 5
  %1999 = load ptr, ptr %14, align 8, !tbaa !5
  %2000 = invoke ptr @_ZNKSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE4findERS7_(ptr noundef nonnull align 8 dereferenceable(48) %1998, ptr noundef nonnull align 8 dereferenceable(8) %1999)
          to label %2001 unwind label %2044

2001:                                             ; preds = %1996
  %2002 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %188, i32 0, i32 0
  store ptr %2000, ptr %2002, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #0
  %2003 = load ptr, ptr %11, align 8, !tbaa !5
  %2004 = getelementptr inbounds %"class.AST::Crate", ptr %2003, i32 0, i32 5
  %2005 = call ptr @_ZNKSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2004) #0
  %2006 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %189, i32 0, i32 0
  store ptr %2005, ptr %2006, align 8
  %2007 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIK8RcStringPK10MacroRulesEES9_(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull align 8 dereferenceable(8) %189) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #0
  br i1 %2007, label %2008, label %2065

2008:                                             ; preds = %2001
  %2009 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %2010 = load ptr, ptr %13, align 8, !tbaa !5
  %2011 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2010)
          to label %2012 unwind label %2044

2012:                                             ; preds = %2008
  %2013 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull align 8 dereferenceable(8) %2013)
          to label %2014 unwind label %2044

2014:                                             ; preds = %2012
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %190, ptr noundef nonnull align 8 dereferenceable(32) %2011, ptr noundef %191)
          to label %2015 unwind label %2048

2015:                                             ; preds = %2014
  %2016 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %193, i32 0, i32 0
  store ptr null, ptr %2016, align 8, !tbaa !88
  %2017 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %193, i32 0, i32 1
  %2018 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIK8RcStringPK10MacroRulesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %188) #0
  %2019 = getelementptr inbounds %"struct.std::pair.302", ptr %2018, i32 0, i32 1
  %2020 = load ptr, ptr %2019, align 8, !tbaa !105
  store ptr %2020, ptr %2017, align 8, !tbaa !90
  %2021 = getelementptr inbounds { ptr, ptr }, ptr %193, i32 0, i32 0
  %2022 = load ptr, ptr %2021, align 8
  %2023 = getelementptr inbounds { ptr, ptr }, ptr %193, i32 0, i32 1
  %2024 = load ptr, ptr %2023, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %192, ptr %2022, ptr %2024)
          to label %2025 unwind label %2052

2025:                                             ; preds = %2015
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %2009, ptr noundef %190, ptr noundef %192)
          to label %2026 unwind label %2056

2026:                                             ; preds = %2025
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %192) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #0
  br label %2027

2027:                                             ; preds = %2026
  %2028 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2029 unwind label %2044

2029:                                             ; preds = %2027
  br i1 %2028, label %2030, label %2062

2030:                                             ; preds = %2029
  %2031 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2032 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2031, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2033 unwind label %2044

2033:                                             ; preds = %2030
  %2034 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2032, ptr noundef @.str.29)
          to label %2035 unwind label %2044

2035:                                             ; preds = %2033
  %2036 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 2
  %2037 = getelementptr inbounds %"struct.AST::PathBinding.24", ptr %2036, i32 0, i32 0
  %2038 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %2034, ptr noundef nonnull align 8 dereferenceable(32) %2037)
          to label %2039 unwind label %2044

2039:                                             ; preds = %2035
  %2040 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2038, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2041 unwind label %2044

2041:                                             ; preds = %2039
  %2042 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2040, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2043 unwind label %2044

2043:                                             ; preds = %2041
  br label %2062

2044:                                             ; preds = %2041, %2039, %2035, %2033, %2030, %2027, %2012, %2008, %1996
  %2045 = landingpad { ptr, i32 }
          cleanup
  %2046 = extractvalue { ptr, i32 } %2045, 0
  store ptr %2046, ptr %19, align 8
  %2047 = extractvalue { ptr, i32 } %2045, 1
  store i32 %2047, ptr %20, align 4
  br label %2066

2048:                                             ; preds = %2014
  %2049 = landingpad { ptr, i32 }
          cleanup
  %2050 = extractvalue { ptr, i32 } %2049, 0
  store ptr %2050, ptr %19, align 8
  %2051 = extractvalue { ptr, i32 } %2049, 1
  store i32 %2051, ptr %20, align 4
  br label %2061

2052:                                             ; preds = %2015
  %2053 = landingpad { ptr, i32 }
          cleanup
  %2054 = extractvalue { ptr, i32 } %2053, 0
  store ptr %2054, ptr %19, align 8
  %2055 = extractvalue { ptr, i32 } %2053, 1
  store i32 %2055, ptr %20, align 4
  br label %2060

2056:                                             ; preds = %2025
  %2057 = landingpad { ptr, i32 }
          cleanup
  %2058 = extractvalue { ptr, i32 } %2057, 0
  store ptr %2058, ptr %19, align 8
  %2059 = extractvalue { ptr, i32 } %2057, 1
  store i32 %2059, ptr %20, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %192) #0
  br label %2060

2060:                                             ; preds = %2056, %2052
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #0
  br label %2061

2061:                                             ; preds = %2060, %2048
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #0
  br label %2066

2062:                                             ; preds = %2043, %2029
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

2064:                                             ; preds = %2063
  br label %2065

2065:                                             ; preds = %2064, %2001
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #0
  br label %2067

2066:                                             ; preds = %2061, %2044
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #0
  br label %3438

2067:                                             ; preds = %2065, %1991, %1990
  %2068 = load i8, ptr %16, align 1, !tbaa !9, !range !20, !noundef !21
  %2069 = trunc i8 %2068 to i1
  br i1 %2069, label %2070, label %2076

2070:                                             ; preds = %2067
  %2071 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %17, i32 0, i32 1
  %2072 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %2071)
          to label %2073 unwind label %426

2073:                                             ; preds = %2070
  br i1 %2072, label %2076, label %2074

2074:                                             ; preds = %2073
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %17)
          to label %2075 unwind label %426

2075:                                             ; preds = %2074
  store i32 1, ptr %28, align 4
  br label %3437

2076:                                             ; preds = %2073, %2067
  call void @llvm.lifetime.start.p0(i64 1, ptr %194) #0
  %2077 = load ptr, ptr %13, align 8, !tbaa !5
  %2078 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2077)
          to label %2079 unwind label %2112

2079:                                             ; preds = %2076
  %2080 = load ptr, ptr %12, align 8, !tbaa !5
  %2081 = invoke noundef zeroext i1 @_ZNK3AST12AbsolutePath12is_parent_ofERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %2078, ptr noundef nonnull align 8 dereferenceable(32) %2080)
          to label %2082 unwind label %2112

2082:                                             ; preds = %2079
  br i1 %2081, label %2098, label %2083

2083:                                             ; preds = %2082
  %2084 = invoke noundef i64 @_ZNKSt4spanIPKN3AST6ModuleEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %2085 unwind label %2112

2085:                                             ; preds = %2083
  %2086 = icmp ugt i64 %2084, 0
  br i1 %2086, label %2087, label %2096

2087:                                             ; preds = %2085
  %2088 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIPKN3AST6ModuleEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %6, i64 noundef 0)
          to label %2089 unwind label %2112

2089:                                             ; preds = %2087
  %2090 = load ptr, ptr %2088, align 8, !tbaa !5
  %2091 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2090)
          to label %2092 unwind label %2112

2092:                                             ; preds = %2089
  %2093 = load ptr, ptr %12, align 8, !tbaa !5
  %2094 = invoke noundef zeroext i1 @_ZNK3AST12AbsolutePath12is_parent_ofERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %2091, ptr noundef nonnull align 8 dereferenceable(32) %2093)
          to label %2095 unwind label %2112

2095:                                             ; preds = %2092
  br label %2096

2096:                                             ; preds = %2095, %2085
  %2097 = phi i1 [ false, %2085 ], [ %2094, %2095 ]
  br label %2098

2098:                                             ; preds = %2096, %2082
  %2099 = phi i1 [ true, %2082 ], [ %2097, %2096 ]
  %2100 = zext i1 %2099 to i8
  store i8 %2100, ptr %194, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #0
  %2101 = load ptr, ptr %13, align 8, !tbaa !5
  %2102 = getelementptr inbounds %"class.AST::Module", ptr %2101, i32 0, i32 1
  store ptr %2102, ptr %195, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #0
  %2103 = load ptr, ptr %195, align 8, !tbaa !5
  %2104 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2103) #0
  %2105 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %196, i32 0, i32 0
  store ptr %2104, ptr %2105, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #0
  %2106 = load ptr, ptr %195, align 8, !tbaa !5
  %2107 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2106) #0
  %2108 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %197, i32 0, i32 0
  store ptr %2107, ptr %2108, align 8
  br label %2109

2109:                                             ; preds = %2383, %2098
  %2110 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %196, ptr noundef nonnull align 8 dereferenceable(8) %197) #0
  br i1 %2110, label %2116, label %2111

2111:                                             ; preds = %2109
  store i32 193, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #0
  br label %2387

2112:                                             ; preds = %3433, %3431, %3429, %3425, %3420, %3404, %3393, %3383, %3380, %3373, %3371, %3368, %2092, %2089, %2087, %2083, %2079, %2076
  %2113 = landingpad { ptr, i32 }
          cleanup
  %2114 = extractvalue { ptr, i32 } %2113, 0
  store ptr %2114, ptr %19, align 8
  %2115 = extractvalue { ptr, i32 } %2113, 1
  store i32 %2115, ptr %20, align 4
  br label %3436

2116:                                             ; preds = %2109
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #0
  %2117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %196) #0
  store ptr %2117, ptr %198, align 8, !tbaa !5
  %2118 = load ptr, ptr %198, align 8, !tbaa !5
  %2119 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2118) #0
  %2120 = getelementptr inbounds %"struct.AST::Named", ptr %2119, i32 0, i32 4
  %2121 = invoke noundef zeroext i1 @_ZNK3AST4Item6is_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %2120)
          to label %2122 unwind label %2124

2122:                                             ; preds = %2116
  br i1 %2121, label %2128, label %2123

2123:                                             ; preds = %2122
  store i32 194, ptr %28, align 4
  br label %2380

2124:                                             ; preds = %2116
  %2125 = landingpad { ptr, i32 }
          cleanup
  %2126 = extractvalue { ptr, i32 } %2125, 0
  store ptr %2126, ptr %19, align 8
  %2127 = extractvalue { ptr, i32 } %2125, 1
  store i32 %2127, ptr %20, align 4
  br label %2386

2128:                                             ; preds = %2122
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #0
  %2129 = load ptr, ptr %198, align 8, !tbaa !5
  %2130 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2129) #0
  %2131 = getelementptr inbounds %"struct.AST::Named", ptr %2130, i32 0, i32 4
  %2132 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %2131)
          to label %2133 unwind label %2145

2133:                                             ; preds = %2128
  store ptr %2132, ptr %199, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #0
  %2134 = load ptr, ptr %199, align 8, !tbaa !5
  %2135 = getelementptr inbounds %"struct.AST::UseItem", ptr %2134, i32 0, i32 1
  store ptr %2135, ptr %200, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #0
  %2136 = load ptr, ptr %200, align 8, !tbaa !5
  %2137 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2136) #0
  %2138 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.304", ptr %201, i32 0, i32 0
  store ptr %2137, ptr %2138, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #0
  %2139 = load ptr, ptr %200, align 8, !tbaa !5
  %2140 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2139) #0
  %2141 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.304", ptr %202, i32 0, i32 0
  store ptr %2140, ptr %2141, align 8
  br label %2142

2142:                                             ; preds = %2376, %2133
  %2143 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull align 8 dereferenceable(8) %202) #0
  br i1 %2143, label %2149, label %2144

2144:                                             ; preds = %2142
  store i32 195, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #0
  br label %2379

2145:                                             ; preds = %2128
  %2146 = landingpad { ptr, i32 }
          cleanup
  %2147 = extractvalue { ptr, i32 } %2146, 0
  store ptr %2147, ptr %19, align 8
  %2148 = extractvalue { ptr, i32 } %2146, 1
  store i32 %2148, ptr %20, align 4
  br label %2385

2149:                                             ; preds = %2142
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #0
  %2150 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %201) #0
  store ptr %2150, ptr %203, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #0
  %2151 = load ptr, ptr %203, align 8, !tbaa !5
  %2152 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2151, i32 0, i32 0
  store ptr %2152, ptr %204, align 8, !tbaa !5
  %2153 = load ptr, ptr %203, align 8, !tbaa !5
  %2154 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2153, i32 0, i32 2
  %2155 = load ptr, ptr %14, align 8, !tbaa !5
  %2156 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %2154, ptr noundef nonnull align 8 dereferenceable(8) %2155)
          to label %2157 unwind label %2182

2157:                                             ; preds = %2149
  br i1 %2156, label %2158, label %2369

2158:                                             ; preds = %2157
  br label %2159

2159:                                             ; preds = %2158
  %2160 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2161 unwind label %2182

2161:                                             ; preds = %2159
  br i1 %2160, label %2162, label %2186

2162:                                             ; preds = %2161
  %2163 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2163, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2165 unwind label %2182

2165:                                             ; preds = %2162
  %2166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2164, ptr noundef @.str.30)
          to label %2167 unwind label %2182

2167:                                             ; preds = %2165
  %2168 = load ptr, ptr %203, align 8, !tbaa !5
  %2169 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2168, i32 0, i32 2
  %2170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2166, ptr noundef nonnull align 8 dereferenceable(8) %2169)
          to label %2171 unwind label %2182

2171:                                             ; preds = %2167
  %2172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2170, ptr noundef @.str.31)
          to label %2173 unwind label %2182

2173:                                             ; preds = %2171
  %2174 = load ptr, ptr %203, align 8, !tbaa !5
  %2175 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2174, i32 0, i32 1
  %2176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %2172, ptr noundef nonnull align 8 dereferenceable(240) %2175)
          to label %2177 unwind label %2182

2177:                                             ; preds = %2173
  %2178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2176, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2179 unwind label %2182

2179:                                             ; preds = %2177
  %2180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2178, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2181 unwind label %2182

2181:                                             ; preds = %2179
  br label %2186

2182:                                             ; preds = %2346, %2344, %2340, %2338, %2334, %2332, %2329, %2326, %2236, %2234, %2230, %2228, %2225, %2222, %2215, %2209, %2207, %2205, %2202, %2199, %2191, %2179, %2177, %2173, %2171, %2167, %2165, %2162, %2159, %2149
  %2183 = landingpad { ptr, i32 }
          cleanup
  %2184 = extractvalue { ptr, i32 } %2183, 0
  store ptr %2184, ptr %19, align 8
  %2185 = extractvalue { ptr, i32 } %2183, 1
  store i32 %2185, ptr %20, align 4
  br label %2378

2186:                                             ; preds = %2181, %2161
  br label %2187

2187:                                             ; preds = %2186
  br label %2188

2188:                                             ; preds = %2187
  %2189 = load i8, ptr %194, align 1, !tbaa !9, !range !20, !noundef !21
  %2190 = trunc i8 %2189 to i1
  br i1 %2190, label %2215, label %2191

2191:                                             ; preds = %2188
  %2192 = load ptr, ptr %198, align 8, !tbaa !5
  %2193 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2192) #0
  %2194 = getelementptr inbounds %"struct.AST::Named", ptr %2193, i32 0, i32 2
  %2195 = load ptr, ptr %12, align 8, !tbaa !5
  %2196 = invoke noundef zeroext i1 @_ZNK3AST10Visibility10is_visibleERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(36) %2194, ptr noundef nonnull align 8 dereferenceable(32) %2195)
          to label %2197 unwind label %2182

2197:                                             ; preds = %2191
  br i1 %2196, label %2215, label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198
  %2200 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2201 unwind label %2182

2201:                                             ; preds = %2199
  br i1 %2200, label %2202, label %2212

2202:                                             ; preds = %2201
  %2203 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2203, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2205 unwind label %2182

2205:                                             ; preds = %2202
  %2206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2204, ptr noundef @.str.32)
          to label %2207 unwind label %2182

2207:                                             ; preds = %2205
  %2208 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2206, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2209 unwind label %2182

2209:                                             ; preds = %2207
  %2210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2208, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2211 unwind label %2182

2211:                                             ; preds = %2209
  br label %2212

2212:                                             ; preds = %2211, %2201
  br label %2213

2213:                                             ; preds = %2212
  br label %2214

2214:                                             ; preds = %2213
  store i32 196, ptr %28, align 4
  br label %2370

2215:                                             ; preds = %2197, %2188
  %2216 = load ptr, ptr %203, align 8, !tbaa !5
  %2217 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2216, i32 0, i32 1
  %2218 = getelementptr inbounds %"class.AST::Path", ptr %2217, i32 0, i32 2
  %2219 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %2218)
          to label %2220 unwind label %2182

2220:                                             ; preds = %2215
  br i1 %2219, label %2353, label %2221

2221:                                             ; preds = %2220
  br label %2222

2222:                                             ; preds = %2221
  %2223 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2224 unwind label %2182

2224:                                             ; preds = %2222
  br i1 %2223, label %2225, label %2239

2225:                                             ; preds = %2224
  %2226 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2226, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2228 unwind label %2182

2228:                                             ; preds = %2225
  %2229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2227, ptr noundef @.str.33)
          to label %2230 unwind label %2182

2230:                                             ; preds = %2228
  %2231 = load ptr, ptr %203, align 8, !tbaa !5
  %2232 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2231, i32 0, i32 1
  %2233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPKv(ptr noundef nonnull align 8 dereferenceable(8) %2229, ptr noundef %2232)
          to label %2234 unwind label %2182

2234:                                             ; preds = %2230
  %2235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2233, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2236 unwind label %2182

2236:                                             ; preds = %2234
  %2237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2235, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2238 unwind label %2182

2238:                                             ; preds = %2236
  br label %2239

2239:                                             ; preds = %2238, %2224
  br label %2240

2240:                                             ; preds = %2239
  br label %2241

2241:                                             ; preds = %2240
  %2242 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods acquire, align 8
  %2243 = icmp eq i8 %2242, 0
  br i1 %2243, label %2244, label %2249, !prof !11

2244:                                             ; preds = %2241
  %2245 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #0
  %2246 = icmp ne i32 %2245, 0
  br i1 %2246, label %2247, label %2249

2247:                                             ; preds = %2244
  call void @_ZNSt6vectorIPKN3AST4PathESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #0
  %2248 = call i32 @__cxa_atexit(ptr @_ZNSt6vectorIPKN3AST4PathESaIS3_EED2Ev, ptr @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #0
  br label %2249

2249:                                             ; preds = %2247, %2244, %2241
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #0
  %2250 = call ptr @_ZNSt6vectorIPKN3AST4PathESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #0
  %2251 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.310", ptr %206, i32 0, i32 0
  store ptr %2250, ptr %2251, align 8
  %2252 = call ptr @_ZNSt6vectorIPKN3AST4PathESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #0
  %2253 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.310", ptr %207, i32 0, i32 0
  store ptr %2252, ptr %2253, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #0
  %2254 = load ptr, ptr %203, align 8, !tbaa !5
  %2255 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2254, i32 0, i32 1
  store ptr %2255, ptr %208, align 8, !tbaa !5
  %2256 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.310", ptr %206, i32 0, i32 0
  %2257 = load ptr, ptr %2256, align 8
  %2258 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.310", ptr %207, i32 0, i32 0
  %2259 = load ptr, ptr %2258, align 8
  %2260 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPKN3AST4PathESt6vectorIS5_SaIS5_EEEES5_ET_SB_SB_RKT0_(ptr %2257, ptr %2259, ptr noundef nonnull align 8 dereferenceable(8) %208)
          to label %2261 unwind label %2288

2261:                                             ; preds = %2249
  %2262 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.310", ptr %205, i32 0, i32 0
  store ptr %2260, ptr %2262, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #0
  %2263 = call ptr @_ZNSt6vectorIPKN3AST4PathESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #0
  %2264 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.310", ptr %209, i32 0, i32 0
  store ptr %2263, ptr %2264, align 8
  %2265 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPPKN3AST4PathESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull align 8 dereferenceable(8) %209) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #0
  br i1 %2265, label %2266, label %2325

2266:                                             ; preds = %2261
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #0
  %2267 = load ptr, ptr %203, align 8, !tbaa !5
  %2268 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2267, i32 0, i32 1
  store ptr %2268, ptr %210, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST4PathESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %2269 unwind label %2292

2269:                                             ; preds = %2266
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #0
  call void @llvm.lifetime.start.p0(i64 184, ptr %211) #0
  %2270 = load ptr, ptr %204, align 8, !tbaa !5
  %2271 = load ptr, ptr %11, align 8, !tbaa !5
  %2272 = load ptr, ptr %13, align 8, !tbaa !5
  %2273 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2272)
          to label %2274 unwind label %2296

2274:                                             ; preds = %2269
  call void @llvm.lifetime.start.p0(i64 240, ptr %212) #0
  %2275 = load ptr, ptr %204, align 8, !tbaa !5
  %2276 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 240, ptr %213) #0
  %2277 = load ptr, ptr %13, align 8, !tbaa !5
  %2278 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2277)
          to label %2279 unwind label %2300

2279:                                             ; preds = %2274
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %213, ptr noundef nonnull align 8 dereferenceable(32) %2278)
          to label %2280 unwind label %2300

2280:                                             ; preds = %2279
  %2281 = load ptr, ptr %203, align 8, !tbaa !5
  %2282 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2281, i32 0, i32 1
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %214, ptr noundef nonnull align 8 dereferenceable(240) %2282)
          to label %2283 unwind label %2304

2283:                                             ; preds = %2280
  invoke void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %212, ptr noundef nonnull align 8 dereferenceable(8) %2275, ptr noundef nonnull align 8 dereferenceable(1112) %2276, ptr noundef nonnull align 8 dereferenceable(240) %213, ptr noundef %214)
          to label %2284 unwind label %2308

2284:                                             ; preds = %2283
  invoke void @_ZNSt4spanIPKN3AST6ModuleEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %215, ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %2285 unwind label %2312

2285:                                             ; preds = %2284
  invoke void @_Z22Resolve_Use_GetBindingRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_4PathESt4spanIPKNS2_6ModuleEEb(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %211, ptr noundef nonnull align 8 dereferenceable(8) %2270, ptr noundef nonnull align 8 dereferenceable(1112) %2271, ptr noundef nonnull align 8 dereferenceable(32) %2273, ptr noundef nonnull align 8 dereferenceable(240) %212, ptr noundef %215, i1 noundef zeroext false)
          to label %2286 unwind label %2312

2286:                                             ; preds = %2285
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %211)
          to label %2287 unwind label %2316

2287:                                             ; preds = %2286
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %211) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %212) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %214) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %213) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %213) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %212) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %211) #0
  call void @_ZNSt6vectorIPKN3AST4PathESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #0
  br label %2352

2288:                                             ; preds = %2249
  %2289 = landingpad { ptr, i32 }
          cleanup
  %2290 = extractvalue { ptr, i32 } %2289, 0
  store ptr %2290, ptr %19, align 8
  %2291 = extractvalue { ptr, i32 } %2289, 1
  store i32 %2291, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #0
  br label %2378

2292:                                             ; preds = %2266
  %2293 = landingpad { ptr, i32 }
          cleanup
  %2294 = extractvalue { ptr, i32 } %2293, 0
  store ptr %2294, ptr %19, align 8
  %2295 = extractvalue { ptr, i32 } %2293, 1
  store i32 %2295, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #0
  br label %2378

2296:                                             ; preds = %2269
  %2297 = landingpad { ptr, i32 }
          cleanup
  %2298 = extractvalue { ptr, i32 } %2297, 0
  store ptr %2298, ptr %19, align 8
  %2299 = extractvalue { ptr, i32 } %2297, 1
  store i32 %2299, ptr %20, align 4
  br label %2324

2300:                                             ; preds = %2279, %2274
  %2301 = landingpad { ptr, i32 }
          cleanup
  %2302 = extractvalue { ptr, i32 } %2301, 0
  store ptr %2302, ptr %19, align 8
  %2303 = extractvalue { ptr, i32 } %2301, 1
  store i32 %2303, ptr %20, align 4
  br label %2323

2304:                                             ; preds = %2280
  %2305 = landingpad { ptr, i32 }
          cleanup
  %2306 = extractvalue { ptr, i32 } %2305, 0
  store ptr %2306, ptr %19, align 8
  %2307 = extractvalue { ptr, i32 } %2305, 1
  store i32 %2307, ptr %20, align 4
  br label %2322

2308:                                             ; preds = %2283
  %2309 = landingpad { ptr, i32 }
          cleanup
  %2310 = extractvalue { ptr, i32 } %2309, 0
  store ptr %2310, ptr %19, align 8
  %2311 = extractvalue { ptr, i32 } %2309, 1
  store i32 %2311, ptr %20, align 4
  br label %2321

2312:                                             ; preds = %2285, %2284
  %2313 = landingpad { ptr, i32 }
          cleanup
  %2314 = extractvalue { ptr, i32 } %2313, 0
  store ptr %2314, ptr %19, align 8
  %2315 = extractvalue { ptr, i32 } %2313, 1
  store i32 %2315, ptr %20, align 4
  br label %2320

2316:                                             ; preds = %2286
  %2317 = landingpad { ptr, i32 }
          cleanup
  %2318 = extractvalue { ptr, i32 } %2317, 0
  store ptr %2318, ptr %19, align 8
  %2319 = extractvalue { ptr, i32 } %2317, 1
  store i32 %2319, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %211) #0
  br label %2320

2320:                                             ; preds = %2316, %2312
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %212) #0
  br label %2321

2321:                                             ; preds = %2320, %2308
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %214) #0
  br label %2322

2322:                                             ; preds = %2321, %2304
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %213) #0
  br label %2323

2323:                                             ; preds = %2322, %2300
  call void @llvm.lifetime.end.p0(i64 240, ptr %213) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %212) #0
  br label %2324

2324:                                             ; preds = %2323, %2296
  call void @llvm.lifetime.end.p0(i64 184, ptr %211) #0
  br label %2378

2325:                                             ; preds = %2261
  br label %2326

2326:                                             ; preds = %2325
  %2327 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2328 unwind label %2182

2328:                                             ; preds = %2326
  br i1 %2327, label %2329, label %2349

2329:                                             ; preds = %2328
  %2330 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2330, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2332 unwind label %2182

2332:                                             ; preds = %2329
  %2333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2331, ptr noundef @.str.34)
          to label %2334 unwind label %2182

2334:                                             ; preds = %2332
  %2335 = load ptr, ptr %203, align 8, !tbaa !5
  %2336 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2335, i32 0, i32 1
  %2337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPKv(ptr noundef nonnull align 8 dereferenceable(8) %2333, ptr noundef %2336)
          to label %2338 unwind label %2182

2338:                                             ; preds = %2334
  %2339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2337, ptr noundef @.str.35)
          to label %2340 unwind label %2182

2340:                                             ; preds = %2338
  %2341 = load ptr, ptr %203, align 8, !tbaa !5
  %2342 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2341, i32 0, i32 1
  %2343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %2339, ptr noundef nonnull align 8 dereferenceable(240) %2342)
          to label %2344 unwind label %2182

2344:                                             ; preds = %2340
  %2345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2343, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2346 unwind label %2182

2346:                                             ; preds = %2344
  %2347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2345, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2348 unwind label %2182

2348:                                             ; preds = %2346
  br label %2349

2349:                                             ; preds = %2348, %2328
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

2352:                                             ; preds = %2351, %2287
  br label %2368

2353:                                             ; preds = %2220
  call void @llvm.lifetime.start.p0(i64 184, ptr %216) #0
  %2354 = load ptr, ptr %203, align 8, !tbaa !5
  %2355 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2354, i32 0, i32 1
  %2356 = getelementptr inbounds %"class.AST::Path", ptr %2355, i32 0, i32 2
  invoke void @_ZNK3AST4Path8Bindings5cloneEv(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %216, ptr noundef nonnull align 8 dereferenceable(184) %2356)
          to label %2357 unwind label %2359

2357:                                             ; preds = %2353
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %216)
          to label %2358 unwind label %2363

2358:                                             ; preds = %2357
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %216) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %216) #0
  br label %2368

2359:                                             ; preds = %2353
  %2360 = landingpad { ptr, i32 }
          cleanup
  %2361 = extractvalue { ptr, i32 } %2360, 0
  store ptr %2361, ptr %19, align 8
  %2362 = extractvalue { ptr, i32 } %2360, 1
  store i32 %2362, ptr %20, align 4
  br label %2367

2363:                                             ; preds = %2357
  %2364 = landingpad { ptr, i32 }
          cleanup
  %2365 = extractvalue { ptr, i32 } %2364, 0
  store ptr %2365, ptr %19, align 8
  %2366 = extractvalue { ptr, i32 } %2364, 1
  store i32 %2366, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %216) #0
  br label %2367

2367:                                             ; preds = %2363, %2359
  call void @llvm.lifetime.end.p0(i64 184, ptr %216) #0
  br label %2378

2368:                                             ; preds = %2358, %2352
  store i32 196, ptr %28, align 4
  br label %2370

2369:                                             ; preds = %2157
  store i32 0, ptr %28, align 4
  br label %2370

2370:                                             ; preds = %2369, %2368, %2214
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #0
  %2371 = load i32, ptr %28, align 4
  switch i32 %2371, label %2373 [
    i32 0, label %2372
  ]

2372:                                             ; preds = %2370
  store i32 0, ptr %28, align 4
  br label %2373

2373:                                             ; preds = %2372, %2370
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #0
  %2374 = load i32, ptr %28, align 4
  switch i32 %2374, label %3448 [
    i32 0, label %2375
    i32 196, label %2376
  ]

2375:                                             ; preds = %2373
  br label %2376

2376:                                             ; preds = %2375, %2373
  %2377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %201) #0
  br label %2142

2378:                                             ; preds = %2367, %2324, %2292, %2288, %2182
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #0
  br label %2385

2379:                                             ; preds = %2144
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #0
  store i32 0, ptr %28, align 4
  br label %2380

2380:                                             ; preds = %2379, %2123
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #0
  %2381 = load i32, ptr %28, align 4
  switch i32 %2381, label %3448 [
    i32 0, label %2382
    i32 194, label %2383
  ]

2382:                                             ; preds = %2380
  br label %2383

2383:                                             ; preds = %2382, %2380
  %2384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %196) #0
  br label %2109

2385:                                             ; preds = %2378, %2145
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #0
  br label %2386

2386:                                             ; preds = %2385, %2124
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #0
  br label %3436

2387:                                             ; preds = %2111
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #0
  %2388 = load ptr, ptr %13, align 8, !tbaa !5
  %2389 = getelementptr inbounds %"class.AST::Module", ptr %2388, i32 0, i32 1
  store ptr %2389, ptr %217, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #0
  %2390 = load ptr, ptr %217, align 8, !tbaa !5
  %2391 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2390) #0
  %2392 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %218, i32 0, i32 0
  store ptr %2391, ptr %2392, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #0
  %2393 = load ptr, ptr %217, align 8, !tbaa !5
  %2394 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2393) #0
  %2395 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %219, i32 0, i32 0
  store ptr %2394, ptr %2395, align 8
  br label %2396

2396:                                             ; preds = %3364, %2387
  %2397 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef nonnull align 8 dereferenceable(8) %219) #0
  br i1 %2397, label %2399, label %2398

2398:                                             ; preds = %2396
  store i32 205, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #0
  br label %3368

2399:                                             ; preds = %2396
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #0
  %2400 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %218) #0
  store ptr %2400, ptr %220, align 8, !tbaa !5
  %2401 = load ptr, ptr %220, align 8, !tbaa !5
  %2402 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2401) #0
  %2403 = getelementptr inbounds %"struct.AST::Named", ptr %2402, i32 0, i32 4
  %2404 = invoke noundef zeroext i1 @_ZNK3AST4Item6is_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %2403)
          to label %2405 unwind label %2407

2405:                                             ; preds = %2399
  br i1 %2404, label %2411, label %2406

2406:                                             ; preds = %2405
  store i32 206, ptr %28, align 4
  br label %3361

2407:                                             ; preds = %2399
  %2408 = landingpad { ptr, i32 }
          cleanup
  %2409 = extractvalue { ptr, i32 } %2408, 0
  store ptr %2409, ptr %19, align 8
  %2410 = extractvalue { ptr, i32 } %2408, 1
  store i32 %2410, ptr %20, align 4
  br label %3367

2411:                                             ; preds = %2405
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #0
  %2412 = load ptr, ptr %220, align 8, !tbaa !5
  %2413 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2412) #0
  %2414 = getelementptr inbounds %"struct.AST::Named", ptr %2413, i32 0, i32 4
  %2415 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %2414)
          to label %2416 unwind label %2428

2416:                                             ; preds = %2411
  store ptr %2415, ptr %221, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #0
  %2417 = load ptr, ptr %221, align 8, !tbaa !5
  %2418 = getelementptr inbounds %"struct.AST::UseItem", ptr %2417, i32 0, i32 1
  store ptr %2418, ptr %222, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #0
  %2419 = load ptr, ptr %222, align 8, !tbaa !5
  %2420 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2419) #0
  %2421 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.304", ptr %223, i32 0, i32 0
  store ptr %2420, ptr %2421, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #0
  %2422 = load ptr, ptr %222, align 8, !tbaa !5
  %2423 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2422) #0
  %2424 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.304", ptr %224, i32 0, i32 0
  store ptr %2423, ptr %2424, align 8
  br label %2425

2425:                                             ; preds = %3357, %2416
  %2426 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull align 8 dereferenceable(8) %224) #0
  br i1 %2426, label %2432, label %2427

2427:                                             ; preds = %2425
  store i32 207, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #0
  br label %3360

2428:                                             ; preds = %2411
  %2429 = landingpad { ptr, i32 }
          cleanup
  %2430 = extractvalue { ptr, i32 } %2429, 0
  store ptr %2430, ptr %19, align 8
  %2431 = extractvalue { ptr, i32 } %2429, 1
  store i32 %2431, ptr %20, align 4
  br label %3366

2432:                                             ; preds = %2425
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #0
  %2433 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %223) #0
  store ptr %2433, ptr %225, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #0
  %2434 = load ptr, ptr %225, align 8, !tbaa !5
  %2435 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2434, i32 0, i32 0
  store ptr %2435, ptr %226, align 8, !tbaa !5
  %2436 = load ptr, ptr %225, align 8, !tbaa !5
  %2437 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2436, i32 0, i32 2
  %2438 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %2437, ptr noundef @.str.2)
          to label %2439 unwind label %2441

2439:                                             ; preds = %2432
  br i1 %2438, label %2440, label %2445

2440:                                             ; preds = %2439
  store i32 208, ptr %28, align 4
  br label %3351

2441:                                             ; preds = %2477, %2475, %2473, %2470, %2468, %2464, %2462, %2459, %2456, %2448, %2432
  %2442 = landingpad { ptr, i32 }
          cleanup
  %2443 = extractvalue { ptr, i32 } %2442, 0
  store ptr %2443, ptr %19, align 8
  %2444 = extractvalue { ptr, i32 } %2442, 1
  store i32 %2444, ptr %20, align 4
  br label %3359

2445:                                             ; preds = %2439
  %2446 = load i8, ptr %194, align 1, !tbaa !9, !range !20, !noundef !21
  %2447 = trunc i8 %2446 to i1
  br i1 %2447, label %2455, label %2448

2448:                                             ; preds = %2445
  %2449 = load ptr, ptr %220, align 8, !tbaa !5
  %2450 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2449) #0
  %2451 = getelementptr inbounds %"struct.AST::Named", ptr %2450, i32 0, i32 2
  %2452 = load ptr, ptr %12, align 8, !tbaa !5
  %2453 = invoke noundef zeroext i1 @_ZNK3AST10Visibility10is_visibleERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(36) %2451, ptr noundef nonnull align 8 dereferenceable(32) %2452)
          to label %2454 unwind label %2441

2454:                                             ; preds = %2448
  br i1 %2453, label %2455, label %3350

2455:                                             ; preds = %2454, %2445
  br label %2456

2456:                                             ; preds = %2455
  %2457 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2458 unwind label %2441

2458:                                             ; preds = %2456
  br i1 %2457, label %2459, label %2480

2459:                                             ; preds = %2458
  %2460 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2460, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2462 unwind label %2441

2462:                                             ; preds = %2459
  %2463 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2461, ptr noundef @.str.36)
          to label %2464 unwind label %2441

2464:                                             ; preds = %2462
  %2465 = load ptr, ptr %225, align 8, !tbaa !5
  %2466 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2465, i32 0, i32 1
  %2467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %2463, ptr noundef nonnull align 8 dereferenceable(240) %2466)
          to label %2468 unwind label %2441

2468:                                             ; preds = %2464
  %2469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2467, ptr noundef @.str.37)
          to label %2470 unwind label %2441

2470:                                             ; preds = %2468
  %2471 = load ptr, ptr %13, align 8, !tbaa !5
  %2472 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2471)
          to label %2473 unwind label %2441

2473:                                             ; preds = %2470
  %2474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %2469, ptr noundef nonnull align 8 dereferenceable(32) %2472)
          to label %2475 unwind label %2441

2475:                                             ; preds = %2473
  %2476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2474, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2477 unwind label %2441

2477:                                             ; preds = %2475
  %2478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2476, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2479 unwind label %2441

2479:                                             ; preds = %2477
  br label %2480

2480:                                             ; preds = %2479, %2458
  br label %2481

2481:                                             ; preds = %2480
  br label %2482

2482:                                             ; preds = %2481
  call void @llvm.lifetime.start.p0(i64 184, ptr %227) #0
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %227)
          to label %2483 unwind label %2509

2483:                                             ; preds = %2482
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #0
  %2484 = load ptr, ptr %225, align 8, !tbaa !5
  %2485 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2484, i32 0, i32 1
  %2486 = getelementptr inbounds %"class.AST::Path", ptr %2485, i32 0, i32 2
  store ptr %2486, ptr %228, align 8, !tbaa !5
  %2487 = load ptr, ptr %228, align 8, !tbaa !5
  %2488 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2487, i32 0, i32 1
  %2489 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %2488)
          to label %2490 unwind label %2513

2490:                                             ; preds = %2483
  br i1 %2489, label %2491, label %2664

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  %2493 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2494 unwind label %2513

2494:                                             ; preds = %2492
  br i1 %2493, label %2495, label %2517

2495:                                             ; preds = %2494
  %2496 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2497 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2496, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2498 unwind label %2513

2498:                                             ; preds = %2495
  %2499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2497, ptr noundef @.str.38)
          to label %2500 unwind label %2513

2500:                                             ; preds = %2498
  %2501 = load ptr, ptr %225, align 8, !tbaa !5
  %2502 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2501, i32 0, i32 1
  %2503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %2499, ptr noundef nonnull align 8 dereferenceable(240) %2502)
          to label %2504 unwind label %2513

2504:                                             ; preds = %2500
  %2505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2503, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2506 unwind label %2513

2506:                                             ; preds = %2504
  %2507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2505, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2508 unwind label %2513

2508:                                             ; preds = %2506
  br label %2517

2509:                                             ; preds = %2482
  %2510 = landingpad { ptr, i32 }
          cleanup
  %2511 = extractvalue { ptr, i32 } %2510, 0
  store ptr %2511, ptr %19, align 8
  %2512 = extractvalue { ptr, i32 } %2510, 1
  store i32 %2512, ptr %20, align 4
  br label %3349

2513:                                             ; preds = %2657, %2655, %2651, %2649, %2646, %2643, %2583, %2581, %2577, %2575, %2572, %2569, %2564, %2506, %2504, %2500, %2498, %2495, %2492, %2483
  %2514 = landingpad { ptr, i32 }
          cleanup
  %2515 = extractvalue { ptr, i32 } %2514, 0
  store ptr %2515, ptr %19, align 8
  %2516 = extractvalue { ptr, i32 } %2514, 1
  store i32 %2516, ptr %20, align 4
  br label %3348

2517:                                             ; preds = %2508, %2494
  br label %2518

2518:                                             ; preds = %2517
  br label %2519

2519:                                             ; preds = %2518
  %2520 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs acquire, align 8
  %2521 = icmp eq i8 %2520, 0
  br i1 %2521, label %2522, label %2527, !prof !11

2522:                                             ; preds = %2519
  %2523 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  %2524 = icmp ne i32 %2523, 0
  br i1 %2524, label %2525, label %2527

2525:                                             ; preds = %2522
  call void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  %2526 = call i32 @__cxa_atexit(ptr @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EED2Ev, ptr @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  br label %2527

2527:                                             ; preds = %2525, %2522, %2519
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #0
  %2528 = call ptr @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  %2529 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.316", ptr %230, i32 0, i32 0
  store ptr %2528, ptr %2529, align 8
  %2530 = call ptr @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  %2531 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.316", ptr %231, i32 0, i32 0
  store ptr %2530, ptr %2531, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #0
  %2532 = load ptr, ptr %221, align 8, !tbaa !5
  store ptr %2532, ptr %232, align 8, !tbaa !5
  %2533 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.316", ptr %230, i32 0, i32 0
  %2534 = load ptr, ptr %2533, align 8
  %2535 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.316", ptr %231, i32 0, i32 0
  %2536 = load ptr, ptr %2535, align 8
  %2537 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPKN3AST7UseItemESt6vectorIS5_SaIS5_EEEES5_ET_SB_SB_RKT0_(ptr %2534, ptr %2536, ptr noundef nonnull align 8 dereferenceable(8) %232)
          to label %2538 unwind label %2586

2538:                                             ; preds = %2527
  %2539 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.316", ptr %229, i32 0, i32 0
  store ptr %2537, ptr %2539, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #0
  %2540 = call ptr @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  %2541 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.316", ptr %233, i32 0, i32 0
  store ptr %2540, ptr %2541, align 8
  %2542 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPPKN3AST7UseItemESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef nonnull align 8 dereferenceable(8) %233) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #0
  br i1 %2542, label %2543, label %2642

2543:                                             ; preds = %2538
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #0
  %2544 = load ptr, ptr %221, align 8, !tbaa !5
  store ptr %2544, ptr %234, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs, ptr noundef nonnull align 8 dereferenceable(8) %234)
          to label %2545 unwind label %2590

2545:                                             ; preds = %2543
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #0
  call void @llvm.lifetime.start.p0(i64 184, ptr %235) #0
  %2546 = load ptr, ptr %226, align 8, !tbaa !5
  %2547 = load ptr, ptr %11, align 8, !tbaa !5
  %2548 = load ptr, ptr %13, align 8, !tbaa !5
  %2549 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2548)
          to label %2550 unwind label %2594

2550:                                             ; preds = %2545
  call void @llvm.lifetime.start.p0(i64 240, ptr %236) #0
  %2551 = load ptr, ptr %226, align 8, !tbaa !5
  %2552 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 240, ptr %237) #0
  %2553 = load ptr, ptr %13, align 8, !tbaa !5
  %2554 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2553)
          to label %2555 unwind label %2598

2555:                                             ; preds = %2550
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %237, ptr noundef nonnull align 8 dereferenceable(32) %2554)
          to label %2556 unwind label %2598

2556:                                             ; preds = %2555
  %2557 = load ptr, ptr %225, align 8, !tbaa !5
  %2558 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2557, i32 0, i32 1
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %238, ptr noundef nonnull align 8 dereferenceable(240) %2558)
          to label %2559 unwind label %2602

2559:                                             ; preds = %2556
  invoke void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %236, ptr noundef nonnull align 8 dereferenceable(8) %2551, ptr noundef nonnull align 8 dereferenceable(1112) %2552, ptr noundef nonnull align 8 dereferenceable(240) %237, ptr noundef %238)
          to label %2560 unwind label %2606

2560:                                             ; preds = %2559
  invoke void @_ZNSt4spanIPKN3AST6ModuleEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %239, ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %2561 unwind label %2610

2561:                                             ; preds = %2560
  invoke void @_Z22Resolve_Use_GetBindingRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_4PathESt4spanIPKNS2_6ModuleEEb(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %235, ptr noundef nonnull align 8 dereferenceable(8) %2546, ptr noundef nonnull align 8 dereferenceable(1112) %2547, ptr noundef nonnull align 8 dereferenceable(32) %2549, ptr noundef nonnull align 8 dereferenceable(240) %236, ptr noundef %239, i1 noundef zeroext true)
          to label %2562 unwind label %2610

2562:                                             ; preds = %2561
  %2563 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZN3AST4Path8BindingsaSEOS1_(ptr noundef nonnull align 8 dereferenceable(184) %227, ptr noundef nonnull align 8 dereferenceable(184) %235)
          to label %2564 unwind label %2614

2564:                                             ; preds = %2562
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %235) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %236) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %238) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %237) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %237) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %236) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %235) #0
  %2565 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %227, i32 0, i32 1
  %2566 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %2565)
          to label %2567 unwind label %2513

2567:                                             ; preds = %2564
  br i1 %2566, label %2568, label %2626

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  %2570 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2571 unwind label %2513

2571:                                             ; preds = %2569
  br i1 %2570, label %2572, label %2623

2572:                                             ; preds = %2571
  %2573 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2573, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2575 unwind label %2513

2575:                                             ; preds = %2572
  %2576 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2574, ptr noundef @.str.39)
          to label %2577 unwind label %2513

2577:                                             ; preds = %2575
  %2578 = load ptr, ptr %225, align 8, !tbaa !5
  %2579 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2578, i32 0, i32 1
  %2580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %2576, ptr noundef nonnull align 8 dereferenceable(240) %2579)
          to label %2581 unwind label %2513

2581:                                             ; preds = %2577
  %2582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2580, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2583 unwind label %2513

2583:                                             ; preds = %2581
  %2584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2582, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2585 unwind label %2513

2585:                                             ; preds = %2583
  br label %2623

2586:                                             ; preds = %2527
  %2587 = landingpad { ptr, i32 }
          cleanup
  %2588 = extractvalue { ptr, i32 } %2587, 0
  store ptr %2588, ptr %19, align 8
  %2589 = extractvalue { ptr, i32 } %2587, 1
  store i32 %2589, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #0
  br label %3348

2590:                                             ; preds = %2543
  %2591 = landingpad { ptr, i32 }
          cleanup
  %2592 = extractvalue { ptr, i32 } %2591, 0
  store ptr %2592, ptr %19, align 8
  %2593 = extractvalue { ptr, i32 } %2591, 1
  store i32 %2593, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #0
  br label %3348

2594:                                             ; preds = %2545
  %2595 = landingpad { ptr, i32 }
          cleanup
  %2596 = extractvalue { ptr, i32 } %2595, 0
  store ptr %2596, ptr %19, align 8
  %2597 = extractvalue { ptr, i32 } %2595, 1
  store i32 %2597, ptr %20, align 4
  br label %2622

2598:                                             ; preds = %2555, %2550
  %2599 = landingpad { ptr, i32 }
          cleanup
  %2600 = extractvalue { ptr, i32 } %2599, 0
  store ptr %2600, ptr %19, align 8
  %2601 = extractvalue { ptr, i32 } %2599, 1
  store i32 %2601, ptr %20, align 4
  br label %2621

2602:                                             ; preds = %2556
  %2603 = landingpad { ptr, i32 }
          cleanup
  %2604 = extractvalue { ptr, i32 } %2603, 0
  store ptr %2604, ptr %19, align 8
  %2605 = extractvalue { ptr, i32 } %2603, 1
  store i32 %2605, ptr %20, align 4
  br label %2620

2606:                                             ; preds = %2559
  %2607 = landingpad { ptr, i32 }
          cleanup
  %2608 = extractvalue { ptr, i32 } %2607, 0
  store ptr %2608, ptr %19, align 8
  %2609 = extractvalue { ptr, i32 } %2607, 1
  store i32 %2609, ptr %20, align 4
  br label %2619

2610:                                             ; preds = %2561, %2560
  %2611 = landingpad { ptr, i32 }
          cleanup
  %2612 = extractvalue { ptr, i32 } %2611, 0
  store ptr %2612, ptr %19, align 8
  %2613 = extractvalue { ptr, i32 } %2611, 1
  store i32 %2613, ptr %20, align 4
  br label %2618

2614:                                             ; preds = %2562
  %2615 = landingpad { ptr, i32 }
          cleanup
  %2616 = extractvalue { ptr, i32 } %2615, 0
  store ptr %2616, ptr %19, align 8
  %2617 = extractvalue { ptr, i32 } %2615, 1
  store i32 %2617, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %235) #0
  br label %2618

2618:                                             ; preds = %2614, %2610
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %236) #0
  br label %2619

2619:                                             ; preds = %2618, %2606
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %238) #0
  br label %2620

2620:                                             ; preds = %2619, %2602
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %237) #0
  br label %2621

2621:                                             ; preds = %2620, %2598
  call void @llvm.lifetime.end.p0(i64 240, ptr %237) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %236) #0
  br label %2622

2622:                                             ; preds = %2621, %2594
  call void @llvm.lifetime.end.p0(i64 184, ptr %235) #0
  br label %3348

2623:                                             ; preds = %2585, %2571
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  call void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  store i32 208, ptr %28, align 4
  br label %3345

2626:                                             ; preds = %2567
  call void @llvm.lifetime.start.p0(i64 184, ptr %240) #0
  invoke void @_ZNK3AST4Path8Bindings5cloneEv(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %240, ptr noundef nonnull align 8 dereferenceable(184) %227)
          to label %2627 unwind label %2633

2627:                                             ; preds = %2626
  %2628 = load ptr, ptr %225, align 8, !tbaa !5
  %2629 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2628, i32 0, i32 1
  %2630 = getelementptr inbounds %"class.AST::Path", ptr %2629, i32 0, i32 2
  %2631 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZN3AST4Path8BindingsaSEOS1_(ptr noundef nonnull align 8 dereferenceable(184) %2630, ptr noundef nonnull align 8 dereferenceable(184) %240)
          to label %2632 unwind label %2637

2632:                                             ; preds = %2627
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %240) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %240) #0
  store ptr %227, ptr %228, align 8, !tbaa !5
  call void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #0
  br label %2663

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

2637:                                             ; preds = %2627
  %2638 = landingpad { ptr, i32 }
          cleanup
  %2639 = extractvalue { ptr, i32 } %2638, 0
  store ptr %2639, ptr %19, align 8
  %2640 = extractvalue { ptr, i32 } %2638, 1
  store i32 %2640, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %240) #0
  br label %2641

2641:                                             ; preds = %2637, %2633
  call void @llvm.lifetime.end.p0(i64 184, ptr %240) #0
  br label %3348

2642:                                             ; preds = %2538
  br label %2643

2643:                                             ; preds = %2642
  %2644 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2645 unwind label %2513

2645:                                             ; preds = %2643
  br i1 %2644, label %2646, label %2660

2646:                                             ; preds = %2645
  %2647 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2648 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2647, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2649 unwind label %2513

2649:                                             ; preds = %2646
  %2650 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2648, ptr noundef @.str.40)
          to label %2651 unwind label %2513

2651:                                             ; preds = %2649
  %2652 = load ptr, ptr %225, align 8, !tbaa !5
  %2653 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2652, i32 0, i32 1
  %2654 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %2650, ptr noundef nonnull align 8 dereferenceable(240) %2653)
          to label %2655 unwind label %2513

2655:                                             ; preds = %2651
  %2656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2654, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2657 unwind label %2513

2657:                                             ; preds = %2655
  %2658 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2656, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2659 unwind label %2513

2659:                                             ; preds = %2657
  br label %2660

2660:                                             ; preds = %2659, %2645
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661
  store i32 208, ptr %28, align 4
  br label %3345

2663:                                             ; preds = %2632
  br label %2665

2664:                                             ; preds = %2490
  br label %2665

2665:                                             ; preds = %2664, %2663
  call void @llvm.lifetime.start.p0(i64 1, ptr %241) #0
  store i8 1, ptr %241, align 1, !tbaa !9
  br label %2666

2666:                                             ; preds = %3343, %2665
  %2667 = load i8, ptr %241, align 1, !tbaa !9, !range !20, !noundef !21
  %2668 = trunc i8 %2667 to i1
  br i1 %2668, label %2670, label %2669

2669:                                             ; preds = %2666
  store i32 217, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #0
  br label %3344

2670:                                             ; preds = %2666
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #0
  %2671 = load ptr, ptr %228, align 8, !tbaa !5
  %2672 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2671, i32 0, i32 1
  %2673 = getelementptr inbounds %"struct.AST::PathBinding.23", ptr %2672, i32 0, i32 1
  store ptr %2673, ptr %242, align 8, !tbaa !5
  br label %2674

2674:                                             ; preds = %3340, %2670
  %2675 = load i8, ptr %241, align 1, !tbaa !9, !range !20, !noundef !21
  %2676 = trunc i8 %2675 to i1
  br i1 %2676, label %2678, label %2677

2677:                                             ; preds = %2674
  store i32 220, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #0
  br label %3342

2678:                                             ; preds = %2674
  %2679 = load ptr, ptr %242, align 8, !tbaa !5
  %2680 = invoke noundef i32 @_ZNK3AST16PathBinding_Type3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %2679)
          to label %2681 unwind label %2682

2681:                                             ; preds = %2678
  switch i32 %2680, label %3316 [
    i32 0, label %2686
    i32 2, label %2687
    i32 3, label %2802
    i32 5, label %3045
  ]

2682:                                             ; preds = %3323, %2678
  %2683 = landingpad { ptr, i32 }
          cleanup
  %2684 = extractvalue { ptr, i32 } %2683, 0
  store ptr %2684, ptr %19, align 8
  %2685 = extractvalue { ptr, i32 } %2683, 1
  store i32 %2685, ptr %20, align 4
  br label %3341

2686:                                             ; preds = %2681
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 654, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #12
  unreachable

2687:                                             ; preds = %2681
  call void @llvm.lifetime.start.p0(i64 1, ptr %243) #0
  store i8 1, ptr %243, align 1, !tbaa !9
  br label %2688

2688:                                             ; preds = %2800, %2687
  %2689 = load i8, ptr %243, align 1, !tbaa !9, !range !20, !noundef !21
  %2690 = trunc i8 %2689 to i1
  br i1 %2690, label %2692, label %2691

2691:                                             ; preds = %2688
  store i32 224, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #0
  br label %2801

2692:                                             ; preds = %2688
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #0
  %2693 = load ptr, ptr %242, align 8, !tbaa !5
  %2694 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST16PathBinding_Type8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(32) %2693)
          to label %2695 unwind label %2701

2695:                                             ; preds = %2692
  store ptr %2694, ptr %244, align 8, !tbaa !5
  br label %2696

2696:                                             ; preds = %2741, %2695
  %2697 = load ptr, ptr %244, align 8, !tbaa !5
  %2698 = load i8, ptr %243, align 1, !tbaa !9, !range !20, !noundef !21
  %2699 = trunc i8 %2698 to i1
  br i1 %2699, label %2705, label %2700

2700:                                             ; preds = %2696
  store i32 227, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #0
  br label %2799

2701:                                             ; preds = %2692
  %2702 = landingpad { ptr, i32 }
          cleanup
  %2703 = extractvalue { ptr, i32 } %2702, 0
  store ptr %2703, ptr %19, align 8
  %2704 = extractvalue { ptr, i32 } %2702, 1
  store i32 %2704, ptr %20, align 4
  br label %2798

2705:                                             ; preds = %2696
  %2706 = load ptr, ptr %244, align 8, !tbaa !5
  %2707 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Crate", ptr %2706, i32 0, i32 0
  %2708 = load ptr, ptr %2707, align 8, !tbaa !39
  %2709 = icmp ne ptr %2708, null
  br i1 %2709, label %2710, label %2711

2710:                                             ; preds = %2705
  br label %2713

2711:                                             ; preds = %2705
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.4, i32 noundef 656, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #12
  unreachable

2712:                                             ; No predecessors!
  br label %2713

2713:                                             ; preds = %2712, %2710
  call void @llvm.lifetime.start.p0(i64 184, ptr %245) #0
  %2714 = load ptr, ptr %226, align 8, !tbaa !5
  %2715 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 240, ptr %246) #0
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef @.str.2)
          to label %2716 unwind label %2742

2716:                                             ; preds = %2713
  call void @llvm.lifetime.start.p0(i64 40, ptr %250) #0
  store i1 true, ptr %254, align 1
  store ptr %250, ptr %251, align 8
  %2717 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef nonnull align 8 dereferenceable(8) %2717)
          to label %2718 unwind label %2746

2718:                                             ; preds = %2716
  invoke void @_ZN3AST10PathParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %253)
          to label %2719 unwind label %2750

2719:                                             ; preds = %2718
  invoke void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40) %250, ptr noundef %252, ptr noundef %253)
          to label %2720 unwind label %2754

2720:                                             ; preds = %2719
  store i1 false, ptr %254, align 1
  %2721 = getelementptr inbounds %"class.std::initializer_list.317", ptr %249, i32 0, i32 0
  store ptr %250, ptr %2721, align 8, !tbaa !108
  %2722 = getelementptr inbounds %"class.std::initializer_list.317", ptr %249, i32 0, i32 1
  store i64 1, ptr %2722, align 8, !tbaa !110
  call void @llvm.lifetime.start.p0(i64 1, ptr %255) #0
  call void @_ZNSaIN3AST8PathNodeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #0
  %2723 = getelementptr inbounds { ptr, i64 }, ptr %249, i32 0, i32 0
  %2724 = load ptr, ptr %2723, align 8
  %2725 = getelementptr inbounds { ptr, i64 }, ptr %249, i32 0, i32 1
  %2726 = load i64, ptr %2725, align 8
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %248, ptr %2724, i64 %2726, ptr noundef nonnull align 1 dereferenceable(1) %255)
          to label %2727 unwind label %2758

2727:                                             ; preds = %2720
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %246, ptr noundef %247, ptr noundef %248)
          to label %2728 unwind label %2762

2728:                                             ; preds = %2727
  %2729 = load ptr, ptr %244, align 8, !tbaa !5
  %2730 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Crate", ptr %2729, i32 0, i32 0
  %2731 = load ptr, ptr %2730, align 8, !tbaa !39
  invoke void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_4PathERKNS2_11ExternCrateEj(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %245, ptr noundef nonnull align 8 dereferenceable(8) %2714, ptr noundef nonnull align 8 dereferenceable(1112) %2715, ptr noundef nonnull align 8 dereferenceable(240) %246, ptr noundef nonnull align 8 dereferenceable(56) %2731, i32 noundef 0)
          to label %2732 unwind label %2766

2732:                                             ; preds = %2728
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %245)
          to label %2733 unwind label %2770

2733:                                             ; preds = %2732
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %245) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %246) #0
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %248) #0
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #0
  %2734 = getelementptr inbounds [1 x %"class.AST::PathNode"], ptr %250, i32 0, i32 0
  %2735 = getelementptr inbounds %"class.AST::PathNode", ptr %2734, i64 1
  br label %2736

2736:                                             ; preds = %2736, %2733
  %2737 = phi ptr [ %2735, %2733 ], [ %2738, %2736 ]
  %2738 = getelementptr inbounds %"class.AST::PathNode", ptr %2737, i64 -1
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2738) #0
  %2739 = icmp eq ptr %2738, %2734
  br i1 %2739, label %2740, label %2736

2740:                                             ; preds = %2736
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %253) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #0
  call void @llvm.lifetime.end.p0(i64 40, ptr %250) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %246) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %245) #0
  br label %2741

2741:                                             ; preds = %2740
  store i8 0, ptr %243, align 1, !tbaa !9
  br label %2696, !llvm.loop !111

2742:                                             ; preds = %2713
  %2743 = landingpad { ptr, i32 }
          cleanup
  %2744 = extractvalue { ptr, i32 } %2743, 0
  store ptr %2744, ptr %19, align 8
  %2745 = extractvalue { ptr, i32 } %2743, 1
  store i32 %2745, ptr %20, align 4
  br label %2797

2746:                                             ; preds = %2716
  %2747 = landingpad { ptr, i32 }
          cleanup
  %2748 = extractvalue { ptr, i32 } %2747, 0
  store ptr %2748, ptr %19, align 8
  %2749 = extractvalue { ptr, i32 } %2747, 1
  store i32 %2749, ptr %20, align 4
  br label %2786

2750:                                             ; preds = %2718
  %2751 = landingpad { ptr, i32 }
          cleanup
  %2752 = extractvalue { ptr, i32 } %2751, 0
  store ptr %2752, ptr %19, align 8
  %2753 = extractvalue { ptr, i32 } %2751, 1
  store i32 %2753, ptr %20, align 4
  br label %2785

2754:                                             ; preds = %2719
  %2755 = landingpad { ptr, i32 }
          cleanup
  %2756 = extractvalue { ptr, i32 } %2755, 0
  store ptr %2756, ptr %19, align 8
  %2757 = extractvalue { ptr, i32 } %2755, 1
  store i32 %2757, ptr %20, align 4
  br label %2784

2758:                                             ; preds = %2720
  %2759 = landingpad { ptr, i32 }
          cleanup
  %2760 = extractvalue { ptr, i32 } %2759, 0
  store ptr %2760, ptr %19, align 8
  %2761 = extractvalue { ptr, i32 } %2759, 1
  store i32 %2761, ptr %20, align 4
  br label %2776

2762:                                             ; preds = %2727
  %2763 = landingpad { ptr, i32 }
          cleanup
  %2764 = extractvalue { ptr, i32 } %2763, 0
  store ptr %2764, ptr %19, align 8
  %2765 = extractvalue { ptr, i32 } %2763, 1
  store i32 %2765, ptr %20, align 4
  br label %2775

2766:                                             ; preds = %2728
  %2767 = landingpad { ptr, i32 }
          cleanup
  %2768 = extractvalue { ptr, i32 } %2767, 0
  store ptr %2768, ptr %19, align 8
  %2769 = extractvalue { ptr, i32 } %2767, 1
  store i32 %2769, ptr %20, align 4
  br label %2774

2770:                                             ; preds = %2732
  %2771 = landingpad { ptr, i32 }
          cleanup
  %2772 = extractvalue { ptr, i32 } %2771, 0
  store ptr %2772, ptr %19, align 8
  %2773 = extractvalue { ptr, i32 } %2771, 1
  store i32 %2773, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %245) #0
  br label %2774

2774:                                             ; preds = %2770, %2766
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %246) #0
  br label %2775

2775:                                             ; preds = %2774, %2762
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %248) #0
  br label %2776

2776:                                             ; preds = %2775, %2758
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #0
  %2777 = getelementptr inbounds [1 x %"class.AST::PathNode"], ptr %250, i32 0, i32 0
  %2778 = getelementptr inbounds %"class.AST::PathNode", ptr %2777, i64 1
  br label %2779

2779:                                             ; preds = %2779, %2776
  %2780 = phi ptr [ %2778, %2776 ], [ %2781, %2779 ]
  %2781 = getelementptr inbounds %"class.AST::PathNode", ptr %2780, i64 -1
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2781) #0
  %2782 = icmp eq ptr %2781, %2777
  br i1 %2782, label %2783, label %2779

2783:                                             ; preds = %2779
  br label %2784

2784:                                             ; preds = %2783, %2754
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %253) #0
  br label %2785

2785:                                             ; preds = %2784, %2750
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #0
  br label %2786

2786:                                             ; preds = %2785, %2746
  %2787 = load i1, ptr %254, align 1
  br i1 %2787, label %2788, label %2796

2788:                                             ; preds = %2786
  %2789 = load ptr, ptr %251, align 8
  %2790 = icmp eq ptr %250, %2789
  br i1 %2790, label %2795, label %2791

2791:                                             ; preds = %2791, %2788
  %2792 = phi ptr [ %2789, %2788 ], [ %2793, %2791 ]
  %2793 = getelementptr inbounds %"class.AST::PathNode", ptr %2792, i64 -1
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2793) #0
  %2794 = icmp eq ptr %2793, %250
  br i1 %2794, label %2795, label %2791

2795:                                             ; preds = %2791, %2788
  br label %2796

2796:                                             ; preds = %2795, %2786
  call void @llvm.lifetime.end.p0(i64 40, ptr %250) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #0
  br label %2797

2797:                                             ; preds = %2796, %2742
  call void @llvm.lifetime.end.p0(i64 240, ptr %246) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %245) #0
  br label %2798

2798:                                             ; preds = %2797, %2701
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #0
  br label %3341

2799:                                             ; preds = %2700
  br label %2800

2800:                                             ; preds = %2799
  store i8 0, ptr %243, align 1, !tbaa !9
  br label %2688, !llvm.loop !112

2801:                                             ; preds = %2691
  br label %3339

2802:                                             ; preds = %2681
  call void @llvm.lifetime.start.p0(i64 1, ptr %256) #0
  store i8 1, ptr %256, align 1, !tbaa !9
  br label %2803

2803:                                             ; preds = %3043, %2802
  %2804 = load i8, ptr %256, align 1, !tbaa !9, !range !20, !noundef !21
  %2805 = trunc i8 %2804 to i1
  br i1 %2805, label %2807, label %2806

2806:                                             ; preds = %2803
  store i32 230, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #0
  br label %3044

2807:                                             ; preds = %2803
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #0
  %2808 = load ptr, ptr %242, align 8, !tbaa !5
  %2809 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST16PathBinding_Type9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32) %2808)
          to label %2810 unwind label %2816

2810:                                             ; preds = %2807
  store ptr %2809, ptr %257, align 8, !tbaa !5
  br label %2811

2811:                                             ; preds = %3040, %2810
  %2812 = load ptr, ptr %257, align 8, !tbaa !5
  %2813 = load i8, ptr %256, align 1, !tbaa !9, !range !20, !noundef !21
  %2814 = trunc i8 %2813 to i1
  br i1 %2814, label %2820, label %2815

2815:                                             ; preds = %2811
  store i32 233, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #0
  br label %3042

2816:                                             ; preds = %3022, %2903, %2901, %2899, %2894, %2892, %2889, %2886, %2807
  %2817 = landingpad { ptr, i32 }
          cleanup
  %2818 = extractvalue { ptr, i32 } %2817, 0
  store ptr %2818, ptr %19, align 8
  %2819 = extractvalue { ptr, i32 } %2817, 1
  store i32 %2819, ptr %20, align 4
  br label %3041

2820:                                             ; preds = %2811
  %2821 = load ptr, ptr %257, align 8, !tbaa !5
  %2822 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2821, i32 0, i32 0
  %2823 = load ptr, ptr %2822, align 8, !tbaa !15
  %2824 = icmp ne ptr %2823, null
  br i1 %2824, label %2825, label %2910

2825:                                             ; preds = %2820
  %2826 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack acquire, align 8
  %2827 = icmp eq i8 %2826, 0
  br i1 %2827, label %2828, label %2833, !prof !11

2828:                                             ; preds = %2825
  %2829 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #0
  %2830 = icmp ne i32 %2829, 0
  br i1 %2830, label %2831, label %2833

2831:                                             ; preds = %2828
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #0
  %2832 = call i32 @__cxa_atexit(ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev, ptr @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #0
  br label %2833

2833:                                             ; preds = %2831, %2828, %2825
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #0
  %2834 = call ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #0
  %2835 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.318", ptr %259, i32 0, i32 0
  store ptr %2834, ptr %2835, align 8
  %2836 = call ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #0
  %2837 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.318", ptr %260, i32 0, i32 0
  store ptr %2836, ptr %2837, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %261) #0
  %2838 = load ptr, ptr %257, align 8, !tbaa !5
  %2839 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2838, i32 0, i32 0
  %2840 = load ptr, ptr %2839, align 8, !tbaa !15
  store ptr %2840, ptr %261, align 8, !tbaa !5
  %2841 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.318", ptr %259, i32 0, i32 0
  %2842 = load ptr, ptr %2841, align 8
  %2843 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.318", ptr %260, i32 0, i32 0
  %2844 = load ptr, ptr %2843, align 8
  %2845 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPKN3AST6ModuleESt6vectorIS5_SaIS5_EEEES5_ET_SB_SB_RKT0_(ptr %2842, ptr %2844, ptr noundef nonnull align 8 dereferenceable(8) %261)
          to label %2846 unwind label %2868

2846:                                             ; preds = %2833
  %2847 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.318", ptr %258, i32 0, i32 0
  store ptr %2845, ptr %2847, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %262) #0
  %2848 = call ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #0
  %2849 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.318", ptr %262, i32 0, i32 0
  store ptr %2848, ptr %2849, align 8
  %2850 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPPKN3AST6ModuleESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 8 dereferenceable(8) %262) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %262) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #0
  br i1 %2850, label %2851, label %2885

2851:                                             ; preds = %2846
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #0
  %2852 = load ptr, ptr %257, align 8, !tbaa !5
  %2853 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2852, i32 0, i32 0
  %2854 = load ptr, ptr %2853, align 8, !tbaa !15
  store ptr %2854, ptr %263, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack, ptr noundef nonnull align 8 dereferenceable(8) %263)
          to label %2855 unwind label %2872

2855:                                             ; preds = %2851
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #0
  call void @llvm.lifetime.start.p0(i64 184, ptr %264) #0
  %2856 = load ptr, ptr %10, align 8, !tbaa !5
  %2857 = load ptr, ptr %11, align 8, !tbaa !5
  %2858 = load ptr, ptr %13, align 8, !tbaa !5
  %2859 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2858)
          to label %2860 unwind label %2876

2860:                                             ; preds = %2855
  %2861 = load ptr, ptr %257, align 8, !tbaa !5
  %2862 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2861, i32 0, i32 0
  %2863 = load ptr, ptr %2862, align 8, !tbaa !15
  %2864 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZNSt4spanIPKN3AST6ModuleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %265)
          to label %2865 unwind label %2876

2865:                                             ; preds = %2860
  invoke void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %264, ptr noundef nonnull align 8 dereferenceable(8) %2856, ptr noundef nonnull align 8 dereferenceable(1112) %2857, ptr noundef nonnull align 8 dereferenceable(32) %2859, ptr noundef nonnull align 8 dereferenceable(480) %2863, ptr noundef nonnull align 8 dereferenceable(8) %2864, ptr noundef %265, i1 noundef zeroext false)
          to label %2866 unwind label %2876

2866:                                             ; preds = %2865
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %264)
          to label %2867 unwind label %2880

2867:                                             ; preds = %2866
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %264) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %264) #0
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #0
  br label %2909

2868:                                             ; preds = %2833
  %2869 = landingpad { ptr, i32 }
          cleanup
  %2870 = extractvalue { ptr, i32 } %2869, 0
  store ptr %2870, ptr %19, align 8
  %2871 = extractvalue { ptr, i32 } %2869, 1
  store i32 %2871, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %261) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #0
  br label %3041

2872:                                             ; preds = %2851
  %2873 = landingpad { ptr, i32 }
          cleanup
  %2874 = extractvalue { ptr, i32 } %2873, 0
  store ptr %2874, ptr %19, align 8
  %2875 = extractvalue { ptr, i32 } %2873, 1
  store i32 %2875, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #0
  br label %3041

2876:                                             ; preds = %2865, %2860, %2855
  %2877 = landingpad { ptr, i32 }
          cleanup
  %2878 = extractvalue { ptr, i32 } %2877, 0
  store ptr %2878, ptr %19, align 8
  %2879 = extractvalue { ptr, i32 } %2877, 1
  store i32 %2879, ptr %20, align 4
  br label %2884

2880:                                             ; preds = %2866
  %2881 = landingpad { ptr, i32 }
          cleanup
  %2882 = extractvalue { ptr, i32 } %2881, 0
  store ptr %2882, ptr %19, align 8
  %2883 = extractvalue { ptr, i32 } %2881, 1
  store i32 %2883, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %264) #0
  br label %2884

2884:                                             ; preds = %2880, %2876
  call void @llvm.lifetime.end.p0(i64 184, ptr %264) #0
  br label %3041

2885:                                             ; preds = %2846
  br label %2886

2886:                                             ; preds = %2885
  %2887 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2888 unwind label %2816

2888:                                             ; preds = %2886
  br i1 %2887, label %2889, label %2906

2889:                                             ; preds = %2888
  %2890 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !12
  %2891 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2890, ptr noundef @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %2892 unwind label %2816

2892:                                             ; preds = %2889
  %2893 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2891, ptr noundef @.str.42)
          to label %2894 unwind label %2816

2894:                                             ; preds = %2892
  %2895 = load ptr, ptr %257, align 8, !tbaa !5
  %2896 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2895, i32 0, i32 0
  %2897 = load ptr, ptr %2896, align 8, !tbaa !15
  %2898 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %2897)
          to label %2899 unwind label %2816

2899:                                             ; preds = %2894
  %2900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %2893, ptr noundef nonnull align 8 dereferenceable(32) %2898)
          to label %2901 unwind label %2816

2901:                                             ; preds = %2899
  %2902 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2900, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2903 unwind label %2816

2903:                                             ; preds = %2901
  %2904 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2902, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2905 unwind label %2816

2905:                                             ; preds = %2903
  br label %2906

2906:                                             ; preds = %2905, %2888
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

2908:                                             ; preds = %2907
  br label %2909

2909:                                             ; preds = %2908, %2867
  br label %3039

2910:                                             ; preds = %2820
  %2911 = load ptr, ptr %257, align 8, !tbaa !5
  %2912 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2911, i32 0, i32 1
  %2913 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %2912, i32 0, i32 1
  %2914 = load ptr, ptr %2913, align 8, !tbaa !113
  %2915 = icmp ne ptr %2914, null
  br i1 %2915, label %2916, label %3014

2916:                                             ; preds = %2910
  call void @llvm.lifetime.start.p0(i64 184, ptr %266) #0
  %2917 = load ptr, ptr %226, align 8, !tbaa !5
  %2918 = load ptr, ptr %11, align 8, !tbaa !5
  %2919 = load ptr, ptr %257, align 8, !tbaa !5
  %2920 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2919, i32 0, i32 1
  %2921 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %2920, i32 0, i32 0
  %2922 = load ptr, ptr %2921, align 8, !tbaa !114
  %2923 = load ptr, ptr %257, align 8, !tbaa !5
  %2924 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %2923, i32 0, i32 1
  %2925 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %2924, i32 0, i32 1
  %2926 = load ptr, ptr %2925, align 8, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 240, ptr %267) #0
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %268, ptr noundef @.str.2)
          to label %2927 unwind label %2953

2927:                                             ; preds = %2916
  call void @llvm.lifetime.start.p0(i64 40, ptr %271) #0
  store i1 true, ptr %275, align 1
  store ptr %271, ptr %272, align 8
  %2928 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull align 8 dereferenceable(8) %2928)
          to label %2929 unwind label %2957

2929:                                             ; preds = %2927
  invoke void @_ZN3AST10PathParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %274)
          to label %2930 unwind label %2961

2930:                                             ; preds = %2929
  invoke void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40) %271, ptr noundef %273, ptr noundef %274)
          to label %2931 unwind label %2965

2931:                                             ; preds = %2930
  store i1 false, ptr %275, align 1
  %2932 = getelementptr inbounds %"class.std::initializer_list.317", ptr %270, i32 0, i32 0
  store ptr %271, ptr %2932, align 8, !tbaa !108
  %2933 = getelementptr inbounds %"class.std::initializer_list.317", ptr %270, i32 0, i32 1
  store i64 1, ptr %2933, align 8, !tbaa !110
  call void @llvm.lifetime.start.p0(i64 1, ptr %276) #0
  call void @_ZNSaIN3AST8PathNodeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #0
  %2934 = getelementptr inbounds { ptr, i64 }, ptr %270, i32 0, i32 0
  %2935 = load ptr, ptr %2934, align 8
  %2936 = getelementptr inbounds { ptr, i64 }, ptr %270, i32 0, i32 1
  %2937 = load i64, ptr %2936, align 8
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %269, ptr %2935, i64 %2937, ptr noundef nonnull align 1 dereferenceable(1) %276)
          to label %2938 unwind label %2969

2938:                                             ; preds = %2931
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %267, ptr noundef %268, ptr noundef %269)
          to label %2939 unwind label %2973

2939:                                             ; preds = %2938
  %2940 = load ptr, ptr %228, align 8, !tbaa !5
  %2941 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2940, i32 0, i32 1
  %2942 = getelementptr inbounds %"struct.AST::PathBinding.23", ptr %2941, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(32) %2942)
          to label %2943 unwind label %2977

2943:                                             ; preds = %2939
  invoke void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %266, ptr noundef nonnull align 8 dereferenceable(8) %2917, ptr noundef nonnull align 8 dereferenceable(1112) %2918, ptr noundef nonnull align 8 dereferenceable(56) %2922, ptr noundef nonnull align 8 dereferenceable(216) %2926, ptr noundef nonnull align 8 dereferenceable(240) %267, i32 noundef 0, ptr noundef %277)
          to label %2944 unwind label %2981

2944:                                             ; preds = %2943
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %266)
          to label %2945 unwind label %2985

2945:                                             ; preds = %2944
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %266) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #0
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %267) #0
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %269) #0
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %276) #0
  %2946 = getelementptr inbounds [1 x %"class.AST::PathNode"], ptr %271, i32 0, i32 0
  %2947 = getelementptr inbounds %"class.AST::PathNode", ptr %2946, i64 1
  br label %2948

2948:                                             ; preds = %2948, %2945
  %2949 = phi ptr [ %2947, %2945 ], [ %2950, %2948 ]
  %2950 = getelementptr inbounds %"class.AST::PathNode", ptr %2949, i64 -1
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2950) #0
  %2951 = icmp eq ptr %2950, %2946
  br i1 %2951, label %2952, label %2948

2952:                                             ; preds = %2948
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %274) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #0
  call void @llvm.lifetime.end.p0(i64 40, ptr %271) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #0
  call void @llvm.lifetime.end.p0(i64 240, ptr %267) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %266) #0
  br label %3038

2953:                                             ; preds = %2916
  %2954 = landingpad { ptr, i32 }
          cleanup
  %2955 = extractvalue { ptr, i32 } %2954, 0
  store ptr %2955, ptr %19, align 8
  %2956 = extractvalue { ptr, i32 } %2954, 1
  store i32 %2956, ptr %20, align 4
  br label %3013

2957:                                             ; preds = %2927
  %2958 = landingpad { ptr, i32 }
          cleanup
  %2959 = extractvalue { ptr, i32 } %2958, 0
  store ptr %2959, ptr %19, align 8
  %2960 = extractvalue { ptr, i32 } %2958, 1
  store i32 %2960, ptr %20, align 4
  br label %3002

2961:                                             ; preds = %2929
  %2962 = landingpad { ptr, i32 }
          cleanup
  %2963 = extractvalue { ptr, i32 } %2962, 0
  store ptr %2963, ptr %19, align 8
  %2964 = extractvalue { ptr, i32 } %2962, 1
  store i32 %2964, ptr %20, align 4
  br label %3001

2965:                                             ; preds = %2930
  %2966 = landingpad { ptr, i32 }
          cleanup
  %2967 = extractvalue { ptr, i32 } %2966, 0
  store ptr %2967, ptr %19, align 8
  %2968 = extractvalue { ptr, i32 } %2966, 1
  store i32 %2968, ptr %20, align 4
  br label %3000

2969:                                             ; preds = %2931
  %2970 = landingpad { ptr, i32 }
          cleanup
  %2971 = extractvalue { ptr, i32 } %2970, 0
  store ptr %2971, ptr %19, align 8
  %2972 = extractvalue { ptr, i32 } %2970, 1
  store i32 %2972, ptr %20, align 4
  br label %2992

2973:                                             ; preds = %2938
  %2974 = landingpad { ptr, i32 }
          cleanup
  %2975 = extractvalue { ptr, i32 } %2974, 0
  store ptr %2975, ptr %19, align 8
  %2976 = extractvalue { ptr, i32 } %2974, 1
  store i32 %2976, ptr %20, align 4
  br label %2991

2977:                                             ; preds = %2939
  %2978 = landingpad { ptr, i32 }
          cleanup
  %2979 = extractvalue { ptr, i32 } %2978, 0
  store ptr %2979, ptr %19, align 8
  %2980 = extractvalue { ptr, i32 } %2978, 1
  store i32 %2980, ptr %20, align 4
  br label %2990

2981:                                             ; preds = %2943
  %2982 = landingpad { ptr, i32 }
          cleanup
  %2983 = extractvalue { ptr, i32 } %2982, 0
  store ptr %2983, ptr %19, align 8
  %2984 = extractvalue { ptr, i32 } %2982, 1
  store i32 %2984, ptr %20, align 4
  br label %2989

2985:                                             ; preds = %2944
  %2986 = landingpad { ptr, i32 }
          cleanup
  %2987 = extractvalue { ptr, i32 } %2986, 0
  store ptr %2987, ptr %19, align 8
  %2988 = extractvalue { ptr, i32 } %2986, 1
  store i32 %2988, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %266) #0
  br label %2989

2989:                                             ; preds = %2985, %2981
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #0
  br label %2990

2990:                                             ; preds = %2989, %2977
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %267) #0
  br label %2991

2991:                                             ; preds = %2990, %2973
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %269) #0
  br label %2992

2992:                                             ; preds = %2991, %2969
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %276) #0
  %2993 = getelementptr inbounds [1 x %"class.AST::PathNode"], ptr %271, i32 0, i32 0
  %2994 = getelementptr inbounds %"class.AST::PathNode", ptr %2993, i64 1
  br label %2995

2995:                                             ; preds = %2995, %2992
  %2996 = phi ptr [ %2994, %2992 ], [ %2997, %2995 ]
  %2997 = getelementptr inbounds %"class.AST::PathNode", ptr %2996, i64 -1
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2997) #0
  %2998 = icmp eq ptr %2997, %2993
  br i1 %2998, label %2999, label %2995

2999:                                             ; preds = %2995
  br label %3000

3000:                                             ; preds = %2999, %2965
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %274) #0
  br label %3001

3001:                                             ; preds = %3000, %2961
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #0
  br label %3002

3002:                                             ; preds = %3001, %2957
  %3003 = load i1, ptr %275, align 1
  br i1 %3003, label %3004, label %3012

3004:                                             ; preds = %3002
  %3005 = load ptr, ptr %272, align 8
  %3006 = icmp eq ptr %271, %3005
  br i1 %3006, label %3011, label %3007

3007:                                             ; preds = %3007, %3004
  %3008 = phi ptr [ %3005, %3004 ], [ %3009, %3007 ]
  %3009 = getelementptr inbounds %"class.AST::PathNode", ptr %3008, i64 -1
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3009) #0
  %3010 = icmp eq ptr %3009, %271
  br i1 %3010, label %3011, label %3007

3011:                                             ; preds = %3007, %3004
  br label %3012

3012:                                             ; preds = %3011, %3002
  call void @llvm.lifetime.end.p0(i64 40, ptr %271) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #0
  br label %3013

3013:                                             ; preds = %3012, %2953
  call void @llvm.lifetime.end.p0(i64 240, ptr %267) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %266) #0
  br label %3041

3014:                                             ; preds = %2910
  br label %3015

3015:                                             ; preds = %3014
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #0
  %3016 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %278, ptr noundef nonnull align 8 dereferenceable(8) %3016)
          to label %3017 unwind label %3023

3017:                                             ; preds = %3015
  call void @llvm.lifetime.start.p0(i64 8, ptr %280) #0
  %3018 = getelementptr inbounds %class.anon.371, ptr %280, i32 0, i32 0
  %3019 = load ptr, ptr %225, align 8, !tbaa !5
  store ptr %3019, ptr %3018, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %279, ptr noundef nonnull align 8 dereferenceable(8) %280) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %278, ptr noundef %279)
          to label %3020 unwind label %3027

3020:                                             ; preds = %3017
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #0
  %3021 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3021, ptr noundef @.str.5)
          to label %3022 unwind label %3032

3022:                                             ; preds = %3020
  invoke void @__cxa_throw(ptr %3021, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %2816

3023:                                             ; preds = %3015
  %3024 = landingpad { ptr, i32 }
          cleanup
  %3025 = extractvalue { ptr, i32 } %3024, 0
  store ptr %3025, ptr %19, align 8
  %3026 = extractvalue { ptr, i32 } %3024, 1
  store i32 %3026, ptr %20, align 4
  br label %3031

3027:                                             ; preds = %3017
  %3028 = landingpad { ptr, i32 }
          cleanup
  %3029 = extractvalue { ptr, i32 } %3028, 0
  store ptr %3029, ptr %19, align 8
  %3030 = extractvalue { ptr, i32 } %3028, 1
  store i32 %3030, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #0
  br label %3031

3031:                                             ; preds = %3027, %3023
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #0
  br label %3041

3032:                                             ; preds = %3020
  %3033 = landingpad { ptr, i32 }
          cleanup
  %3034 = extractvalue { ptr, i32 } %3033, 0
  store ptr %3034, ptr %19, align 8
  %3035 = extractvalue { ptr, i32 } %3033, 1
  store i32 %3035, ptr %20, align 4
  call void @__cxa_free_exception(ptr %3021) #0
  br label %3041

3036:                                             ; No predecessors!
  br label %3037

3037:                                             ; preds = %3036
  br label %3038

3038:                                             ; preds = %3037, %2952
  br label %3039

3039:                                             ; preds = %3038, %2909
  br label %3040

3040:                                             ; preds = %3039
  store i8 0, ptr %256, align 1, !tbaa !9
  br label %2811, !llvm.loop !115

3041:                                             ; preds = %3032, %3031, %3013, %2884, %2872, %2868, %2816
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #0
  br label %3341

3042:                                             ; preds = %2815
  br label %3043

3043:                                             ; preds = %3042
  store i8 0, ptr %256, align 1, !tbaa !9
  br label %2803, !llvm.loop !116

3044:                                             ; preds = %2806
  br label %3339

3045:                                             ; preds = %2681
  call void @llvm.lifetime.start.p0(i64 1, ptr %281) #0
  store i8 1, ptr %281, align 1, !tbaa !9
  br label %3046

3046:                                             ; preds = %3314, %3045
  %3047 = load i8, ptr %281, align 1, !tbaa !9, !range !20, !noundef !21
  %3048 = trunc i8 %3047 to i1
  br i1 %3048, label %3050, label %3049

3049:                                             ; preds = %3046
  store i32 240, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %281) #0
  br label %3315

3050:                                             ; preds = %3046
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #0
  %3051 = load ptr, ptr %242, align 8, !tbaa !5
  %3052 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(32) %3051)
          to label %3053 unwind label %3059

3053:                                             ; preds = %3050
  store ptr %3052, ptr %282, align 8, !tbaa !5
  br label %3054

3054:                                             ; preds = %3310, %3053
  %3055 = load ptr, ptr %282, align 8, !tbaa !5
  %3056 = load i8, ptr %281, align 1, !tbaa !9, !range !20, !noundef !21
  %3057 = trunc i8 %3056 to i1
  br i1 %3057, label %3063, label %3058

3058:                                             ; preds = %3054
  store i32 243, ptr %28, align 4
  br label %3311

3059:                                             ; preds = %3050
  %3060 = landingpad { ptr, i32 }
          cleanup
  %3061 = extractvalue { ptr, i32 } %3060, 0
  store ptr %3061, ptr %19, align 8
  %3062 = extractvalue { ptr, i32 } %3060, 1
  store i32 %3062, ptr %20, align 4
  br label %3312

3063:                                             ; preds = %3054
  %3064 = load ptr, ptr %282, align 8, !tbaa !5
  %3065 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %3064, i32 0, i32 0
  %3066 = load ptr, ptr %3065, align 8, !tbaa !74
  %3067 = icmp ne ptr %3066, null
  br i1 %3067, label %3073, label %3068

3068:                                             ; preds = %3063
  %3069 = load ptr, ptr %282, align 8, !tbaa !5
  %3070 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %3069, i32 0, i32 1
  %3071 = load ptr, ptr %3070, align 8, !tbaa !76
  %3072 = icmp ne ptr %3071, null
  br label %3073

3073:                                             ; preds = %3068, %3063
  %3074 = phi i1 [ true, %3063 ], [ %3072, %3068 ]
  br i1 %3074, label %3075, label %3076

3075:                                             ; preds = %3073
  br label %3078

3076:                                             ; preds = %3073
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.4, i32 noundef 683, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #12
  unreachable

3077:                                             ; No predecessors!
  br label %3078

3078:                                             ; preds = %3077, %3075
  %3079 = load ptr, ptr %282, align 8, !tbaa !5
  %3080 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %3079, i32 0, i32 0
  %3081 = load ptr, ptr %3080, align 8, !tbaa !74
  %3082 = icmp ne ptr %3081, null
  br i1 %3082, label %3083, label %3202

3083:                                             ; preds = %3078
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #0
  %3084 = load ptr, ptr %282, align 8, !tbaa !5
  %3085 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %3084, i32 0, i32 0
  %3086 = load ptr, ptr %3085, align 8, !tbaa !74
  store ptr %3086, ptr %283, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #0
  store i32 0, ptr %284, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %285) #0
  %3087 = load ptr, ptr %283, align 8, !tbaa !5
  %3088 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Enum8variantsEv(ptr noundef nonnull align 8 dereferenceable(80) %3087)
          to label %3089 unwind label %3099

3089:                                             ; preds = %3083
  store ptr %3088, ptr %285, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %286) #0
  %3090 = load ptr, ptr %285, align 8, !tbaa !5
  %3091 = call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3090) #0
  %3092 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.372", ptr %286, i32 0, i32 0
  store ptr %3091, ptr %3092, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #0
  %3093 = load ptr, ptr %285, align 8, !tbaa !5
  %3094 = call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3093) #0
  %3095 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.372", ptr %287, i32 0, i32 0
  store ptr %3094, ptr %3095, align 8
  br label %3096

3096:                                             ; preds = %3196, %3089
  %3097 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull align 8 dereferenceable(8) %287) #0
  br i1 %3097, label %3103, label %3098

3098:                                             ; preds = %3096
  store i32 246, ptr %28, align 4
  br label %3199

3099:                                             ; preds = %3083
  %3100 = landingpad { ptr, i32 }
          cleanup
  %3101 = extractvalue { ptr, i32 } %3100, 0
  store ptr %3101, ptr %19, align 8
  %3102 = extractvalue { ptr, i32 } %3100, 1
  store i32 %3102, ptr %20, align 4
  br label %3200

3103:                                             ; preds = %3096
  call void @llvm.lifetime.start.p0(i64 8, ptr %288) #0
  %3104 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %286) #0
  store ptr %3104, ptr %288, align 8, !tbaa !5
  %3105 = load ptr, ptr %288, align 8, !tbaa !5
  %3106 = getelementptr inbounds %"struct.AST::EnumVariant", ptr %3105, i32 0, i32 1
  %3107 = load ptr, ptr %14, align 8, !tbaa !5
  %3108 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %3106, ptr noundef nonnull align 8 dereferenceable(8) %3107)
          to label %3109 unwind label %3131

3109:                                             ; preds = %3103
  br i1 %3108, label %3110, label %3190

3110:                                             ; preds = %3109
  call void @llvm.lifetime.start.p0(i64 184, ptr %289) #0
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %289)
          to label %3111 unwind label %3135

3111:                                             ; preds = %3110
  %3112 = load ptr, ptr %288, align 8, !tbaa !5
  %3113 = getelementptr inbounds %"struct.AST::EnumVariant", ptr %3112, i32 0, i32 2
  %3114 = invoke noundef zeroext i1 @_ZNK3AST15EnumVariantData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %3113)
          to label %3115 unwind label %3139

3115:                                             ; preds = %3111
  br i1 %3114, label %3116, label %3157

3116:                                             ; preds = %3115
  %3117 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %289, i32 0, i32 1
  %3118 = load ptr, ptr %228, align 8, !tbaa !5
  %3119 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %3118, i32 0, i32 1
  %3120 = getelementptr inbounds %"struct.AST::PathBinding.23", ptr %3119, i32 0, i32 0
  %3121 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(8) %3121)
          to label %3122 unwind label %3139

3122:                                             ; preds = %3116
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %290, ptr noundef nonnull align 8 dereferenceable(32) %3120, ptr noundef %291)
          to label %3123 unwind label %3143

3123:                                             ; preds = %3122
  %3124 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %293, i32 0, i32 0
  %3125 = load ptr, ptr %283, align 8, !tbaa !5
  store ptr %3125, ptr %3124, align 8, !tbaa !117
  %3126 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %293, i32 0, i32 1
  %3127 = load i32, ptr %284, align 4, !tbaa !12
  store i32 %3127, ptr %3126, align 8, !tbaa !119
  %3128 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %293, i32 0, i32 2
  store ptr null, ptr %3128, align 8, !tbaa !120
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %292, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %293)
          to label %3129 unwind label %3147

3129:                                             ; preds = %3123
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %3117, ptr noundef %290, ptr noundef %292)
          to label %3130 unwind label %3151

3130:                                             ; preds = %3129
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #0
  br label %3186

3131:                                             ; preds = %3103
  %3132 = landingpad { ptr, i32 }
          cleanup
  %3133 = extractvalue { ptr, i32 } %3132, 0
  store ptr %3133, ptr %19, align 8
  %3134 = extractvalue { ptr, i32 } %3132, 1
  store i32 %3134, ptr %20, align 4
  br label %3198

3135:                                             ; preds = %3110
  %3136 = landingpad { ptr, i32 }
          cleanup
  %3137 = extractvalue { ptr, i32 } %3136, 0
  store ptr %3137, ptr %19, align 8
  %3138 = extractvalue { ptr, i32 } %3136, 1
  store i32 %3138, ptr %20, align 4
  br label %3189

3139:                                             ; preds = %3186, %3157, %3116, %3111
  %3140 = landingpad { ptr, i32 }
          cleanup
  %3141 = extractvalue { ptr, i32 } %3140, 0
  store ptr %3141, ptr %19, align 8
  %3142 = extractvalue { ptr, i32 } %3140, 1
  store i32 %3142, ptr %20, align 4
  br label %3188

3143:                                             ; preds = %3122
  %3144 = landingpad { ptr, i32 }
          cleanup
  %3145 = extractvalue { ptr, i32 } %3144, 0
  store ptr %3145, ptr %19, align 8
  %3146 = extractvalue { ptr, i32 } %3144, 1
  store i32 %3146, ptr %20, align 4
  br label %3156

3147:                                             ; preds = %3123
  %3148 = landingpad { ptr, i32 }
          cleanup
  %3149 = extractvalue { ptr, i32 } %3148, 0
  store ptr %3149, ptr %19, align 8
  %3150 = extractvalue { ptr, i32 } %3148, 1
  store i32 %3150, ptr %20, align 4
  br label %3155

3151:                                             ; preds = %3129
  %3152 = landingpad { ptr, i32 }
          cleanup
  %3153 = extractvalue { ptr, i32 } %3152, 0
  store ptr %3153, ptr %19, align 8
  %3154 = extractvalue { ptr, i32 } %3152, 1
  store i32 %3154, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #0
  br label %3155

3155:                                             ; preds = %3151, %3147
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #0
  br label %3156

3156:                                             ; preds = %3155, %3143
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #0
  br label %3188

3157:                                             ; preds = %3115
  %3158 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %289, i32 0, i32 0
  %3159 = load ptr, ptr %228, align 8, !tbaa !5
  %3160 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %3159, i32 0, i32 1
  %3161 = getelementptr inbounds %"struct.AST::PathBinding.23", ptr %3160, i32 0, i32 0
  %3162 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull align 8 dereferenceable(8) %3162)
          to label %3163 unwind label %3139

3163:                                             ; preds = %3157
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %294, ptr noundef nonnull align 8 dereferenceable(32) %3161, ptr noundef %295)
          to label %3164 unwind label %3172

3164:                                             ; preds = %3163
  %3165 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %297, i32 0, i32 0
  %3166 = load ptr, ptr %283, align 8, !tbaa !5
  store ptr %3166, ptr %3165, align 8, !tbaa !121
  %3167 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %297, i32 0, i32 1
  %3168 = load i32, ptr %284, align 4, !tbaa !12
  store i32 %3168, ptr %3167, align 8, !tbaa !123
  %3169 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %297, i32 0, i32 2
  store ptr null, ptr %3169, align 8, !tbaa !124
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %296, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %297)
          to label %3170 unwind label %3176

3170:                                             ; preds = %3164
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %3158, ptr noundef %294, ptr noundef %296)
          to label %3171 unwind label %3180

3171:                                             ; preds = %3170
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %295) #0
  br label %3186

3172:                                             ; preds = %3163
  %3173 = landingpad { ptr, i32 }
          cleanup
  %3174 = extractvalue { ptr, i32 } %3173, 0
  store ptr %3174, ptr %19, align 8
  %3175 = extractvalue { ptr, i32 } %3173, 1
  store i32 %3175, ptr %20, align 4
  br label %3185

3176:                                             ; preds = %3164
  %3177 = landingpad { ptr, i32 }
          cleanup
  %3178 = extractvalue { ptr, i32 } %3177, 0
  store ptr %3178, ptr %19, align 8
  %3179 = extractvalue { ptr, i32 } %3177, 1
  store i32 %3179, ptr %20, align 4
  br label %3184

3180:                                             ; preds = %3170
  %3181 = landingpad { ptr, i32 }
          cleanup
  %3182 = extractvalue { ptr, i32 } %3181, 0
  store ptr %3182, ptr %19, align 8
  %3183 = extractvalue { ptr, i32 } %3181, 1
  store i32 %3183, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #0
  br label %3184

3184:                                             ; preds = %3180, %3176
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #0
  br label %3185

3185:                                             ; preds = %3184, %3172
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %295) #0
  br label %3188

3186:                                             ; preds = %3171, %3130
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %289)
          to label %3187 unwind label %3139

3187:                                             ; preds = %3186
  store i32 246, ptr %28, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %289) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %289) #0
  br label %3193

3188:                                             ; preds = %3185, %3156, %3139
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %289) #0
  br label %3189

3189:                                             ; preds = %3188, %3135
  call void @llvm.lifetime.end.p0(i64 184, ptr %289) #0
  br label %3198

3190:                                             ; preds = %3109
  %3191 = load i32, ptr %284, align 4, !tbaa !12
  %3192 = add i32 %3191, 1
  store i32 %3192, ptr %284, align 4, !tbaa !12
  store i32 0, ptr %28, align 4
  br label %3193

3193:                                             ; preds = %3190, %3187
  call void @llvm.lifetime.end.p0(i64 8, ptr %288) #0
  %3194 = load i32, ptr %28, align 4
  switch i32 %3194, label %3199 [
    i32 0, label %3195
  ]

3195:                                             ; preds = %3193
  br label %3196

3196:                                             ; preds = %3195
  %3197 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %286) #0
  br label %3096

3198:                                             ; preds = %3189, %3131
  call void @llvm.lifetime.end.p0(i64 8, ptr %288) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %286) #0
  br label %3200

3199:                                             ; preds = %3193, %3098
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %286) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #0
  br label %3201

3200:                                             ; preds = %3198, %3099
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #0
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #0
  br label %3312

3201:                                             ; preds = %3199
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #0
  br label %3309

3202:                                             ; preds = %3078
  call void @llvm.lifetime.start.p0(i64 8, ptr %298) #0
  %3203 = load ptr, ptr %282, align 8, !tbaa !5
  %3204 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %3203, i32 0, i32 1
  %3205 = load ptr, ptr %3204, align 8, !tbaa !76
  store ptr %3205, ptr %298, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %299) #0
  %3206 = load ptr, ptr %298, align 8, !tbaa !5
  %3207 = load ptr, ptr %14, align 8, !tbaa !5
  %3208 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %3206, ptr noundef nonnull align 8 dereferenceable(8) %3207)
          to label %3209 unwind label %3244

3209:                                             ; preds = %3202
  store i64 %3208, ptr %299, align 8, !tbaa !91
  %3210 = load i64, ptr %299, align 8, !tbaa !91
  %3211 = icmp ne i64 %3210, -1
  br i1 %3211, label %3212, label %3304

3212:                                             ; preds = %3209
  call void @llvm.lifetime.start.p0(i64 184, ptr %300) #0
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %300)
          to label %3213 unwind label %3248

3213:                                             ; preds = %3212
  %3214 = load ptr, ptr %298, align 8, !tbaa !5
  %3215 = getelementptr inbounds %"class.HIR::Enum", ptr %3214, i32 0, i32 3
  %3216 = invoke noundef zeroext i1 @_ZNK3HIR4Enum5Class7is_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %3215)
          to label %3217 unwind label %3252

3217:                                             ; preds = %3213
  br i1 %3216, label %3218, label %3270

3218:                                             ; preds = %3217
  %3219 = load ptr, ptr %298, align 8, !tbaa !5
  %3220 = getelementptr inbounds %"class.HIR::Enum", ptr %3219, i32 0, i32 3
  %3221 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %3220)
          to label %3222 unwind label %3252

3222:                                             ; preds = %3218
  %3223 = load i64, ptr %299, align 8, !tbaa !91
  %3224 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3221, i64 noundef %3223) #0
  %3225 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %3224, i32 0, i32 1
  %3226 = load i8, ptr %3225, align 8, !tbaa !125, !range !20, !noundef !21
  %3227 = trunc i8 %3226 to i1
  br i1 %3227, label %3228, label %3270

3228:                                             ; preds = %3222
  %3229 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %300, i32 0, i32 1
  %3230 = load ptr, ptr %228, align 8, !tbaa !5
  %3231 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %3230, i32 0, i32 1
  %3232 = getelementptr inbounds %"struct.AST::PathBinding.23", ptr %3231, i32 0, i32 0
  %3233 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull align 8 dereferenceable(8) %3233)
          to label %3234 unwind label %3252

3234:                                             ; preds = %3228
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %301, ptr noundef nonnull align 8 dereferenceable(32) %3232, ptr noundef %302)
          to label %3235 unwind label %3256

3235:                                             ; preds = %3234
  %3236 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %304, i32 0, i32 0
  store ptr null, ptr %3236, align 8, !tbaa !117
  %3237 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %304, i32 0, i32 1
  %3238 = load i64, ptr %299, align 8, !tbaa !91
  %3239 = trunc i64 %3238 to i32
  store i32 %3239, ptr %3237, align 8, !tbaa !119
  %3240 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %304, i32 0, i32 2
  %3241 = load ptr, ptr %298, align 8, !tbaa !5
  store ptr %3241, ptr %3240, align 8, !tbaa !120
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %303, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %304)
          to label %3242 unwind label %3260

3242:                                             ; preds = %3235
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %3229, ptr noundef %301, ptr noundef %303)
          to label %3243 unwind label %3264

3243:                                             ; preds = %3242
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #0
  br label %3300

3244:                                             ; preds = %3202
  %3245 = landingpad { ptr, i32 }
          cleanup
  %3246 = extractvalue { ptr, i32 } %3245, 0
  store ptr %3246, ptr %19, align 8
  %3247 = extractvalue { ptr, i32 } %3245, 1
  store i32 %3247, ptr %20, align 4
  br label %3308

3248:                                             ; preds = %3212
  %3249 = landingpad { ptr, i32 }
          cleanup
  %3250 = extractvalue { ptr, i32 } %3249, 0
  store ptr %3250, ptr %19, align 8
  %3251 = extractvalue { ptr, i32 } %3249, 1
  store i32 %3251, ptr %20, align 4
  br label %3303

3252:                                             ; preds = %3300, %3270, %3228, %3218, %3213
  %3253 = landingpad { ptr, i32 }
          cleanup
  %3254 = extractvalue { ptr, i32 } %3253, 0
  store ptr %3254, ptr %19, align 8
  %3255 = extractvalue { ptr, i32 } %3253, 1
  store i32 %3255, ptr %20, align 4
  br label %3302

3256:                                             ; preds = %3234
  %3257 = landingpad { ptr, i32 }
          cleanup
  %3258 = extractvalue { ptr, i32 } %3257, 0
  store ptr %3258, ptr %19, align 8
  %3259 = extractvalue { ptr, i32 } %3257, 1
  store i32 %3259, ptr %20, align 4
  br label %3269

3260:                                             ; preds = %3235
  %3261 = landingpad { ptr, i32 }
          cleanup
  %3262 = extractvalue { ptr, i32 } %3261, 0
  store ptr %3262, ptr %19, align 8
  %3263 = extractvalue { ptr, i32 } %3261, 1
  store i32 %3263, ptr %20, align 4
  br label %3268

3264:                                             ; preds = %3242
  %3265 = landingpad { ptr, i32 }
          cleanup
  %3266 = extractvalue { ptr, i32 } %3265, 0
  store ptr %3266, ptr %19, align 8
  %3267 = extractvalue { ptr, i32 } %3265, 1
  store i32 %3267, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #0
  br label %3268

3268:                                             ; preds = %3264, %3260
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #0
  br label %3269

3269:                                             ; preds = %3268, %3256
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #0
  br label %3302

3270:                                             ; preds = %3222, %3217
  %3271 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %300, i32 0, i32 0
  %3272 = load ptr, ptr %228, align 8, !tbaa !5
  %3273 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %3272, i32 0, i32 1
  %3274 = getelementptr inbounds %"struct.AST::PathBinding.23", ptr %3273, i32 0, i32 0
  %3275 = load ptr, ptr %14, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull align 8 dereferenceable(8) %3275)
          to label %3276 unwind label %3252

3276:                                             ; preds = %3270
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %305, ptr noundef nonnull align 8 dereferenceable(32) %3274, ptr noundef %306)
          to label %3277 unwind label %3286

3277:                                             ; preds = %3276
  %3278 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %308, i32 0, i32 0
  store ptr null, ptr %3278, align 8, !tbaa !121
  %3279 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %308, i32 0, i32 1
  %3280 = load i64, ptr %299, align 8, !tbaa !91
  %3281 = trunc i64 %3280 to i32
  store i32 %3281, ptr %3279, align 8, !tbaa !123
  %3282 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %308, i32 0, i32 2
  %3283 = load ptr, ptr %298, align 8, !tbaa !5
  store ptr %3283, ptr %3282, align 8, !tbaa !124
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %307, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %308)
          to label %3284 unwind label %3290

3284:                                             ; preds = %3277
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %3271, ptr noundef %305, ptr noundef %307)
          to label %3285 unwind label %3294

3285:                                             ; preds = %3284
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #0
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #0
  br label %3300

3286:                                             ; preds = %3276
  %3287 = landingpad { ptr, i32 }
          cleanup
  %3288 = extractvalue { ptr, i32 } %3287, 0
  store ptr %3288, ptr %19, align 8
  %3289 = extractvalue { ptr, i32 } %3287, 1
  store i32 %3289, ptr %20, align 4
  br label %3299

3290:                                             ; preds = %3277
  %3291 = landingpad { ptr, i32 }
          cleanup
  %3292 = extractvalue { ptr, i32 } %3291, 0
  store ptr %3292, ptr %19, align 8
  %3293 = extractvalue { ptr, i32 } %3291, 1
  store i32 %3293, ptr %20, align 4
  br label %3298

3294:                                             ; preds = %3284
  %3295 = landingpad { ptr, i32 }
          cleanup
  %3296 = extractvalue { ptr, i32 } %3295, 0
  store ptr %3296, ptr %19, align 8
  %3297 = extractvalue { ptr, i32 } %3295, 1
  store i32 %3297, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #0
  br label %3298

3298:                                             ; preds = %3294, %3290
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #0
  br label %3299

3299:                                             ; preds = %3298, %3286
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #0
  br label %3302

3300:                                             ; preds = %3285, %3243
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %17, ptr noundef nonnull align 8 dereferenceable(184) %300)
          to label %3301 unwind label %3252

3301:                                             ; preds = %3300
  store i32 243, ptr %28, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %300) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %300) #0
  br label %3305

3302:                                             ; preds = %3299, %3269, %3252
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %300) #0
  br label %3303

3303:                                             ; preds = %3302, %3248
  call void @llvm.lifetime.end.p0(i64 184, ptr %300) #0
  br label %3308

3304:                                             ; preds = %3209
  store i32 0, ptr %28, align 4
  br label %3305

3305:                                             ; preds = %3304, %3301
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #0
  %3306 = load i32, ptr %28, align 4
  switch i32 %3306, label %3311 [
    i32 0, label %3307
  ]

3307:                                             ; preds = %3305
  br label %3309

3308:                                             ; preds = %3303, %3244
  call void @llvm.lifetime.end.p0(i64 8, ptr %299) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #0
  br label %3312

3309:                                             ; preds = %3307, %3201
  br label %3310

3310:                                             ; preds = %3309
  store i8 0, ptr %281, align 1, !tbaa !9
  br label %3054, !llvm.loop !128

3311:                                             ; preds = %3305, %3058
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #0
  br label %3313

3312:                                             ; preds = %3308, %3200, %3059
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %281) #0
  br label %3341

3313:                                             ; preds = %3311
  br label %3314

3314:                                             ; preds = %3313
  store i8 0, ptr %281, align 1, !tbaa !9
  br label %3046, !llvm.loop !129

3315:                                             ; preds = %3049
  br label %3339

3316:                                             ; preds = %2681
  br label %3317

3317:                                             ; preds = %3316
  call void @llvm.lifetime.start.p0(i64 8, ptr %309) #0
  %3318 = load ptr, ptr %226, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(8) %3318)
          to label %3319 unwind label %3324

3319:                                             ; preds = %3317
  call void @llvm.lifetime.start.p0(i64 8, ptr %311) #0
  %3320 = getelementptr inbounds %class.anon.409, ptr %311, i32 0, i32 0
  store ptr %228, ptr %3320, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef nonnull align 8 dereferenceable(8) %311) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef %310)
          to label %3321 unwind label %3328

3321:                                             ; preds = %3319
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %311) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #0
  %3322 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3322, ptr noundef @.str.5)
          to label %3323 unwind label %3333

3323:                                             ; preds = %3321
  invoke void @__cxa_throw(ptr %3322, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %2682

3324:                                             ; preds = %3317
  %3325 = landingpad { ptr, i32 }
          cleanup
  %3326 = extractvalue { ptr, i32 } %3325, 0
  store ptr %3326, ptr %19, align 8
  %3327 = extractvalue { ptr, i32 } %3325, 1
  store i32 %3327, ptr %20, align 4
  br label %3332

3328:                                             ; preds = %3319
  %3329 = landingpad { ptr, i32 }
          cleanup
  %3330 = extractvalue { ptr, i32 } %3329, 0
  store ptr %3330, ptr %19, align 8
  %3331 = extractvalue { ptr, i32 } %3329, 1
  store i32 %3331, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %311) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %309) #0
  br label %3332

3332:                                             ; preds = %3328, %3324
  call void @llvm.lifetime.end.p0(i64 8, ptr %309) #0
  br label %3341

3333:                                             ; preds = %3321
  %3334 = landingpad { ptr, i32 }
          cleanup
  %3335 = extractvalue { ptr, i32 } %3334, 0
  store ptr %3335, ptr %19, align 8
  %3336 = extractvalue { ptr, i32 } %3334, 1
  store i32 %3336, ptr %20, align 4
  call void @__cxa_free_exception(ptr %3322) #0
  br label %3341

3337:                                             ; No predecessors!
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338, %3315, %3044, %2801
  br label %3340

3340:                                             ; preds = %3339
  store i8 0, ptr %241, align 1, !tbaa !9
  br label %2674, !llvm.loop !130

3341:                                             ; preds = %3333, %3332, %3312, %3041, %2798, %2682
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #0
  br label %3348

3342:                                             ; preds = %2677
  br label %3343

3343:                                             ; preds = %3342
  store i8 0, ptr %241, align 1, !tbaa !9
  br label %2666, !llvm.loop !131

3344:                                             ; preds = %2669
  store i32 0, ptr %28, align 4
  br label %3345

3345:                                             ; preds = %3344, %2662, %2625
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #0
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %227) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %227) #0
  %3346 = load i32, ptr %28, align 4
  switch i32 %3346, label %3351 [
    i32 0, label %3347
  ]

3347:                                             ; preds = %3345
  br label %3350

3348:                                             ; preds = %3341, %2641, %2622, %2590, %2586, %2513
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #0
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %227) #0
  br label %3349

3349:                                             ; preds = %3348, %2509
  call void @llvm.lifetime.end.p0(i64 184, ptr %227) #0
  br label %3359

3350:                                             ; preds = %3347, %2454
  store i32 0, ptr %28, align 4
  br label %3351

3351:                                             ; preds = %3350, %3345, %2440
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #0
  %3352 = load i32, ptr %28, align 4
  switch i32 %3352, label %3354 [
    i32 0, label %3353
  ]

3353:                                             ; preds = %3351
  store i32 0, ptr %28, align 4
  br label %3354

3354:                                             ; preds = %3353, %3351
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #0
  %3355 = load i32, ptr %28, align 4
  switch i32 %3355, label %3448 [
    i32 0, label %3356
    i32 208, label %3357
  ]

3356:                                             ; preds = %3354
  br label %3357

3357:                                             ; preds = %3356, %3354
  %3358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %223) #0
  br label %2425

3359:                                             ; preds = %3349, %2441
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #0
  br label %3366

3360:                                             ; preds = %2427
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #0
  store i32 0, ptr %28, align 4
  br label %3361

3361:                                             ; preds = %3360, %2406
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #0
  %3362 = load i32, ptr %28, align 4
  switch i32 %3362, label %3448 [
    i32 0, label %3363
    i32 206, label %3364
  ]

3363:                                             ; preds = %3361
  br label %3364

3364:                                             ; preds = %3363, %3361
  %3365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %218) #0
  br label %2396

3366:                                             ; preds = %3359, %2428
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #0
  br label %3367

3367:                                             ; preds = %3366, %2407
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #0
  br label %3436

3368:                                             ; preds = %2398
  %3369 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %17)
          to label %3370 unwind label %2112

3370:                                             ; preds = %3368
  br i1 %3369, label %3371, label %3373

3371:                                             ; preds = %3370
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %17)
          to label %3372 unwind label %2112

3372:                                             ; preds = %3371
  store i32 1, ptr %28, align 4
  br label %3435

3373:                                             ; preds = %3370
  %3374 = load ptr, ptr %13, align 8, !tbaa !5
  %3375 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %3374)
          to label %3376 unwind label %2112

3376:                                             ; preds = %3373
  %3377 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %3375, i32 0, i32 1
  %3378 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3377) #0
  %3379 = icmp ugt i64 %3378, 0
  br i1 %3379, label %3380, label %3433

3380:                                             ; preds = %3376
  %3381 = load ptr, ptr %13, align 8, !tbaa !5
  %3382 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %3381)
          to label %3383 unwind label %2112

3383:                                             ; preds = %3380
  %3384 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %3382, i32 0, i32 1
  %3385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %3384) #0
  %3386 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %3385)
          to label %3387 unwind label %2112

3387:                                             ; preds = %3383
  %3388 = getelementptr inbounds i8, ptr %3386, i64 0
  %3389 = load i8, ptr %3388, align 1, !tbaa !14
  %3390 = sext i8 %3389 to i32
  %3391 = icmp eq i32 %3390, 35
  br i1 %3391, label %3392, label %3433

3392:                                             ; preds = %3387
  br label %3393

3393:                                             ; preds = %3392
  %3394 = invoke noundef i64 @_ZNKSt4spanIPKN3AST6ModuleEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %3395 unwind label %2112

3395:                                             ; preds = %3393
  %3396 = icmp ugt i64 %3394, 0
  br i1 %3396, label %3418, label %3397

3397:                                             ; preds = %3395
  call void @llvm.lifetime.start.p0(i64 8, ptr %312) #0
  %3398 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef nonnull align 8 dereferenceable(8) %3398)
          to label %3399 unwind label %3405

3399:                                             ; preds = %3397
  call void @llvm.lifetime.start.p0(i64 8, ptr %314) #0
  %3400 = getelementptr inbounds %class.anon.410, ptr %314, i32 0, i32 0
  %3401 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %3401, ptr %3400, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull align 8 dereferenceable(8) %314) #0
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef %313)
          to label %3402 unwind label %3409

3402:                                             ; preds = %3399
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #0
  %3403 = call ptr @__cxa_allocate_exception(i64 16) #0
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3403, ptr noundef @.str.5)
          to label %3404 unwind label %3414

3404:                                             ; preds = %3402
  invoke void @__cxa_throw(ptr %3403, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %3448 unwind label %2112

3405:                                             ; preds = %3397
  %3406 = landingpad { ptr, i32 }
          cleanup
  %3407 = extractvalue { ptr, i32 } %3406, 0
  store ptr %3407, ptr %19, align 8
  %3408 = extractvalue { ptr, i32 } %3406, 1
  store i32 %3408, ptr %20, align 4
  br label %3413

3409:                                             ; preds = %3399
  %3410 = landingpad { ptr, i32 }
          cleanup
  %3411 = extractvalue { ptr, i32 } %3410, 0
  store ptr %3411, ptr %19, align 8
  %3412 = extractvalue { ptr, i32 } %3410, 1
  store i32 %3412, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %314) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #0
  br label %3413

3413:                                             ; preds = %3409, %3405
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #0
  br label %3436

3414:                                             ; preds = %3402
  %3415 = landingpad { ptr, i32 }
          cleanup
  %3416 = extractvalue { ptr, i32 } %3415, 0
  store ptr %3416, ptr %19, align 8
  %3417 = extractvalue { ptr, i32 } %3415, 1
  store i32 %3417, ptr %20, align 4
  call void @__cxa_free_exception(ptr %3403) #0
  br label %3436

3418:                                             ; preds = %3395
  br label %3419

3419:                                             ; preds = %3418
  br label %3420

3420:                                             ; preds = %3419
  %3421 = load ptr, ptr %10, align 8, !tbaa !5
  %3422 = load ptr, ptr %11, align 8, !tbaa !5
  %3423 = load ptr, ptr %12, align 8, !tbaa !5
  %3424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIPKN3AST6ModuleEE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %3425 unwind label %2112

3425:                                             ; preds = %3420
  %3426 = load ptr, ptr %3424, align 8, !tbaa !5
  %3427 = load ptr, ptr %14, align 8, !tbaa !5
  %3428 = invoke noundef i64 @_ZNKSt4spanIPKN3AST6ModuleEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
          to label %3429 unwind label %2112

3429:                                             ; preds = %3425
  %3430 = sub i64 %3428, 1
  invoke void @_ZNKSt4spanIPKN3AST6ModuleEE7subspanEmm(ptr dead_on_unwind writable sret(%"class.std::span") align 8 %315, ptr noundef nonnull align 8 dereferenceable(16) %6, i64 noundef 0, i64 noundef %3430)
          to label %3431 unwind label %2112

3431:                                             ; preds = %3429
  invoke void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %0, ptr noundef nonnull align 8 dereferenceable(8) %3421, ptr noundef nonnull align 8 dereferenceable(1112) %3422, ptr noundef nonnull align 8 dereferenceable(32) %3423, ptr noundef nonnull align 8 dereferenceable(480) %3426, ptr noundef nonnull align 8 dereferenceable(8) %3427, ptr noundef %315, i1 noundef zeroext false)
          to label %3432 unwind label %2112

3432:                                             ; preds = %3431
  store i32 1, ptr %28, align 4
  br label %3435

3433:                                             ; preds = %3387, %3376
  call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 184, i1 false)
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0)
          to label %3434 unwind label %2112

3434:                                             ; preds = %3433
  store i32 1, ptr %28, align 4
  br label %3435

3435:                                             ; preds = %3434, %3432, %3372
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #0
  br label %3437

3436:                                             ; preds = %3414, %3413, %3367, %2386, %2112
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #0
  br label %3438

3437:                                             ; preds = %3435, %2075, %512
  call void @_ZN9PopOnDropISt4pairIPKN3AST6ModuleEPKcEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #0
  br label %3440

3438:                                             ; preds = %3436, %2066, %1986, %1580, %1488, %527, %426
  call void @_ZN9PopOnDropISt4pairIPKN3AST6ModuleEPKcEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #0
  br label %3439

3439:                                             ; preds = %3438, %422
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #0
  br label %3441

3440:                                             ; preds = %3437, %388
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #0
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #0
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #0
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %17) #0
  ret void

3441:                                             ; preds = %3439, %381, %377
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #0
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #0
  br label %3442

3442:                                             ; preds = %3441, %373, %369
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #0
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %17) #0
  call void @llvm.lifetime.end.p0(i64 184, ptr %17) #0
  br label %3443

3443:                                             ; preds = %3442
  %3444 = load ptr, ptr %19, align 8
  %3445 = load i32, ptr %20, align 4
  %3446 = insertvalue { ptr, i32 } poison, ptr %3444, 0
  %3447 = insertvalue { ptr, i32 } %3446, i32 %3445, 1
  resume { ptr, i32 } %3447

3448:                                             ; preds = %3404, %3361, %3354, %3323, %3022, %2380, %2373, %1737, %1483, %975, %894, %849, %804, %713, %668, %465, %421
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #9 align 2

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

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

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

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

declare void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25)) unnamed_addr #9 align 2

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

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

declare void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z22Resolve_Use_GetBindingRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_4PathESt4spanIPKNS2_6ModuleEEb(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef, i1 noundef zeroext) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(184) ptr @_ZN3AST4Path8BindingsaSEOS1_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(184)) #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3AST16PathBinding_Type3tagEv(ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

; Function Attrs: nounwind
declare i32 @__cxa_guard_acquire(ptr) #0

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

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

; Function Attrs: nounwind
declare void @__cxa_guard_release(ptr) #0

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt9make_pairIPKN3AST6ModuleEPKcESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPSt4pairIPKN3AST6ModuleEPKcESt6vectorIS9_SaIS9_EEEES9_ENSt15iterator_traitsIT_E15difference_typeESG_SG_RKT0_(ptr, ptr, ptr noundef nonnull align 8 dereferenceable(16)) #8

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19push_and_pop_at_endISt4pairIPKN3AST6ModuleEPKcEE9PopOnDropIT_ERSt6vectorIS9_SaIS9_EES9_(ptr dead_on_unwind noalias writable sret(%class.PopOnDrop) align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr) #2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3AST4Item7tag_strEv(ptr noundef nonnull align 8 dereferenceable(488)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(393) ptr @_ZNK3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(52) ptr @_ZNK3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(472) ptr @_ZNK3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(448) ptr @_ZNK3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3AST4Item8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZNK3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZNK3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(76) ptr @_ZNK3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488)) #4 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Macro") align 8, ptr, ptr) #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST5Crate11root_moduleEv(ptr noundef nonnull align 8 dereferenceable(1112)) #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIK8RcStringPK10MacroRulesEES9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST12AbsolutePath12is_parent_ofERKS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

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

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

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

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

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

declare noundef zeroext i1 @_ZNK3AST10Visibility10is_visibleERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) #7

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(184)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST4Path8Bindings5cloneEv(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(184)) #2 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_4PathERKNS2_11ExternCrateEj(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) #2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(240), i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8) #2 align 2

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

declare noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(8)) #7

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt4spanIPKN3AST6ModuleEE7subspanEmm(ptr dead_on_unwind noalias writable sret(%"class.std::span") align 8, ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef) #2 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!"branch_weights", i32 1, i32 1048575}
!12 = !{!13, !13, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !6, i64 0}
!16 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !6, i64 0, !17, i64 8}
!17 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!18 = !{!17, !6, i64 0}
!19 = !{!17, !6, i64 8}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}
!24 = distinct !{!24, !23}
!25 = distinct !{!25, !23}
!26 = distinct !{!26, !23}
!27 = distinct !{!27, !23}
!28 = distinct !{!28, !23}
!29 = distinct !{!29, !23}
!30 = distinct !{!30, !23}
!31 = distinct !{!31, !23}
!32 = distinct !{!32, !23}
!33 = distinct !{!33, !23}
!34 = distinct !{!34, !23}
!35 = distinct !{!35, !23}
!36 = distinct !{!36, !23}
!37 = distinct !{!37, !23}
!38 = distinct !{!38, !23}
!39 = !{!40, !6, i64 0}
!40 = !{!"_ZTSN3AST16PathBinding_Type10Data_CrateE", !6, i64 0}
!41 = distinct !{!41, !23}
!42 = distinct !{!42, !23}
!43 = !{!44, !6, i64 0}
!44 = !{!"_ZTSN3AST16PathBinding_Type14Data_TypeAliasE", !6, i64 0}
!45 = distinct !{!45, !23}
!46 = distinct !{!46, !23}
!47 = !{!48, !6, i64 0}
!48 = !{!"_ZTSN3AST16PathBinding_Type10Data_TraitE", !6, i64 0, !6, i64 8}
!49 = !{!48, !6, i64 8}
!50 = distinct !{!50, !23}
!51 = distinct !{!51, !23}
!52 = !{!53, !6, i64 0}
!53 = !{!"_ZTSN3AST16PathBinding_Type15Data_TraitAliasE", !6, i64 0, !6, i64 8}
!54 = !{!53, !6, i64 8}
!55 = distinct !{!55, !23}
!56 = distinct !{!56, !23}
!57 = !{!58, !6, i64 0}
!58 = !{!"_ZTSN3AST17PathBinding_Value13Data_FunctionE", !6, i64 0}
!59 = distinct !{!59, !23}
!60 = distinct !{!60, !23}
!61 = !{!62, !6, i64 0}
!62 = !{!"_ZTSN3AST17PathBinding_Value11Data_StaticE", !6, i64 0, !6, i64 8}
!63 = !{!62, !6, i64 8}
!64 = distinct !{!64, !23}
!65 = distinct !{!65, !23}
!66 = !{!67, !6, i64 0}
!67 = !{!"_ZTSN3AST17PathBinding_Value11Data_StructE", !6, i64 0, !6, i64 8}
!68 = !{!67, !6, i64 8}
!69 = !{!70, !6, i64 0}
!70 = !{!"_ZTSN3AST16PathBinding_Type11Data_StructE", !6, i64 0, !6, i64 8}
!71 = !{!70, !6, i64 8}
!72 = distinct !{!72, !23}
!73 = distinct !{!73, !23}
!74 = !{!75, !6, i64 0}
!75 = !{!"_ZTSN3AST16PathBinding_Type9Data_EnumE", !6, i64 0, !6, i64 8}
!76 = !{!75, !6, i64 8}
!77 = distinct !{!77, !23}
!78 = distinct !{!78, !23}
!79 = !{!80, !6, i64 0}
!80 = !{!"_ZTSN3AST16PathBinding_Type10Data_UnionE", !6, i64 0, !6, i64 8}
!81 = !{!80, !6, i64 8}
!82 = distinct !{!82, !23}
!83 = distinct !{!83, !23}
!84 = distinct !{!84, !23}
!85 = distinct !{!85, !23}
!86 = distinct !{!86, !23}
!87 = distinct !{!87, !23}
!88 = !{!89, !6, i64 0}
!89 = !{!"_ZTSN3AST17PathBinding_Macro15Data_MacroRulesE", !6, i64 0, !6, i64 8}
!90 = !{!89, !6, i64 8}
!91 = !{!92, !92, i64 0}
!92 = !{!"long", !7, i64 0}
!93 = distinct !{!93, !23}
!94 = distinct !{!94, !23}
!95 = distinct !{!95, !23}
!96 = distinct !{!96, !23}
!97 = distinct !{!97, !23}
!98 = distinct !{!98, !23}
!99 = distinct !{!99, !23}
!100 = distinct !{!100, !23}
!101 = distinct !{!101, !23}
!102 = distinct !{!102, !23}
!103 = distinct !{!103, !23}
!104 = distinct !{!104, !23}
!105 = !{!106, !6, i64 8}
!106 = !{!"_ZTSSt4pairIK8RcStringPK10MacroRulesE", !107, i64 0, !6, i64 8}
!107 = !{!"_ZTS8RcString", !6, i64 0}
!108 = !{!109, !6, i64 0}
!109 = !{!"_ZTSSt16initializer_listIN3AST8PathNodeEE", !6, i64 0, !92, i64 8}
!110 = !{!109, !92, i64 8}
!111 = distinct !{!111, !23}
!112 = distinct !{!112, !23}
!113 = !{!16, !6, i64 16}
!114 = !{!16, !6, i64 8}
!115 = distinct !{!115, !23}
!116 = distinct !{!116, !23}
!117 = !{!118, !6, i64 0}
!118 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !6, i64 0, !13, i64 8, !6, i64 16}
!119 = !{!118, !13, i64 8}
!120 = !{!118, !6, i64 16}
!121 = !{!122, !6, i64 0}
!122 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !13, i64 8, !6, i64 16}
!123 = !{!122, !13, i64 8}
!124 = !{!122, !6, i64 16}
!125 = !{!126, !10, i64 8}
!126 = !{!"_ZTSN3HIR4Enum11DataVariantE", !107, i64 0, !10, i64 8, !127, i64 16}
!127 = !{!"_ZTSN3HIR7TypeRefE", !6, i64 0}
!128 = distinct !{!128, !23}
!129 = distinct !{!129, !23}
!130 = distinct !{!130, !23}
!131 = distinct !{!131, !23}


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

%"class.std::vector.271" = type { %"struct.std::_Vector_base.272" }
%"struct.std::_Vector_base.272" = type { %"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<const AST::Module *, const char *>, std::allocator<std::pair<const AST::Module *, const char *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.305" = type { %"struct.std::_Vector_base.306" }
%"struct.std::_Vector_base.306" = type { %"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::Path *, std::allocator<const AST::Path *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.311" = type { %"struct.std::_Vector_base.312" }
%"struct.std::_Vector_base.312" = type { %"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::UseItem *, std::allocator<const AST::UseItem *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.113" = type { %"struct.std::_Vector_base.114" }
%"struct.std::_Vector_base.114" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Path" = type { ptr, %"class.AST::Path::Class", %"struct.AST::Path::Bindings" }
%"class.AST::Path::Class" = type { i32, %"union.AST::Path::Class::DataUnion" }
%"union.AST::Path::Class::DataUnion" = type { %"struct.AST::Path::Class::Data_UFCS" }
%"struct.AST::Path::Class::Data_UFCS" = type { %"class.std::unique_ptr.2", %"class.std::unique_ptr.10", %"class.std::vector" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.std::unique_ptr.10" = type { %"struct.std::__uniq_ptr_data.11" }
%"struct.std::__uniq_ptr_data.11" = type { %"class.std::__uniq_ptr_impl.12" }
%"class.std::__uniq_ptr_impl.12" = type { %"class.std::tuple.13" }
%"class.std::tuple.13" = type { %"struct.std::_Tuple_impl.14" }
%"struct.std::_Tuple_impl.14" = type { %"struct.std::_Head_base.17" }
%"struct.std::_Head_base.17" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.23", %"struct.AST::PathBinding.24" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector.18" }
%class.RcString = type { ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::PathBinding_Value" = type { i32, %"union.AST::PathBinding_Value::DataUnion" }
%"union.AST::PathBinding_Value::DataUnion" = type { %"struct.AST::PathBinding_Value::Data_EnumVar" }
%"struct.AST::PathBinding_Value::Data_EnumVar" = type { ptr, i32, ptr }
%"struct.AST::PathBinding.23" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.AST::PathBinding_Type" = type { i32, %"union.AST::PathBinding_Type::DataUnion" }
%"union.AST::PathBinding_Type::DataUnion" = type { %"struct.AST::PathBinding_Type::Data_Module" }
%"struct.AST::PathBinding_Type::Data_Module" = type { ptr, %"struct.AST::PathBinding_Type::(anonymous struct)::Hir" }
%"struct.AST::PathBinding_Type::(anonymous struct)::Hir" = type { ptr, ptr }
%"struct.AST::PathBinding.24" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%class.TraceLog = type { ptr, %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.270 = type { ptr, ptr }
%"struct.std::pair.276" = type { ptr, ptr }
%class.PopOnDrop = type { ptr }
%struct.Span = type { ptr }
%class.anon.279 = type { ptr }
%class.anon.280 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.120" = type { ptr }
%class.anon.281 = type { i8 }
%class.anon.283 = type { i8 }
%class.anon.285 = type { i8 }
%class.anon.287 = type { i8 }
%class.anon.289 = type { i8 }
%class.anon.291 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.292" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.299" = type { ptr }
%class.anon.300 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.301" = type { ptr }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.304" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.310" = type { ptr }
%"class.std::span" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.316" = type { ptr }
%"class.AST::PathNode" = type { %class.RcString, %"struct.AST::PathParams" }
%"struct.AST::PathParams" = type <{ %"class.std::vector.102", i8, [7 x i8] }>
%"class.std::vector.102" = type { %"struct.std::_Vector_base.103" }
%"struct.std::_Vector_base.103" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.318" = type { ptr }
%class.anon.371 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.372" = type { ptr }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%class.anon.409 = type { ptr }
%class.anon.410 = type { ptr }

@__dso_handle = external hidden global i8
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb = external hidden unnamed_addr constant [27 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack = external hidden global %"class.std::vector.271", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack = external hidden global i64, align 8
@.str.23 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [21 x i8], align 1
@__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb = external hidden unnamed_addr constant [197 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods = external hidden global %"class.std::vector.305", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods = external hidden global i64, align 8
@.str.34 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [25 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs = external hidden global %"class.std::vector.311", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs = external hidden global i64, align 8
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack = external hidden global %"class.std::vector.113", align 8
@_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack = external hidden global i64, align 8
@.str.42 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1

; Function Attrs: nofree nounwind
declare i32 @__cxa_atexit(ptr, ptr, ptr) local_unnamed_addr #0

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nounwind
declare void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef) local_unnamed_addr #2

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #6

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #7

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #7

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

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #7

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #7

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #7

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #8

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @__isoc99_sscanf(ptr nocapture noundef readonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #10

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8 %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(480) %4, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef %6, i1 noundef zeroext %7) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %9 = alloca %"struct.AST::Path::Bindings", align 8
  %10 = alloca %class.TraceLog, align 8
  %11 = alloca %"class.std::function", align 8
  %12 = alloca %class.anon.270, align 8
  %13 = alloca %"struct.std::pair.276", align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %class.PopOnDrop, align 8
  %17 = alloca i32, align 4
  %18 = alloca %struct.Span, align 8
  %19 = alloca %"class.std::function", align 8
  %20 = alloca %class.anon.279, align 8
  %21 = alloca %struct.Span, align 8
  %22 = alloca %"class.std::function", align 8
  %23 = alloca %class.anon.280, align 8
  %24 = alloca %"struct.AST::AbsolutePath", align 8
  %25 = alloca %"class.AST::PathBinding_Type", align 8
  %26 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %29 = alloca %"struct.AST::AbsolutePath", align 8
  %30 = alloca %class.RcString, align 8
  %31 = alloca %struct.Span, align 8
  %32 = alloca %"class.std::function", align 8
  %33 = alloca %class.anon.281, align 1
  %34 = alloca %struct.Span, align 8
  %35 = alloca %"class.std::function", align 8
  %36 = alloca %class.anon.283, align 1
  %37 = alloca %struct.Span, align 8
  %38 = alloca %"class.std::function", align 8
  %39 = alloca %class.anon.285, align 1
  %40 = alloca %struct.Span, align 8
  %41 = alloca %"class.std::function", align 8
  %42 = alloca %class.anon.287, align 1
  %43 = alloca %struct.Span, align 8
  %44 = alloca %"class.std::function", align 8
  %45 = alloca %class.anon.289, align 1
  %46 = alloca %struct.Span, align 8
  %47 = alloca %"class.std::function", align 8
  %48 = alloca %class.anon.291, align 8
  %49 = alloca %"struct.AST::AbsolutePath", align 8
  %50 = alloca %class.RcString, align 8
  %51 = alloca %"class.std::vector.18", align 8
  %52 = alloca %"class.AST::PathBinding_Type", align 8
  %53 = alloca %"struct.AST::AbsolutePath", align 8
  %54 = alloca %class.RcString, align 8
  %55 = alloca %"class.std::vector.18", align 8
  %56 = alloca %"class.AST::PathBinding_Type", align 8
  %57 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %58 = alloca %"struct.AST::AbsolutePath", align 8
  %59 = alloca %"class.AST::PathBinding_Type", align 8
  %60 = alloca %"struct.AST::AbsolutePath", align 8
  %61 = alloca %"class.AST::PathBinding_Type", align 8
  %62 = alloca %"struct.AST::AbsolutePath", align 8
  %63 = alloca %"class.AST::PathBinding_Type", align 8
  %64 = alloca %"struct.AST::AbsolutePath", align 8
  %65 = alloca %"class.AST::PathBinding_Value", align 8
  %66 = alloca %"struct.AST::AbsolutePath", align 8
  %67 = alloca %"class.AST::PathBinding_Value", align 8
  %68 = alloca %"struct.AST::AbsolutePath", align 8
  %69 = alloca %"class.AST::PathBinding_Value", align 8
  %70 = alloca %"struct.AST::AbsolutePath", align 8
  %71 = alloca %"class.AST::PathBinding_Type", align 8
  %72 = alloca %"struct.AST::AbsolutePath", align 8
  %73 = alloca %"class.AST::PathBinding_Type", align 8
  %74 = alloca %"struct.AST::AbsolutePath", align 8
  %75 = alloca %"class.AST::PathBinding_Type", align 8
  %76 = alloca %"struct.AST::AbsolutePath", align 8
  %77 = alloca %"class.AST::PathBinding_Type", align 8
  %78 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %79 = alloca %"class.__gnu_cxx::__normal_iterator.292", align 8
  %80 = alloca %"class.__gnu_cxx::__normal_iterator.292", align 8
  %81 = alloca %"struct.AST::AbsolutePath", align 8
  %82 = alloca %class.RcString, align 8
  %83 = alloca %"class.AST::PathBinding_Macro", align 8
  %84 = alloca %"class.std::vector.113", align 8
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca %"class.__gnu_cxx::__normal_iterator.299", align 8
  %88 = alloca %"class.__gnu_cxx::__normal_iterator.299", align 8
  %89 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %90 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %91 = alloca %struct.Span, align 8
  %92 = alloca %"class.std::function", align 8
  %93 = alloca %class.anon.300, align 8
  %94 = alloca %"class.__gnu_cxx::__normal_iterator.301", align 8
  %95 = alloca %"class.__gnu_cxx::__normal_iterator.301", align 8
  %96 = alloca %"struct.AST::AbsolutePath", align 8
  %97 = alloca %"class.AST::PathBinding_Macro", align 8
  %98 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %99 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %100 = alloca %"struct.AST::AbsolutePath", align 8
  %101 = alloca %class.RcString, align 8
  %102 = alloca %"class.AST::PathBinding_Macro", align 8
  %103 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %104 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %105 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %106 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %107 = alloca %"class.__gnu_cxx::__normal_iterator.310", align 8
  %108 = alloca ptr, align 8
  %109 = alloca %"class.__gnu_cxx::__normal_iterator.310", align 8
  %110 = alloca ptr, align 8
  %111 = alloca %"struct.AST::Path::Bindings", align 8
  %112 = alloca %"class.AST::Path", align 8
  %113 = alloca %"class.AST::Path", align 8
  %114 = alloca %"class.AST::Path", align 8
  %115 = alloca %"class.std::span", align 8
  %116 = alloca %"struct.AST::Path::Bindings", align 8
  %117 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %118 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %119 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %120 = alloca %"class.__gnu_cxx::__normal_iterator.304", align 8
  %121 = alloca %"struct.AST::Path::Bindings", align 8
  %122 = alloca ptr, align 8
  %123 = alloca %"class.__gnu_cxx::__normal_iterator.316", align 8
  %124 = alloca ptr, align 8
  %125 = alloca %"class.__gnu_cxx::__normal_iterator.316", align 8
  %126 = alloca ptr, align 8
  %127 = alloca %"struct.AST::Path::Bindings", align 8
  %128 = alloca %"class.AST::Path", align 8
  %129 = alloca %"class.AST::Path", align 8
  %130 = alloca %"class.AST::Path", align 8
  %131 = alloca %"class.std::span", align 8
  %132 = alloca %"struct.AST::Path::Bindings", align 8
  %133 = alloca %"struct.AST::Path::Bindings", align 8
  %134 = alloca %"class.AST::Path", align 8
  %135 = alloca %class.RcString, align 8
  %136 = alloca %"class.std::vector", align 8
  %137 = alloca [1 x %"class.AST::PathNode"], align 8
  %138 = alloca %class.RcString, align 8
  %139 = alloca %"struct.AST::PathParams", align 8
  %140 = alloca %"class.std::allocator", align 1
  %141 = alloca %"class.__gnu_cxx::__normal_iterator.318", align 8
  %142 = alloca ptr, align 8
  %143 = alloca %"class.__gnu_cxx::__normal_iterator.318", align 8
  %144 = alloca ptr, align 8
  %145 = alloca %"struct.AST::Path::Bindings", align 8
  %146 = alloca %"class.std::span", align 8
  %147 = alloca %"struct.AST::Path::Bindings", align 8
  %148 = alloca %"class.AST::Path", align 8
  %149 = alloca %class.RcString, align 8
  %150 = alloca %"class.std::vector", align 8
  %151 = alloca [1 x %"class.AST::PathNode"], align 8
  %152 = alloca %class.RcString, align 8
  %153 = alloca %"struct.AST::PathParams", align 8
  %154 = alloca %"class.std::allocator", align 1
  %155 = alloca %"struct.AST::AbsolutePath", align 8
  %156 = alloca %struct.Span, align 8
  %157 = alloca %"class.std::function", align 8
  %158 = alloca %class.anon.371, align 8
  %159 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %160 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %161 = alloca %"struct.AST::Path::Bindings", align 8
  %162 = alloca %"struct.AST::AbsolutePath", align 8
  %163 = alloca %class.RcString, align 8
  %164 = alloca %"class.AST::PathBinding_Type", align 8
  %165 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %166 = alloca %"struct.AST::AbsolutePath", align 8
  %167 = alloca %class.RcString, align 8
  %168 = alloca %"class.AST::PathBinding_Value", align 8
  %169 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %170 = alloca %"struct.AST::Path::Bindings", align 8
  %171 = alloca %"struct.AST::AbsolutePath", align 8
  %172 = alloca %class.RcString, align 8
  %173 = alloca %"class.AST::PathBinding_Type", align 8
  %174 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %175 = alloca %"struct.AST::AbsolutePath", align 8
  %176 = alloca %class.RcString, align 8
  %177 = alloca %"class.AST::PathBinding_Value", align 8
  %178 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %179 = alloca %struct.Span, align 8
  %180 = alloca %"class.std::function", align 8
  %181 = alloca %class.anon.409, align 8
  %182 = alloca %struct.Span, align 8
  %183 = alloca %"class.std::function", align 8
  %184 = alloca %class.anon.410, align 8
  %185 = alloca %"class.std::span", align 8
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %9) #11
  call void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %9)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #11
  %186 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %187 unwind label %221

187:                                              ; preds = %8
  %188 = select i1 %186, ptr @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #11
  store ptr %4, ptr %12, align 8, !tbaa !5
  %189 = getelementptr inbounds i8, ptr %12, i64 8
  store ptr %5, ptr %189, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(16) %12) #11
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef %188, ptr noundef nonnull %11)
          to label %190 unwind label %223

190:                                              ; preds = %187
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #11
  %191 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack acquire, align 8
  %192 = icmp eq i8 %191, 0
  br i1 %192, label %193, label %197, !prof !9

193:                                              ; preds = %190
  %194 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #11
  %.not = icmp eq i32 %194, 0
  br i1 %.not, label %197, label %195

195:                                              ; preds = %193
  call void @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #11
  %196 = call i32 @__cxa_atexit(ptr nonnull @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EED2Ev, ptr nonnull @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack, ptr nonnull @__dso_handle) #11
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #11
  br label %197

197:                                              ; preds = %195, %193, %190
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  store ptr %4, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  %198 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  store ptr %198, ptr %15, align 8, !tbaa !5
  %199 = invoke { ptr, ptr } @_ZSt9make_pairIPKN3AST6ModuleEPKcESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %200 unwind label %225

200:                                              ; preds = %197
  %201 = extractvalue { ptr, ptr } %199, 0
  store ptr %201, ptr %13, align 8
  %202 = getelementptr inbounds i8, ptr %13, i64 8
  %203 = extractvalue { ptr, ptr } %199, 1
  store ptr %203, ptr %202, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %204 = call ptr @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #11
  %205 = call ptr @_ZNSt6vectorISt4pairIPKN3AST6ModuleEPKcESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack) #11
  %206 = invoke noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPSt4pairIPKN3AST6ModuleEPKcESt6vectorIS9_SaIS9_EEEES9_ENSt15iterator_traitsIT_E15difference_typeESG_SG_RKT0_(ptr %204, ptr %205, ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %207 unwind label %227

207:                                              ; preds = %200
  %208 = icmp sgt i64 %206, 1
  br i1 %208, label %209, label %230

209:                                              ; preds = %207
  %210 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %211 unwind label %227

211:                                              ; preds = %209
  br i1 %210, label %212, label %229

212:                                              ; preds = %211
  %213 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %213, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %215 unwind label %227

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

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

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

221:                                              ; preds = %8
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %1377

223:                                              ; preds = %187
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #11
  br label %1377

225:                                              ; preds = %197
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %1376

227:                                              ; preds = %229, %219, %217, %215, %212, %209, %200
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %1376

229:                                              ; preds = %219, %211
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %9)
          to label %1375 unwind label %227

230:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %.sroa.0298.0.copyload = load ptr, ptr %13, align 8
  %.sroa.2299.0.copyload = load ptr, ptr %202, align 8
  invoke void @_Z19push_and_pop_at_endISt4pairIPKN3AST6ModuleEPKcEE9PopOnDropIT_ERSt6vectorIS9_SaIS9_EES9_(ptr dead_on_unwind nonnull writable sret(%class.PopOnDrop) align 8 %16, ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE15s_recurse_stack, ptr %.sroa.0298.0.copyload, ptr %.sroa.2299.0.copyload)
          to label %231 unwind label %244

231:                                              ; preds = %230
  %232 = call noundef i64 @_ZNK8RcString4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  %.not566 = icmp eq i64 %232, 0
  br i1 %.not566, label %.split1734, label %233

233:                                              ; preds = %231
  %234 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  %235 = load i8, ptr %234, align 1, !tbaa !12
  %236 = icmp eq i8 %235, 35
  br i1 %236, label %237, label %.split1734

237:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #11
  store i32 0, ptr %17, align 4, !tbaa !10
  %238 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %5)
  %239 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %238, ptr noundef nonnull @.str.10, ptr noundef nonnull %17) #11
  %.not718 = icmp eq i32 %239, 1
  br i1 %.not718, label %257, label %240

240:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %241 unwind label %250

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  store ptr %5, ptr %20, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull %19)
          to label %242 unwind label %252

242:                                              ; preds = %241
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  %243 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %243, ptr noundef nonnull @.str.5)
          to label %.invoke unwind label %255

244:                                              ; preds = %230
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %1374

246:                                              ; preds = %761, %757, %712, %.loopexit782
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %1373

248:                                              ; preds = %.invoke
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %298

250:                                              ; preds = %240
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %254

252:                                              ; preds = %241
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  br label %254

254:                                              ; preds = %252, %250
  %.pn723 = phi { ptr, i32 } [ %253, %252 ], [ %251, %250 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  br label %298

255:                                              ; preds = %242
  %256 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %243) #11
  br label %298

257:                                              ; preds = %237
  %258 = load i32, ptr %17, align 4, !tbaa !10
  %259 = zext i32 %258 to i64
  %260 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %261 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %260) #11
  %262 = icmp ugt i64 %261, %259
  br i1 %262, label %275, label %263

263:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %264 unwind label %268

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  store ptr %5, ptr %23, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull %22)
          to label %265 unwind label %270

265:                                              ; preds = %264
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  %266 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %266, ptr noundef nonnull @.str.5)
          to label %.invoke unwind label %273

.invoke:                                          ; preds = %242, %265
  %267 = phi ptr [ %266, %265 ], [ %243, %242 ]
  invoke void @__cxa_throw(ptr nonnull %267, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %.cont unwind label %248

.cont:                                            ; preds = %.invoke
  unreachable

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

270:                                              ; preds = %264
  %271 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #11
  br label %272

272:                                              ; preds = %270, %268
  %.pn719 = phi { ptr, i32 } [ %271, %270 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  br label %298

273:                                              ; preds = %265
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %266) #11
  br label %298

275:                                              ; preds = %257
  %276 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %277 = load i32, ptr %17, align 4, !tbaa !10
  %278 = zext i32 %277 to i64
  %279 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %276, i64 noundef %278) #11
  %280 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %279) #11
  br i1 %280, label %282, label %281

281:                                              ; preds = %275
  call void @__assert_fail(ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.4, i32 noundef 393, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #13
  unreachable

282:                                              ; preds = %275
  %283 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %284 = load i32, ptr %17, align 4, !tbaa !10
  %285 = zext i32 %284 to i64
  %286 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %283, i64 noundef %285) #11
  %287 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %286) #11
  %288 = getelementptr inbounds i8, ptr %9, i64 64
  %289 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %287)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %289)
          to label %290 unwind label %294

290:                                              ; preds = %282
  store ptr %287, ptr %26, align 8, !tbaa !13
  %291 = getelementptr inbounds i8, ptr %26, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %291, i8 0, i64 16, i1 false)
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %25, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %26)
          to label %292 unwind label %296

292:                                              ; preds = %290
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %288, ptr noundef nonnull %24, ptr noundef nonnull %25)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %9)
          to label %293 unwind label %294

293:                                              ; preds = %292
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #11
  br label %1372

294:                                              ; preds = %292, %282
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %298

296:                                              ; preds = %290
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  br label %298

298:                                              ; preds = %294, %296, %273, %272, %255, %254, %248
  %.pn725 = phi { ptr, i32 } [ %249, %248 ], [ %256, %255 ], [ %.pn723, %254 ], [ %274, %273 ], [ %.pn719, %272 ], [ %295, %294 ], [ %297, %296 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #11
  br label %1373

.split1734:                                       ; preds = %233, %231
  %299 = getelementptr inbounds i8, ptr %4, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %300 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #11
  store ptr %300, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  %301 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #11
  store ptr %301, ptr %28, align 8
  %302 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #11
  br i1 %302, label %.lr.ph1735, label %._crit_edge

.lr.ph1735:                                       ; preds = %.split1734
  %303 = getelementptr inbounds i8, ptr %9, i64 64
  %304 = getelementptr inbounds i8, ptr %78, i64 8
  %305 = getelementptr inbounds i8, ptr %2, i64 72
  %306 = getelementptr inbounds i8, ptr %57, i64 8
  %307 = getelementptr inbounds i8, ptr %2, i64 576
  br label %312

._crit_edge:                                      ; preds = %.critedge733, %.split1734
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  %308 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #11
  %309 = call ptr @_ZNKSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #11
  store ptr %309, ptr %79, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #11
  %310 = call ptr @_ZNKSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #11
  store ptr %310, ptr %80, align 8
  %311 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %80) #11
  br i1 %311, label %.lr.ph1737, label %.loopexit782

312:                                              ; preds = %.lr.ph1735, %.critedge733
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #11
  %314 = call noundef nonnull align 8 dereferenceable(568) ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %313) #11
  %315 = getelementptr inbounds i8, ptr %314, i64 80
  %316 = call noundef zeroext i1 @_ZNK3AST4Item7is_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  br i1 %316, label %.critedge733, label %319

317:                                              ; preds = %319
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %532

319:                                              ; preds = %312
  %320 = getelementptr inbounds i8, ptr %314, i64 72
  %321 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %322 unwind label %317

322:                                              ; preds = %319
  br i1 %321, label %323, label %.critedge733

323:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #11
  %324 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %320)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef nonnull %30)
          to label %325 unwind label %341

325:                                              ; preds = %323
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #11
  %326 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %327 unwind label %343

327:                                              ; preds = %325
  br i1 %326, label %328, label %.lr.ph

328:                                              ; preds = %327
  %329 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %329, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %331 unwind label %343

331:                                              ; preds = %328
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef nonnull @.str.25)
          to label %333 unwind label %343

333:                                              ; preds = %331
  %334 = invoke noundef ptr @_ZNK3AST4Item7tag_strEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
          to label %335 unwind label %343

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

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

339:                                              ; preds = %337
  %340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %338, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.lr.ph unwind label %343

341:                                              ; preds = %323
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #11
  br label %529

343:                                              ; preds = %339, %337, %335, %333, %331, %328, %325
  %344 = landingpad { ptr, i32 }
          cleanup
  br label %528

.loopexit833:                                     ; preds = %.preheader810, %.preheader808, %.preheader806, %.lr.ph, %..loopexit797_crit_edge, %..loopexit798_crit_edge, %..loopexit799_crit_edge, %..loopexit800_crit_edge, %..loopexit801_crit_edge, %..loopexit802_crit_edge, %..loopexit803_crit_edge, %..loopexit804_crit_edge, %..loopexit805_crit_edge, %473, %481, %441, %449
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %.critedge733

.lr.ph:                                           ; preds = %339, %327
  %345 = call noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  switch i32 %345, label %.loopexit833 [
    i32 0, label %360
    i32 1, label %.preheader806
    i32 2, label %361
    i32 5, label %376
    i32 8, label %.preheader808
    i32 3, label %.preheader810
    i32 6, label %391
    i32 7, label %406
    i32 4, label %421
    i32 10, label %.lr.ph1556
    i32 11, label %.preheader814
    i32 15, label %.preheader816
    i32 16, label %.preheader818
    i32 17, label %.preheader820
    i32 18, label %.preheader822
    i32 12, label %.preheader824
    i32 13, label %.preheader826
    i32 14, label %.preheader828
    i32 9, label %.preheader830
  ]

.preheader830:                                    ; preds = %.lr.ph
  %346 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %526 unwind label %.split.split

.preheader828:                                    ; preds = %.lr.ph
  %347 = call noundef nonnull align 8 dereferenceable(76) ptr @_ZNK3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %523 unwind label %.split1011.split

.preheader826:                                    ; preds = %.lr.ph
  %348 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %520 unwind label %.split1070.split

.preheader824:                                    ; preds = %.lr.ph
  %349 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZNK3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  %350 = getelementptr inbounds i8, ptr %349, i64 48
  %351 = call noundef zeroext i1 @_ZNK3AST10StructData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %350)
  br i1 %351, label %516, label %509

.preheader822:                                    ; preds = %.lr.ph
  %352 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %503 unwind label %.split1213.split

.preheader820:                                    ; preds = %.lr.ph
  %353 = call noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %497 unwind label %.split1278.split

.preheader818:                                    ; preds = %.lr.ph
  %354 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %494 unwind label %.split1345.split

.preheader816:                                    ; preds = %.lr.ph
  %355 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3AST4Item8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %491 unwind label %.split1414.split

.preheader814:                                    ; preds = %.lr.ph
  %356 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %488 unwind label %.split1485.split

.preheader810:                                    ; preds = %.lr.ph
  %357 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  br label %.loopexit833

.preheader808:                                    ; preds = %.lr.ph
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_MacroEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  br label %.loopexit833

.preheader806:                                    ; preds = %.lr.ph
  %359 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  br label %.loopexit833

360:                                              ; preds = %.lr.ph
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 409, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #13
  unreachable

361:                                              ; preds = %.lr.ph
  %362 = call noundef nonnull align 8 dereferenceable(393) ptr @_ZNK3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %365 unwind label %369

363:                                              ; preds = %368
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %528

365:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 1 dereferenceable(1) %33) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull %32)
          to label %366 unwind label %371

366:                                              ; preds = %365
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  %367 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %367, ptr noundef nonnull @.str.5)
          to label %368 unwind label %374

368:                                              ; preds = %366
  invoke void @__cxa_throw(ptr nonnull %367, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %363

369:                                              ; preds = %361
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %373

371:                                              ; preds = %365
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  br label %373

373:                                              ; preds = %371, %369
  %.pn710 = phi { ptr, i32 } [ %372, %371 ], [ %370, %369 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  br label %528

374:                                              ; preds = %366
  %375 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %367) #11
  br label %528

376:                                              ; preds = %.lr.ph
  %377 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZNK3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %380 unwind label %384

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

380:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull %35)
          to label %381 unwind label %386

381:                                              ; preds = %380
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  %382 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %382, ptr noundef nonnull @.str.5)
          to label %383 unwind label %389

383:                                              ; preds = %381
  invoke void @__cxa_throw(ptr nonnull %382, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %378

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

386:                                              ; preds = %380
  %387 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #11
  br label %388

388:                                              ; preds = %386, %384
  %.pn706 = phi { ptr, i32 } [ %387, %386 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  br label %528

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

391:                                              ; preds = %.lr.ph
  %392 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNK3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %395 unwind label %399

393:                                              ; preds = %398
  %394 = landingpad { ptr, i32 }
          cleanup
  br label %528

395:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull %38)
          to label %396 unwind label %401

396:                                              ; preds = %395
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  %397 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %397, ptr noundef nonnull @.str.5)
          to label %398 unwind label %404

398:                                              ; preds = %396
  invoke void @__cxa_throw(ptr nonnull %397, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %393

399:                                              ; preds = %391
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %403

401:                                              ; preds = %395
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #11
  br label %403

403:                                              ; preds = %401, %399
  %.pn702 = phi { ptr, i32 } [ %402, %401 ], [ %400, %399 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  br label %528

404:                                              ; preds = %396
  %405 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %397) #11
  br label %528

406:                                              ; preds = %.lr.ph
  %407 = call noundef nonnull align 8 dereferenceable(448) ptr @_ZNK3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %410 unwind label %414

408:                                              ; preds = %413
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %528

410:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 1 dereferenceable(1) %42) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull %41)
          to label %411 unwind label %416

411:                                              ; preds = %410
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  %412 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %412, ptr noundef nonnull @.str.5)
          to label %413 unwind label %419

413:                                              ; preds = %411
  invoke void @__cxa_throw(ptr nonnull %412, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %408

414:                                              ; preds = %406
  %415 = landingpad { ptr, i32 }
          cleanup
  br label %418

416:                                              ; preds = %410
  %417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #11
  br label %418

418:                                              ; preds = %416, %414
  %.pn698 = phi { ptr, i32 } [ %417, %416 ], [ %415, %414 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #11
  br label %528

419:                                              ; preds = %411
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %412) #11
  br label %528

421:                                              ; preds = %.lr.ph
  %422 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %425 unwind label %429

423:                                              ; preds = %428
  %424 = landingpad { ptr, i32 }
          cleanup
  br label %528

425:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 1 dereferenceable(1) %45) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull %44)
          to label %426 unwind label %431

426:                                              ; preds = %425
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #11
  %427 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %427, ptr noundef nonnull @.str.5)
          to label %428 unwind label %434

428:                                              ; preds = %426
  invoke void @__cxa_throw(ptr nonnull %427, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %423

429:                                              ; preds = %421
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %433

431:                                              ; preds = %425
  %432 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #11
  br label %433

433:                                              ; preds = %431, %429
  %.pn694 = phi { ptr, i32 } [ %432, %431 ], [ %430, %429 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #11
  br label %528

434:                                              ; preds = %426
  %435 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %427) #11
  br label %528

.loopexit792:                                     ; preds = %.lr.ph1556, %439, %442, %445, %447, %449, %451, %454
  %lpad.loopexit794 = landingpad { ptr, i32 }
          cleanup
  br label %528

.loopexit.split-lp793:                            ; preds = %461
  %lpad.loopexit.split-lp795 = landingpad { ptr, i32 }
          cleanup
  br label %528

.lr.ph1556:                                       ; preds = %.lr.ph
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(488) %315)
  %437 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %303)
          to label %438 unwind label %.loopexit792

438:                                              ; preds = %.lr.ph1556
  br i1 %437, label %451, label %439

439:                                              ; preds = %438
  %440 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %441 unwind label %.loopexit792

441:                                              ; preds = %439
  br i1 %440, label %442, label %.loopexit833

442:                                              ; preds = %441
  %443 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %443, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %445 unwind label %.loopexit792

445:                                              ; preds = %442
  %446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull @.str.26)
          to label %447 unwind label %.loopexit792

447:                                              ; preds = %445
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %446, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %449 unwind label %.loopexit792

449:                                              ; preds = %447
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.loopexit833 unwind label %.loopexit792

451:                                              ; preds = %438
  %452 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef nonnull @.str.2)
          to label %453 unwind label %.loopexit792

453:                                              ; preds = %451
  br i1 %452, label %454, label %479

454:                                              ; preds = %453
  %455 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %307, ptr noundef nonnull align 8 dereferenceable(8) %436)
          to label %456 unwind label %.loopexit792

456:                                              ; preds = %454
  %.not688 = icmp eq i64 %455, 0
  br i1 %.not688, label %457, label %469

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %458 unwind label %462

458:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #11
  store ptr %436, ptr %48, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull %47)
          to label %459 unwind label %464

459:                                              ; preds = %458
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  %460 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %460, ptr noundef nonnull @.str.5)
          to label %461 unwind label %467

461:                                              ; preds = %459
  invoke void @__cxa_throw(ptr nonnull %460, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %.loopexit.split-lp793

462:                                              ; preds = %457
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %466

464:                                              ; preds = %458
  %465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  br label %466

466:                                              ; preds = %464, %462
  %.pn689 = phi { ptr, i32 } [ %465, %464 ], [ %463, %462 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  br label %528

467:                                              ; preds = %459
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %460) #11
  br label %528

469:                                              ; preds = %456
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %436)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %51, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorI8RcStringSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #11
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull %50, ptr noundef nonnull %51)
          to label %470 unwind label %474

470:                                              ; preds = %469
  %471 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %307, ptr noundef nonnull align 8 dereferenceable(8) %436)
          to label %472 unwind label %476

472:                                              ; preds = %470
  invoke void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %52, ptr nonnull %471)
          to label %473 unwind label %476

473:                                              ; preds = %472
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %49, ptr noundef nonnull %52)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  br label %.loopexit833

474:                                              ; preds = %469
  %475 = landingpad { ptr, i32 }
          cleanup
  br label %478

476:                                              ; preds = %472, %470
  %477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  br label %478

478:                                              ; preds = %476, %474
  %.pn691 = phi { ptr, i32 } [ %477, %476 ], [ %475, %474 ]
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  br label %528

479:                                              ; preds = %453
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %436)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorI8RcStringSaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull %54, ptr noundef nonnull %55)
          to label %480 unwind label %482

480:                                              ; preds = %479
  store ptr %305, ptr %57, align 8, !tbaa !13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %306, i8 0, i64 16, i1 false)
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %56, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %57)
          to label %481 unwind label %484

481:                                              ; preds = %480
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %53, ptr noundef nonnull %56)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  br label %.loopexit833

482:                                              ; preds = %479
  %483 = landingpad { ptr, i32 }
          cleanup
  br label %486

484:                                              ; preds = %480
  %485 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  br label %486

486:                                              ; preds = %484, %482
  %.pn686 = phi { ptr, i32 } [ %485, %484 ], [ %483, %482 ]
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  br label %528

.split1485.split:                                 ; preds = %.preheader814
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %528

488:                                              ; preds = %.preheader814
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %59, ptr nonnull %356)
          to label %..loopexit797_crit_edge unwind label %.split1488.split

..loopexit797_crit_edge:                          ; preds = %488
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %58, ptr noundef nonnull %59)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  br label %.loopexit833

.split1488.split:                                 ; preds = %488
  %489 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  br label %528

.split1414.split:                                 ; preds = %.preheader816
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %528

491:                                              ; preds = %.preheader816
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %61, ptr nonnull %355, ptr null)
          to label %..loopexit798_crit_edge unwind label %.split1417.split

..loopexit798_crit_edge:                          ; preds = %491
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %60, ptr noundef nonnull %61)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #11
  br label %.loopexit833

.split1417.split:                                 ; preds = %491
  %492 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #11
  br label %528

.split1345.split:                                 ; preds = %.preheader818
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %528

494:                                              ; preds = %.preheader818
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %63, ptr nonnull %354, ptr null)
          to label %..loopexit799_crit_edge unwind label %.split1348.split

..loopexit799_crit_edge:                          ; preds = %494
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %62, ptr noundef nonnull %63)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  br label %.loopexit833

.split1348.split:                                 ; preds = %494
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  br label %528

.split1278.split:                                 ; preds = %.preheader820
  %496 = landingpad { ptr, i32 }
          cleanup
  br label %528

497:                                              ; preds = %.preheader820
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %65, ptr nonnull %353)
          to label %498 unwind label %.split1281.split

498:                                              ; preds = %497
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull %64, ptr noundef nonnull %65)
          to label %..loopexit800_crit_edge unwind label %.split1284.split

..loopexit800_crit_edge:                          ; preds = %498
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  br label %.loopexit833

.split1281.split:                                 ; preds = %497
  %499 = landingpad { ptr, i32 }
          cleanup
  br label %501

.split1284.split:                                 ; preds = %498
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  br label %501

501:                                              ; preds = %.split1284.split, %.split1281.split
  %.pn677 = phi { ptr, i32 } [ %500, %.split1284.split ], [ %499, %.split1281.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  br label %528

.split1213.split:                                 ; preds = %.preheader822
  %502 = landingpad { ptr, i32 }
          cleanup
  br label %528

503:                                              ; preds = %.preheader822
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %67, ptr nonnull %352, ptr null)
          to label %504 unwind label %.split1216.split

504:                                              ; preds = %503
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull %66, ptr noundef nonnull %67)
          to label %..loopexit801_crit_edge unwind label %.split1219.split

..loopexit801_crit_edge:                          ; preds = %504
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  br label %.loopexit833

.split1216.split:                                 ; preds = %503
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %507

.split1219.split:                                 ; preds = %504
  %506 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #11
  br label %507

507:                                              ; preds = %.split1219.split, %.split1216.split
  %.pn674 = phi { ptr, i32 } [ %506, %.split1219.split ], [ %505, %.split1216.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  br label %528

.split1131.split:                                 ; preds = %516, %509
  %508 = landingpad { ptr, i32 }
          cleanup
  br label %528

509:                                              ; preds = %.preheader824
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %510 unwind label %.split1131.split

510:                                              ; preds = %509
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %69, ptr nonnull %349, ptr null)
          to label %511 unwind label %.split1134.split

511:                                              ; preds = %510
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %9, ptr noundef nonnull %68, ptr noundef nonnull %69)
          to label %512 unwind label %.split1137.split

512:                                              ; preds = %511
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #11
  br label %516

.split1134.split:                                 ; preds = %510
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %515

.split1137.split:                                 ; preds = %511
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  br label %515

515:                                              ; preds = %.split1137.split, %.split1134.split
  %.pn670 = phi { ptr, i32 } [ %514, %.split1137.split ], [ %513, %.split1134.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #11
  br label %528

516:                                              ; preds = %512, %.preheader824
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %517 unwind label %.split1131.split

517:                                              ; preds = %516
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %71, ptr nonnull %349, ptr null)
          to label %..loopexit802_crit_edge unwind label %.split1140.split

..loopexit802_crit_edge:                          ; preds = %517
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %70, ptr noundef nonnull %71)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  br label %.loopexit833

.split1140.split:                                 ; preds = %517
  %518 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  br label %528

.split1070.split:                                 ; preds = %.preheader826
  %519 = landingpad { ptr, i32 }
          cleanup
  br label %528

520:                                              ; preds = %.preheader826
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %73, ptr nonnull %348, ptr null)
          to label %..loopexit803_crit_edge unwind label %.split1073.split

..loopexit803_crit_edge:                          ; preds = %520
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %72, ptr noundef nonnull %73)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  br label %.loopexit833

.split1073.split:                                 ; preds = %520
  %521 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  br label %528

.split1011.split:                                 ; preds = %.preheader828
  %522 = landingpad { ptr, i32 }
          cleanup
  br label %528

523:                                              ; preds = %.preheader828
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %75, ptr nonnull %347, ptr null)
          to label %..loopexit804_crit_edge unwind label %.split1014.split

..loopexit804_crit_edge:                          ; preds = %523
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %74, ptr noundef nonnull %75)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  br label %.loopexit833

.split1014.split:                                 ; preds = %523
  %524 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  br label %528

.split.split:                                     ; preds = %.preheader830
  %525 = landingpad { ptr, i32 }
          cleanup
  br label %528

526:                                              ; preds = %.preheader830
  store ptr %346, ptr %78, align 8, !tbaa !13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %304, i8 0, i64 16, i1 false)
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %77, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %78)
          to label %..loopexit805_crit_edge unwind label %.split947.split

..loopexit805_crit_edge:                          ; preds = %526
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %303, ptr noundef nonnull %76, ptr noundef nonnull %77)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  br label %.loopexit833

.split947.split:                                  ; preds = %526
  %527 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  br label %528

528:                                              ; preds = %.loopexit792, %.loopexit.split-lp793, %374, %373, %363, %389, %388, %378, %404, %403, %393, %419, %418, %408, %434, %433, %423, %486, %478, %467, %466, %.split1488.split, %.split1485.split, %.split1417.split, %.split1414.split, %.split1348.split, %.split1345.split, %501, %.split1278.split, %507, %.split1213.split, %.split1140.split, %515, %.split1131.split, %.split1073.split, %.split1070.split, %.split1014.split, %.split1011.split, %.split947.split, %.split.split, %343
  %.pn664.pn.pn = phi { ptr, i32 } [ %344, %343 ], [ %364, %363 ], [ %375, %374 ], [ %.pn710, %373 ], [ %379, %378 ], [ %390, %389 ], [ %.pn706, %388 ], [ %394, %393 ], [ %405, %404 ], [ %.pn702, %403 ], [ %409, %408 ], [ %420, %419 ], [ %.pn698, %418 ], [ %424, %423 ], [ %435, %434 ], [ %.pn694, %433 ], [ %.pn691, %478 ], [ %468, %467 ], [ %.pn689, %466 ], [ %.pn686, %486 ], [ %489, %.split1488.split ], [ %487, %.split1485.split ], [ %492, %.split1417.split ], [ %490, %.split1414.split ], [ %495, %.split1348.split ], [ %493, %.split1345.split ], [ %.pn677, %501 ], [ %496, %.split1278.split ], [ %.pn674, %507 ], [ %502, %.split1213.split ], [ %518, %.split1140.split ], [ %508, %.split1131.split ], [ %.pn670, %515 ], [ %521, %.split1073.split ], [ %519, %.split1070.split ], [ %524, %.split1014.split ], [ %522, %.split1011.split ], [ %527, %.split947.split ], [ %525, %.split.split ], [ %lpad.loopexit794, %.loopexit792 ], [ %lpad.loopexit.split-lp795, %.loopexit.split-lp793 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %529

529:                                              ; preds = %528, %341
  %.pn664.pn.pn.pn = phi { ptr, i32 } [ %.pn664.pn.pn, %528 ], [ %342, %341 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %532

.critedge733:                                     ; preds = %.loopexit833, %322, %312
  %530 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #11
  %531 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #11
  br i1 %531, label %312, label %._crit_edge

532:                                              ; preds = %529, %317
  %.pn664.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn664.pn.pn.pn, %529 ], [ %318, %317 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  br label %1373

.lr.ph1737:                                       ; preds = %._crit_edge, %.critedge735
  %533 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %79) #11
  %534 = getelementptr inbounds i8, ptr %533, i64 72
  %535 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %534, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %536 unwind label %.loopexit783

536:                                              ; preds = %.lr.ph1737
  br i1 %535, label %537, label %.critedge735

537:                                              ; preds = %536
  %538 = getelementptr inbounds i8, ptr %9, i64 128
  %539 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %534)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %81, ptr noundef nonnull align 8 dereferenceable(32) %539, ptr noundef nonnull %82)
          to label %540 unwind label %558

540:                                              ; preds = %537
  %541 = getelementptr inbounds i8, ptr %533, i64 80
  %542 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %541)
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %83, ptr null, ptr nonnull %542)
          to label %543 unwind label %560

543:                                              ; preds = %540
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %538, ptr noundef nonnull %81, ptr noundef nonnull %83)
          to label %544 unwind label %562

544:                                              ; preds = %543
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #11
  %545 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %546 unwind label %.loopexit.split-lp784

546:                                              ; preds = %544
  br i1 %545, label %547, label %.loopexit782

547:                                              ; preds = %546
  %548 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %548, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %550 unwind label %.loopexit.split-lp784

550:                                              ; preds = %547
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %549, ptr noundef nonnull @.str.27)
          to label %552 unwind label %.loopexit.split-lp784

552:                                              ; preds = %550
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef nonnull align 8 dereferenceable(32) %538)
          to label %554 unwind label %.loopexit.split-lp784

554:                                              ; preds = %552
  %555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %553, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %556 unwind label %.loopexit.split-lp784

556:                                              ; preds = %554
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.loopexit782 unwind label %.loopexit.split-lp784

.loopexit783:                                     ; preds = %.lr.ph1737
  %lpad.loopexit785 = landingpad { ptr, i32 }
          cleanup
  br label %568

.loopexit.split-lp784:                            ; preds = %544, %547, %550, %552, %554, %556
  %lpad.loopexit.split-lp786 = landingpad { ptr, i32 }
          cleanup
  br label %568

558:                                              ; preds = %537
  %559 = landingpad { ptr, i32 }
          cleanup
  br label %565

560:                                              ; preds = %540
  %561 = landingpad { ptr, i32 }
          cleanup
  br label %564

562:                                              ; preds = %543
  %563 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #11
  br label %564

564:                                              ; preds = %562, %560
  %.pn = phi { ptr, i32 } [ %563, %562 ], [ %561, %560 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  br label %565

565:                                              ; preds = %564, %558
  %.pn.pn = phi { ptr, i32 } [ %.pn, %564 ], [ %559, %558 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #11
  br label %568

.critedge735:                                     ; preds = %536
  %566 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %79) #11
  %567 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %80) #11
  br i1 %567, label %.lr.ph1737, label %.loopexit782

568:                                              ; preds = %.loopexit783, %.loopexit.split-lp784, %565
  %.pn569 = phi { ptr, i32 } [ %.pn.pn, %565 ], [ %lpad.loopexit785, %.loopexit783 ], [ %lpad.loopexit.split-lp786, %.loopexit.split-lp784 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #11
  br label %1373

.loopexit782:                                     ; preds = %.critedge735, %._crit_edge, %556, %546
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #11
  %569 = getelementptr inbounds i8, ptr %9, i64 128
  %570 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %569)
          to label %571 unwind label %246

571:                                              ; preds = %.loopexit782
  br i1 %570, label %572, label %712

572:                                              ; preds = %571
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %84) #11
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #11
  %573 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST5Crate11root_moduleEv(ptr noundef nonnull align 8 dereferenceable(1112) %2)
  store ptr %573, ptr %85, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %574 unwind label %579

574:                                              ; preds = %572
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #11
  %575 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %576 = getelementptr inbounds i8, ptr %575, i64 8
  %577 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %576) #11
  %.not1888 = icmp eq i64 %577, 0
  br i1 %.not1888, label %._crit_edge1746, label %.lr.ph1745

._crit_edge1746:                                  ; preds = %651, %574
  %578 = call noundef i64 @_ZNKSt6vectorIPKN3AST6ModuleESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #11
  br label %658

579:                                              ; preds = %572
  %580 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #11
  br label %711

.lr.ph1745:                                       ; preds = %574, %651
  %.05491743 = phi i64 [ %652, %651 ], [ 0, %574 ]
  %581 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %582 = getelementptr inbounds i8, ptr %581, i64 8
  %583 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %582, i64 noundef %.05491743) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #11
  store ptr null, ptr %86, align 8, !tbaa !5
  %584 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %583)
  %585 = load i8, ptr %584, align 1, !tbaa !12
  %586 = icmp eq i8 %585, 35
  %587 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %84) #11
  %588 = load ptr, ptr %587, align 8, !tbaa !5
  br i1 %586, label %589, label %609

589:                                              ; preds = %.lr.ph1745
  %590 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %588)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #11
  %591 = call ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %590) #11
  store ptr %591, ptr %87, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #11
  %592 = call ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %590) #11
  store ptr %592, ptr %88, align 8
  %593 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(8) %88) #11
  br i1 %593, label %.lr.ph1742, label %.loopexit776

.loopexit777:                                     ; preds = %650
  %lpad.loopexit779 = landingpad { ptr, i32 }
          cleanup
  br label %657

.loopexit.split-lp778:                            ; preds = %642
  %lpad.loopexit.split-lp780 = landingpad { ptr, i32 }
          cleanup
  br label %657

.lr.ph1742:                                       ; preds = %589, %606
  %594 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #11
  %595 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %594) #11
  br i1 %595, label %596, label %606

596:                                              ; preds = %.lr.ph1742
  %597 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %594) #11
  %598 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %597)
  %599 = getelementptr inbounds i8, ptr %598, i64 8
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %599) #11
  %601 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %600, ptr noundef nonnull align 8 dereferenceable(8) %583)
          to label %602 unwind label %604

602:                                              ; preds = %596
  br i1 %601, label %.critedge737, label %606

.critedge737:                                     ; preds = %602
  %603 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %594) #11
  store ptr %603, ptr %86, align 8, !tbaa !5
  br label %.loopexit776

604:                                              ; preds = %596
  %605 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #11
  br label %657

606:                                              ; preds = %602, %.lr.ph1742
  %607 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #11
  %608 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(8) %88) #11
  br i1 %608, label %.lr.ph1742, label %.loopexit776

.loopexit776:                                     ; preds = %606, %589, %.critedge737
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #11
  br label %635

609:                                              ; preds = %.lr.ph1745
  %610 = getelementptr inbounds i8, ptr %588, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #11
  %611 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %610) #11
  store ptr %611, ptr %89, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #11
  %612 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %610) #11
  store ptr %612, ptr %90, align 8
  %613 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %90) #11
  br i1 %613, label %.lr.ph1739, label %._crit_edge1740

._crit_edge1740:                                  ; preds = %632, %609
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #11
  br label %635

.lr.ph1739:                                       ; preds = %609, %632
  %614 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #11
  %615 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %614) #11
  %616 = getelementptr inbounds i8, ptr %615, i64 80
  %617 = call noundef zeroext i1 @_ZNK3AST4Item9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %616)
  br i1 %617, label %618, label %632

618:                                              ; preds = %.lr.ph1739
  %619 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %614) #11
  %620 = getelementptr inbounds i8, ptr %619, i64 72
  %621 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %622 = getelementptr inbounds i8, ptr %621, i64 8
  %623 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %622, i64 noundef %.05491743) #11
  %624 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef nonnull align 8 dereferenceable(8) %623)
          to label %625 unwind label %630

625:                                              ; preds = %618
  br i1 %624, label %626, label %632

626:                                              ; preds = %625
  %627 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %614) #11
  %628 = getelementptr inbounds i8, ptr %627, i64 80
  %629 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %628)
  store ptr %629, ptr %86, align 8, !tbaa !5
  br label %632

630:                                              ; preds = %618
  %631 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #11
  br label %657

632:                                              ; preds = %625, %626, %.lr.ph1739
  %633 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #11
  %634 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %90) #11
  br i1 %634, label %.lr.ph1739, label %._crit_edge1740

635:                                              ; preds = %.loopexit776, %._crit_edge1740
  %636 = load ptr, ptr %86, align 8, !tbaa !5
  %.not658 = icmp eq ptr %636, null
  br i1 %.not658, label %637, label %650

637:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %638 unwind label %643

638:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %93) #11
  store ptr %583, ptr %93, align 8, !tbaa !5
  %639 = getelementptr inbounds i8, ptr %93, i64 8
  store ptr %4, ptr %639, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(16) %93) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull %92)
          to label %640 unwind label %645

640:                                              ; preds = %638
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #11
  %641 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %641, ptr noundef nonnull @.str.5)
          to label %642 unwind label %648

642:                                              ; preds = %640
  invoke void @__cxa_throw(ptr nonnull %641, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %.loopexit.split-lp778

643:                                              ; preds = %637
  %644 = landingpad { ptr, i32 }
          cleanup
  br label %647

645:                                              ; preds = %638
  %646 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %93) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #11
  br label %647

647:                                              ; preds = %645, %643
  %.pn659 = phi { ptr, i32 } [ %646, %645 ], [ %644, %643 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #11
  br label %657

648:                                              ; preds = %640
  %649 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %641) #11
  br label %657

650:                                              ; preds = %635
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %651 unwind label %.loopexit777

651:                                              ; preds = %650
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #11
  %652 = add nuw i64 %.05491743, 1
  %653 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %654 = getelementptr inbounds i8, ptr %653, i64 8
  %655 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %654) #11
  %656 = icmp ult i64 %652, %655
  br i1 %656, label %.lr.ph1745, label %._crit_edge1746, !llvm.loop !16

657:                                              ; preds = %.loopexit777, %.loopexit.split-lp778, %648, %647, %630, %604
  %.pn661 = phi { ptr, i32 } [ %649, %648 ], [ %.pn659, %647 ], [ %605, %604 ], [ %631, %630 ], [ %lpad.loopexit779, %.loopexit777 ], [ %lpad.loopexit.split-lp780, %.loopexit.split-lp778 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #11
  br label %711

658:                                              ; preds = %709, %._crit_edge1746
  %.0550 = phi i64 [ %578, %._crit_edge1746 ], [ %659, %709 ]
  %659 = add i64 %.0550, -1
  %.not571 = icmp eq i64 %.0550, 0
  br i1 %.not571, label %710, label %.split1856

.split1856:                                       ; preds = %658
  %660 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %659) #11
  %661 = load ptr, ptr %660, align 8, !tbaa !5
  %662 = getelementptr inbounds i8, ptr %661, i64 432
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #11
  %663 = call ptr @_ZNKSt6vectorIN3AST6Module11MacroImportESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %662) #11
  store ptr %663, ptr %94, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #11
  %664 = call ptr @_ZNKSt6vectorIN3AST6Module11MacroImportESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %662) #11
  store ptr %664, ptr %95, align 8
  %665 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %95) #11
  br i1 %665, label %.lr.ph1857, label %._crit_edge1858

.lr.ph1857:                                       ; preds = %.split1856, %.critedge739
  %666 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %94) #11
  %667 = getelementptr inbounds i8, ptr %666, i64 8
  %668 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %667, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %669 unwind label %685

669:                                              ; preds = %.lr.ph1857
  br i1 %668, label %670, label %.critedge739

670:                                              ; preds = %669
  %671 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %672 unwind label %685

672:                                              ; preds = %670
  br i1 %671, label %673, label %.split1831

673:                                              ; preds = %672
  %674 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %675 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %674, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %676 unwind label %685

676:                                              ; preds = %673
  %677 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %675, ptr noundef nonnull @.str.28)
          to label %678 unwind label %685

678:                                              ; preds = %676
  %679 = getelementptr inbounds i8, ptr %666, i64 16
  %680 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %677, ptr noundef nonnull align 8 dereferenceable(32) %679)
          to label %681 unwind label %685

681:                                              ; preds = %678
  %682 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %680, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %683 unwind label %685

683:                                              ; preds = %681
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %682, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.split1831 unwind label %685

685:                                              ; preds = %..loopexit775_crit_edge, %683, %681, %678, %676, %673, %670, %.lr.ph1857
  %686 = landingpad { ptr, i32 }
          cleanup
  br label %705

.split1831:                                       ; preds = %683, %672
  %687 = getelementptr inbounds i8, ptr %666, i64 48
  %688 = call noundef i32 @_ZNK8MacroRef3tagEv(ptr noundef nonnull align 8 dereferenceable(16) %687)
  switch i32 %688, label %..loopexit775_crit_edge [
    i32 0, label %.split1813
    i32 1, label %.preheader767
    i32 2, label %.preheader769
    i32 3, label %.preheader771
    i32 4, label %.preheader773
  ]

.preheader773:                                    ; preds = %.split1831
  %689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef20as_ExternalProcMacroEv(ptr noundef nonnull align 8 dereferenceable(16) %687)
  br label %..loopexit775_crit_edge

.preheader771:                                    ; preds = %.split1831
  %690 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef19as_BuiltinProcMacroEv(ptr noundef nonnull align 8 dereferenceable(16) %687)
  br label %..loopexit775_crit_edge

.preheader769:                                    ; preds = %.split1831
  %691 = getelementptr inbounds i8, ptr %666, i64 16
  %692 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(16) %687)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %691)
          to label %695 unwind label %.split1762.split.split.split

.preheader767:                                    ; preds = %.split1831
  %693 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK8MacroRef7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(16) %687)
  br label %..loopexit775_crit_edge

.split1813:                                       ; preds = %.split1831
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 531, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #13
  unreachable

.split1762.split.split.split:                     ; preds = %.preheader769
  %694 = landingpad { ptr, i32 }
          cleanup
  br label %705

695:                                              ; preds = %.preheader769
  %696 = load ptr, ptr %692, align 8, !tbaa !5
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %97, ptr null, ptr %696)
          to label %697 unwind label %.split1765.split.split.split

697:                                              ; preds = %695
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %569, ptr noundef nonnull %96, ptr noundef nonnull %97)
          to label %..loopexit764_crit_edge unwind label %.split1768.split.split.split

..loopexit764_crit_edge:                          ; preds = %697
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  br label %..loopexit775_crit_edge

.split1765.split.split.split:                     ; preds = %695
  %698 = landingpad { ptr, i32 }
          cleanup
  br label %700

.split1768.split.split.split:                     ; preds = %697
  %699 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #11
  br label %700

700:                                              ; preds = %.split1768.split.split.split, %.split1765.split.split.split
  %.pn653 = phi { ptr, i32 } [ %699, %.split1768.split.split.split ], [ %698, %.split1765.split.split.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  br label %705

..loopexit775_crit_edge:                          ; preds = %.preheader773, %.preheader771, %.preheader767, %..loopexit764_crit_edge, %.split1831
  %701 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %569)
          to label %702 unwind label %685

702:                                              ; preds = %..loopexit775_crit_edge
  br i1 %701, label %.critedge739, label %._crit_edge1858

.critedge739:                                     ; preds = %702, %669
  %703 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %94) #11
  %704 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %95) #11
  br i1 %704, label %.lr.ph1857, label %._crit_edge1858

705:                                              ; preds = %.split1762.split.split.split, %700, %685
  %.pn653.pn.pn = phi { ptr, i32 } [ %686, %685 ], [ %.pn653, %700 ], [ %694, %.split1762.split.split.split ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #11
  br label %711

._crit_edge1858:                                  ; preds = %.critedge739, %702, %.split1856
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #11
  %706 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %569)
          to label %709 unwind label %707

707:                                              ; preds = %._crit_edge1858
  %708 = landingpad { ptr, i32 }
          cleanup
  br label %711

709:                                              ; preds = %._crit_edge1858
  br i1 %706, label %658, label %710, !llvm.loop !18

710:                                              ; preds = %658, %709
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #11
  br label %712

711:                                              ; preds = %705, %707, %657, %579
  %.pn661.pn = phi { ptr, i32 } [ %.pn661, %657 ], [ %580, %579 ], [ %.pn653.pn.pn, %705 ], [ %708, %707 ]
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #11
  br label %1373

712:                                              ; preds = %710, %571
  %713 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %569)
          to label %714 unwind label %246

714:                                              ; preds = %712
  %715 = getelementptr inbounds i8, ptr %2, i64 72
  %716 = icmp eq ptr %715, %4
  %or.cond = select i1 %713, i1 %716, i1 false
  br i1 %or.cond, label %717, label %756

717:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #11
  %718 = getelementptr inbounds i8, ptr %2, i64 624
  %719 = invoke ptr @_ZNKSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE4findERS7_(ptr noundef nonnull align 8 dereferenceable(48) %718, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %720 unwind label %744

720:                                              ; preds = %717
  store ptr %719, ptr %98, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #11
  %721 = call ptr @_ZNKSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %718) #11
  store ptr %721, ptr %99, align 8
  %722 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIK8RcStringPK10MacroRulesEES9_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(8) %99) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #11
  br i1 %722, label %723, label %754

723:                                              ; preds = %720
  %724 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %724, ptr noundef nonnull %101)
          to label %725 unwind label %746

725:                                              ; preds = %723
  %726 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIK8RcStringPK10MacroRulesEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %98) #11
  %727 = getelementptr inbounds i8, ptr %726, i64 8
  %728 = load ptr, ptr %727, align 8, !tbaa !19
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %102, ptr null, ptr %728)
          to label %729 unwind label %748

729:                                              ; preds = %725
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %569, ptr noundef nonnull %100, ptr noundef nonnull %102)
          to label %730 unwind label %750

730:                                              ; preds = %729
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  %731 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %732 unwind label %744

732:                                              ; preds = %730
  br i1 %731, label %733, label %754

733:                                              ; preds = %732
  %734 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %734, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %736 unwind label %744

736:                                              ; preds = %733
  %737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %735, ptr noundef nonnull @.str.29)
          to label %738 unwind label %744

738:                                              ; preds = %736
  %739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef nonnull align 8 dereferenceable(32) %569)
          to label %740 unwind label %744

740:                                              ; preds = %738
  %741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %739, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %742 unwind label %744

742:                                              ; preds = %740
  %743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %741, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %754 unwind label %744

744:                                              ; preds = %742, %740, %738, %736, %733, %730, %717
  %745 = landingpad { ptr, i32 }
          cleanup
  br label %755

746:                                              ; preds = %723
  %747 = landingpad { ptr, i32 }
          cleanup
  br label %753

748:                                              ; preds = %725
  %749 = landingpad { ptr, i32 }
          cleanup
  br label %752

750:                                              ; preds = %729
  %751 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #11
  br label %752

752:                                              ; preds = %750, %748
  %.pn572 = phi { ptr, i32 } [ %751, %750 ], [ %749, %748 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  br label %753

753:                                              ; preds = %752, %746
  %.pn572.pn = phi { ptr, i32 } [ %.pn572, %752 ], [ %747, %746 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #11
  br label %755

754:                                              ; preds = %732, %742, %720
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #11
  br label %756

755:                                              ; preds = %753, %744
  %.pn575 = phi { ptr, i32 } [ %745, %744 ], [ %.pn572.pn, %753 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #11
  br label %1373

756:                                              ; preds = %754, %714
  br i1 %7, label %757, label %762

757:                                              ; preds = %756
  %758 = getelementptr inbounds i8, ptr %9, i64 64
  %759 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %758)
          to label %760 unwind label %246

760:                                              ; preds = %757
  br i1 %759, label %762, label %761

761:                                              ; preds = %760
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %9)
          to label %1372 unwind label %246

762:                                              ; preds = %760, %756
  %763 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %764 = invoke noundef zeroext i1 @_ZNK3AST12AbsolutePath12is_parent_ofERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %763, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %765 unwind label %792

765:                                              ; preds = %762
  br i1 %764, label %773, label %766

766:                                              ; preds = %765
  %767 = call noundef i64 @_ZNKSt4spanIPKN3AST6ModuleEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
  %.not577 = icmp eq i64 %767, 0
  br i1 %.not577, label %773, label %768

768:                                              ; preds = %766
  %769 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIPKN3AST6ModuleEEixEm(ptr noundef nonnull align 8 dereferenceable(16) %6, i64 noundef 0)
  %770 = load ptr, ptr %769, align 8, !tbaa !5
  %771 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %770)
  %772 = invoke noundef zeroext i1 @_ZNK3AST12AbsolutePath12is_parent_ofERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %771, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %773 unwind label %792

773:                                              ; preds = %766, %768, %765
  %774 = phi i1 [ true, %765 ], [ false, %766 ], [ %772, %768 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #11
  %775 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #11
  store ptr %775, ptr %103, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #11
  %776 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #11
  store ptr %776, ptr %104, align 8
  %777 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  br i1 %777, label %.lr.ph1865, label %._crit_edge1866

._crit_edge1866:                                  ; preds = %933, %773
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #11
  %778 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #11
  store ptr %778, ptr %117, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %118) #11
  %779 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #11
  store ptr %779, ptr %118, align 8
  %780 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(8) %118) #11
  br i1 %780, label %.lr.ph1886, label %._crit_edge1887

.lr.ph1886:                                       ; preds = %._crit_edge1866
  %781 = getelementptr inbounds i8, ptr %121, i64 64
  %782 = getelementptr inbounds i8, ptr %169, i64 8
  %783 = getelementptr inbounds i8, ptr %169, i64 16
  %784 = getelementptr inbounds i8, ptr %161, i64 64
  %785 = getelementptr inbounds i8, ptr %165, i64 8
  %786 = getelementptr inbounds i8, ptr %165, i64 16
  %787 = getelementptr inbounds i8, ptr %178, i64 8
  %788 = getelementptr inbounds i8, ptr %178, i64 16
  %789 = getelementptr inbounds i8, ptr %170, i64 64
  %790 = getelementptr inbounds i8, ptr %174, i64 8
  %791 = getelementptr inbounds i8, ptr %174, i64 16
  br label %937

792:                                              ; preds = %1371, %1370, %1365, %1357, %1339, %._crit_edge1887, %768, %762
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %1373

.lr.ph1865:                                       ; preds = %773, %933
  %794 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  %795 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %794) #11
  %796 = getelementptr inbounds i8, ptr %795, i64 80
  %797 = call noundef zeroext i1 @_ZNK3AST4Item6is_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %796)
  br i1 %797, label %798, label %933

798:                                              ; preds = %.lr.ph1865
  %799 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %794) #11
  %800 = getelementptr inbounds i8, ptr %799, i64 80
  %801 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %800)
  %802 = getelementptr inbounds i8, ptr %801, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %105) #11
  %803 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %802) #11
  store ptr %803, ptr %105, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #11
  %804 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %802) #11
  store ptr %804, ptr %106, align 8
  %805 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(8) %106) #11
  br i1 %805, label %.lr.ph1862, label %._crit_edge1863

._crit_edge1863:                                  ; preds = %.critedge742, %798
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %105) #11
  br label %933

.lr.ph1862:                                       ; preds = %798, %.critedge742
  %806 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %105) #11
  %807 = getelementptr inbounds i8, ptr %806, i64 248
  %808 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %807, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %809 unwind label %829

809:                                              ; preds = %.lr.ph1862
  br i1 %808, label %810, label %.critedge742

810:                                              ; preds = %809
  %811 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %812 unwind label %829

812:                                              ; preds = %810
  br i1 %811, label %813, label %831

813:                                              ; preds = %812
  %814 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %815 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %814, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %816 unwind label %829

816:                                              ; preds = %813
  %817 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %815, ptr noundef nonnull @.str.30)
          to label %818 unwind label %829

818:                                              ; preds = %816
  %819 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %817, ptr noundef nonnull align 8 dereferenceable(8) %807)
          to label %820 unwind label %829

820:                                              ; preds = %818
  %821 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %819, ptr noundef nonnull @.str.31)
          to label %822 unwind label %829

822:                                              ; preds = %820
  %823 = getelementptr inbounds i8, ptr %806, i64 8
  %824 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %821, ptr noundef nonnull align 8 dereferenceable(240) %823)
          to label %825 unwind label %829

825:                                              ; preds = %822
  %826 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %824, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %827 unwind label %829

827:                                              ; preds = %825
  %828 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %826, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %831 unwind label %829

829:                                              ; preds = %.invoke2115, %.invoke2111, %917, %915, %913, %911, %908, %905, %862, %860, %858, %856, %853, %850, %845, %843, %840, %837, %832, %827, %825, %822, %820, %818, %816, %813, %810, %.lr.ph1862
  %830 = landingpad { ptr, i32 }
          cleanup
  br label %932

831:                                              ; preds = %827, %812
  br i1 %774, label %845, label %832

832:                                              ; preds = %831
  %833 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %794) #11
  %834 = getelementptr inbounds i8, ptr %833, i64 32
  %835 = invoke noundef zeroext i1 @_ZNK3AST10Visibility10is_visibleERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(36) %834, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %836 unwind label %829

836:                                              ; preds = %832
  br i1 %835, label %845, label %837

837:                                              ; preds = %836
  %838 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %839 unwind label %829

839:                                              ; preds = %837
  br i1 %838, label %840, label %.critedge742

840:                                              ; preds = %839
  %841 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %842 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %841, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %843 unwind label %829

843:                                              ; preds = %840
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %842, ptr noundef nonnull @.str.32)
          to label %.invoke2115 unwind label %829

845:                                              ; preds = %836, %831
  %846 = getelementptr inbounds i8, ptr %806, i64 8
  %847 = getelementptr inbounds i8, ptr %806, i64 64
  %848 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %847)
          to label %849 unwind label %829

849:                                              ; preds = %845
  br i1 %848, label %922, label %850

850:                                              ; preds = %849
  %851 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %852 unwind label %829

852:                                              ; preds = %850
  br i1 %851, label %853, label %864

853:                                              ; preds = %852
  %854 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %855 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %854, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %856 unwind label %829

856:                                              ; preds = %853
  %857 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %855, ptr noundef nonnull @.str.33)
          to label %858 unwind label %829

858:                                              ; preds = %856
  %859 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPKv(ptr noundef nonnull align 8 dereferenceable(8) %857, ptr noundef nonnull %846)
          to label %860 unwind label %829

860:                                              ; preds = %858
  %861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %859, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %862 unwind label %829

862:                                              ; preds = %860
  %863 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %861, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %864 unwind label %829

864:                                              ; preds = %862, %852
  %865 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods acquire, align 8
  %866 = icmp eq i8 %865, 0
  br i1 %866, label %867, label %871, !prof !9

867:                                              ; preds = %864
  %868 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #11
  %.not643 = icmp eq i32 %868, 0
  br i1 %.not643, label %871, label %869

869:                                              ; preds = %867
  call void @_ZNSt6vectorIPKN3AST4PathESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #11
  %870 = call i32 @__cxa_atexit(ptr nonnull @_ZNSt6vectorIPKN3AST4PathESaIS3_EED2Ev, ptr nonnull @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods, ptr nonnull @__dso_handle) #11
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #11
  br label %871

871:                                              ; preds = %869, %867, %864
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %107) #11
  %872 = call ptr @_ZNSt6vectorIPKN3AST4PathESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #11
  %873 = call ptr @_ZNSt6vectorIPKN3AST4PathESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %108) #11
  store ptr %846, ptr %108, align 8, !tbaa !5
  %874 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPKN3AST4PathESt6vectorIS5_SaIS5_EEEES5_ET_SB_SB_RKT0_(ptr %872, ptr %873, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %875 unwind label %887

875:                                              ; preds = %871
  store ptr %874, ptr %107, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %109) #11
  %876 = call ptr @_ZNSt6vectorIPKN3AST4PathESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #11
  store ptr %876, ptr %109, align 8
  %877 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPPKN3AST4PathESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(8) %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %107) #11
  br i1 %877, label %878, label %905

878:                                              ; preds = %875
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %110) #11
  store ptr %846, ptr %110, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST4PathESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %879 unwind label %889

879:                                              ; preds = %878
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #11
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %111) #11
  %880 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %112) #11
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %113) #11
  %881 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %113, ptr noundef nonnull align 8 dereferenceable(32) %881)
          to label %882 unwind label %891

882:                                              ; preds = %879
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %114, ptr noundef nonnull align 8 dereferenceable(240) %846)
          to label %883 unwind label %893

883:                                              ; preds = %882
  invoke void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind nonnull writable sret(%"class.AST::Path") align 8 %112, ptr noundef nonnull align 8 dereferenceable(8) %806, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(240) %113, ptr noundef nonnull %114)
          to label %884 unwind label %895

884:                                              ; preds = %883
  call void @_ZNSt4spanIPKN3AST6ModuleEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %115, ptr noundef nonnull align 8 dereferenceable(16) %6)
  invoke void @_Z22Resolve_Use_GetBindingRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_4PathESt4spanIPKNS2_6ModuleEEb(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %111, ptr noundef nonnull align 8 dereferenceable(8) %806, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(32) %880, ptr noundef nonnull align 8 dereferenceable(240) %112, ptr noundef nonnull %115, i1 noundef zeroext false)
          to label %885 unwind label %897

885:                                              ; preds = %884
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(184) %111)
          to label %886 unwind label %899

886:                                              ; preds = %885
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %111) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %112) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %114) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %113) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %113) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %111) #11
  call void @_ZNSt6vectorIPKN3AST4PathESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE6s_mods) #11
  br label %.critedge742

887:                                              ; preds = %871
  %888 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %107) #11
  br label %932

889:                                              ; preds = %878
  %890 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #11
  br label %932

891:                                              ; preds = %879
  %892 = landingpad { ptr, i32 }
          cleanup
  br label %904

893:                                              ; preds = %882
  %894 = landingpad { ptr, i32 }
          cleanup
  br label %903

895:                                              ; preds = %883
  %896 = landingpad { ptr, i32 }
          cleanup
  br label %902

897:                                              ; preds = %884
  %898 = landingpad { ptr, i32 }
          cleanup
  br label %901

899:                                              ; preds = %885
  %900 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %111) #11
  br label %901

901:                                              ; preds = %899, %897
  %.pn644 = phi { ptr, i32 } [ %900, %899 ], [ %898, %897 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %112) #11
  br label %902

902:                                              ; preds = %901, %895
  %.pn644.pn = phi { ptr, i32 } [ %.pn644, %901 ], [ %896, %895 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %114) #11
  br label %903

903:                                              ; preds = %902, %893
  %.pn644.pn.pn = phi { ptr, i32 } [ %.pn644.pn, %902 ], [ %894, %893 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %113) #11
  br label %904

904:                                              ; preds = %903, %891
  %.pn644.pn.pn.pn = phi { ptr, i32 } [ %.pn644.pn.pn, %903 ], [ %892, %891 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %113) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %111) #11
  br label %932

905:                                              ; preds = %875
  %906 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %907 unwind label %829

907:                                              ; preds = %905
  br i1 %906, label %908, label %.critedge742

908:                                              ; preds = %907
  %909 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %910 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %909, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %911 unwind label %829

911:                                              ; preds = %908
  %912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %910, ptr noundef nonnull @.str.34)
          to label %913 unwind label %829

913:                                              ; preds = %911
  %914 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPKv(ptr noundef nonnull align 8 dereferenceable(8) %912, ptr noundef nonnull %846)
          to label %915 unwind label %829

915:                                              ; preds = %913
  %916 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %914, ptr noundef nonnull @.str.35)
          to label %917 unwind label %829

917:                                              ; preds = %915
  %918 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %916, ptr noundef nonnull align 8 dereferenceable(240) %846)
          to label %.invoke2115 unwind label %829

.invoke2115:                                      ; preds = %917, %843
  %919 = phi ptr [ %844, %843 ], [ %918, %917 ]
  %920 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %919, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %.invoke2111 unwind label %829

.invoke2111:                                      ; preds = %.invoke2115
  %921 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %920, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.critedge742 unwind label %829

922:                                              ; preds = %849
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %116) #11
  invoke void @_ZNK3AST4Path8Bindings5cloneEv(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %116, ptr noundef nonnull align 8 dereferenceable(184) %847)
          to label %923 unwind label %925

923:                                              ; preds = %922
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(184) %116)
          to label %924 unwind label %927

924:                                              ; preds = %923
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %116) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %116) #11
  br label %.critedge742

925:                                              ; preds = %922
  %926 = landingpad { ptr, i32 }
          cleanup
  br label %929

927:                                              ; preds = %923
  %928 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %116) #11
  br label %929

929:                                              ; preds = %927, %925
  %.pn649 = phi { ptr, i32 } [ %928, %927 ], [ %926, %925 ]
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %116) #11
  br label %932

.critedge742:                                     ; preds = %.invoke2111, %809, %839, %886, %907, %924
  %930 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %105) #11
  %931 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(8) %106) #11
  br i1 %931, label %.lr.ph1862, label %._crit_edge1863

932:                                              ; preds = %929, %904, %889, %887, %829
  %.pn649.pn = phi { ptr, i32 } [ %.pn649, %929 ], [ %.pn644.pn.pn.pn, %904 ], [ %890, %889 ], [ %830, %829 ], [ %888, %887 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %105) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #11
  br label %1373

933:                                              ; preds = %.lr.ph1865, %._crit_edge1863
  %934 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %103) #11
  %935 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  br i1 %935, label %.lr.ph1865, label %._crit_edge1866

._crit_edge1887:                                  ; preds = %1335, %._crit_edge1866
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #11
  %936 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %9)
          to label %1338 unwind label %792

937:                                              ; preds = %.lr.ph1886, %1335
  %938 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %117) #11
  %939 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %938) #11
  %940 = getelementptr inbounds i8, ptr %939, i64 80
  %941 = call noundef zeroext i1 @_ZNK3AST4Item6is_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %940)
  br i1 %941, label %942, label %1335

942:                                              ; preds = %937
  %943 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %938) #11
  %944 = getelementptr inbounds i8, ptr %943, i64 80
  %945 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %944)
  %946 = getelementptr inbounds i8, ptr %945, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %119) #11
  %947 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %946) #11
  store ptr %947, ptr %119, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %120) #11
  %948 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %946) #11
  store ptr %948, ptr %120, align 8
  %949 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %120) #11
  br i1 %949, label %.lr.ph1883, label %._crit_edge1884

._crit_edge1884:                                  ; preds = %1331, %942
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #11
  br label %1335

.lr.ph1883:                                       ; preds = %942, %1331
  %950 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %119) #11
  %951 = getelementptr inbounds i8, ptr %950, i64 248
  %952 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %951, ptr noundef nonnull @.str.2)
          to label %953 unwind label %954

953:                                              ; preds = %.lr.ph1883
  br i1 %952, label %1331, label %956

954:                                              ; preds = %980, %978, %975, %973, %970, %968, %965, %962, %957, %.lr.ph1883
  %955 = landingpad { ptr, i32 }
          cleanup
  br label %1334

956:                                              ; preds = %953
  br i1 %774, label %962, label %957

957:                                              ; preds = %956
  %958 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %938) #11
  %959 = getelementptr inbounds i8, ptr %958, i64 32
  %960 = invoke noundef zeroext i1 @_ZNK3AST10Visibility10is_visibleERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(36) %959, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %961 unwind label %954

961:                                              ; preds = %957
  br i1 %960, label %962, label %1331

962:                                              ; preds = %956, %961
  %963 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %964 unwind label %954

964:                                              ; preds = %962
  br i1 %963, label %965, label %982

965:                                              ; preds = %964
  %966 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %967 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %966, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %968 unwind label %954

968:                                              ; preds = %965
  %969 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %967, ptr noundef nonnull @.str.36)
          to label %970 unwind label %954

970:                                              ; preds = %968
  %971 = getelementptr inbounds i8, ptr %950, i64 8
  %972 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %969, ptr noundef nonnull align 8 dereferenceable(240) %971)
          to label %973 unwind label %954

973:                                              ; preds = %970
  %974 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %972, ptr noundef nonnull @.str.37)
          to label %975 unwind label %954

975:                                              ; preds = %973
  %976 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %977 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %974, ptr noundef nonnull align 8 dereferenceable(32) %976)
          to label %978 unwind label %954

978:                                              ; preds = %975
  %979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %977, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %980 unwind label %954

980:                                              ; preds = %978
  %981 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %979, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %982 unwind label %954

982:                                              ; preds = %980, %964
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %121) #11
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %121)
          to label %983 unwind label %1003

983:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #11
  %984 = getelementptr inbounds i8, ptr %950, i64 8
  %985 = getelementptr inbounds i8, ptr %950, i64 64
  store ptr %985, ptr %122, align 8, !tbaa !5
  %986 = getelementptr inbounds i8, ptr %950, i64 128
  %987 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %986)
          to label %988 unwind label %1005

988:                                              ; preds = %983
  br i1 %987, label %989, label %.lr.ph1880

989:                                              ; preds = %988
  %990 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %991 unwind label %1005

991:                                              ; preds = %989
  br i1 %990, label %992, label %1007

992:                                              ; preds = %991
  %993 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %994 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %993, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %995 unwind label %1005

995:                                              ; preds = %992
  %996 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %994, ptr noundef nonnull @.str.38)
          to label %997 unwind label %1005

997:                                              ; preds = %995
  %998 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %996, ptr noundef nonnull align 8 dereferenceable(240) %984)
          to label %999 unwind label %1005

999:                                              ; preds = %997
  %1000 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %998, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1001 unwind label %1005

1001:                                             ; preds = %999
  %1002 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1000, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1007 unwind label %1005

1003:                                             ; preds = %982
  %1004 = landingpad { ptr, i32 }
          cleanup
  br label %1330

1005:                                             ; preds = %1087, %1085, %1083, %1081, %1078, %1075, %1045, %1043, %1041, %1039, %1036, %1033, %1030, %1001, %999, %997, %995, %992, %989, %983
  %1006 = landingpad { ptr, i32 }
          cleanup
  br label %1329

1007:                                             ; preds = %1001, %991
  %1008 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs acquire, align 8
  %1009 = icmp eq i8 %1008, 0
  br i1 %1009, label %1010, label %1014, !prof !9

1010:                                             ; preds = %1007
  %1011 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  %.not582 = icmp eq i32 %1011, 0
  br i1 %.not582, label %1014, label %1012

1012:                                             ; preds = %1010
  call void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  %1013 = call i32 @__cxa_atexit(ptr nonnull @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EED2Ev, ptr nonnull @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs, ptr nonnull @__dso_handle) #11
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  br label %1014

1014:                                             ; preds = %1012, %1010, %1007
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #11
  %1015 = call ptr @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  %1016 = call ptr @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %124) #11
  store ptr %945, ptr %124, align 8, !tbaa !5
  %1017 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPKN3AST7UseItemESt6vectorIS5_SaIS5_EEEES5_ET_SB_SB_RKT0_(ptr %1015, ptr %1016, ptr noundef nonnull align 8 dereferenceable(8) %124)
          to label %1018 unwind label %1047

1018:                                             ; preds = %1014
  store ptr %1017, ptr %123, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %125) #11
  %1019 = call ptr @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  store ptr %1019, ptr %125, align 8
  %1020 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPPKN3AST7UseItemESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %125) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #11
  br i1 %1020, label %1021, label %1075

1021:                                             ; preds = %1018
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %126) #11
  store ptr %945, ptr %126, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs, ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %1022 unwind label %1049

1022:                                             ; preds = %1021
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #11
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %127) #11
  %1023 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %128) #11
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %129) #11
  %1024 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %129, ptr noundef nonnull align 8 dereferenceable(32) %1024)
          to label %1025 unwind label %1051

1025:                                             ; preds = %1022
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %130, ptr noundef nonnull align 8 dereferenceable(240) %984)
          to label %1026 unwind label %1053

1026:                                             ; preds = %1025
  invoke void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind nonnull writable sret(%"class.AST::Path") align 8 %128, ptr noundef nonnull align 8 dereferenceable(8) %950, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(240) %129, ptr noundef nonnull %130)
          to label %1027 unwind label %1055

1027:                                             ; preds = %1026
  call void @_ZNSt4spanIPKN3AST6ModuleEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(16) %131, ptr noundef nonnull align 8 dereferenceable(16) %6)
  invoke void @_Z22Resolve_Use_GetBindingRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_4PathESt4spanIPKNS2_6ModuleEEb(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %127, ptr noundef nonnull align 8 dereferenceable(8) %950, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(32) %1023, ptr noundef nonnull align 8 dereferenceable(240) %128, ptr noundef nonnull %131, i1 noundef zeroext true)
          to label %1028 unwind label %1057

1028:                                             ; preds = %1027
  %1029 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZN3AST4Path8BindingsaSEOS1_(ptr noundef nonnull align 8 dereferenceable(184) %121, ptr noundef nonnull align 8 dereferenceable(184) %127)
          to label %1030 unwind label %1059

1030:                                             ; preds = %1028
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %127) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %128) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %130) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %129) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %129) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %128) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %127) #11
  %1031 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %781)
          to label %1032 unwind label %1005

1032:                                             ; preds = %1030
  br i1 %1031, label %1033, label %1066

1033:                                             ; preds = %1032
  %1034 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1035 unwind label %1005

1035:                                             ; preds = %1033
  br i1 %1034, label %1036, label %1065

1036:                                             ; preds = %1035
  %1037 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %1038 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1037, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %1039 unwind label %1005

1039:                                             ; preds = %1036
  %1040 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1038, ptr noundef nonnull @.str.39)
          to label %1041 unwind label %1005

1041:                                             ; preds = %1039
  %1042 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1040, ptr noundef nonnull align 8 dereferenceable(240) %984)
          to label %1043 unwind label %1005

1043:                                             ; preds = %1041
  %1044 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1042, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1045 unwind label %1005

1045:                                             ; preds = %1043
  %1046 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1044, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1065 unwind label %1005

1047:                                             ; preds = %1014
  %1048 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #11
  br label %1329

1049:                                             ; preds = %1021
  %1050 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #11
  br label %1329

1051:                                             ; preds = %1022
  %1052 = landingpad { ptr, i32 }
          cleanup
  br label %1064

1053:                                             ; preds = %1025
  %1054 = landingpad { ptr, i32 }
          cleanup
  br label %1063

1055:                                             ; preds = %1026
  %1056 = landingpad { ptr, i32 }
          cleanup
  br label %1062

1057:                                             ; preds = %1027
  %1058 = landingpad { ptr, i32 }
          cleanup
  br label %1061

1059:                                             ; preds = %1028
  %1060 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %127) #11
  br label %1061

1061:                                             ; preds = %1059, %1057
  %.pn583 = phi { ptr, i32 } [ %1060, %1059 ], [ %1058, %1057 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %128) #11
  br label %1062

1062:                                             ; preds = %1061, %1055
  %.pn583.pn = phi { ptr, i32 } [ %.pn583, %1061 ], [ %1056, %1055 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %130) #11
  br label %1063

1063:                                             ; preds = %1062, %1053
  %.pn583.pn.pn = phi { ptr, i32 } [ %.pn583.pn, %1062 ], [ %1054, %1053 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %129) #11
  br label %1064

1064:                                             ; preds = %1063, %1051
  %.pn583.pn.pn.pn = phi { ptr, i32 } [ %.pn583.pn.pn, %1063 ], [ %1052, %1051 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %129) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %128) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %127) #11
  br label %1329

1065:                                             ; preds = %1045, %1035
  call void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  br label %.thread748

1066:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %132) #11
  invoke void @_ZNK3AST4Path8Bindings5cloneEv(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %132, ptr noundef nonnull align 8 dereferenceable(184) %121)
          to label %1067 unwind label %1070

1067:                                             ; preds = %1066
  %1068 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZN3AST4Path8BindingsaSEOS1_(ptr noundef nonnull align 8 dereferenceable(184) %985, ptr noundef nonnull align 8 dereferenceable(184) %132)
          to label %1069 unwind label %1072

1069:                                             ; preds = %1067
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %132) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %132) #11
  store ptr %121, ptr %122, align 8, !tbaa !5
  call void @_ZNSt6vectorIPKN3AST7UseItemESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE18resolve_stack_ptrs) #11
  br label %.lr.ph1880

1070:                                             ; preds = %1066
  %1071 = landingpad { ptr, i32 }
          cleanup
  br label %1074

1072:                                             ; preds = %1067
  %1073 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %132) #11
  br label %1074

1074:                                             ; preds = %1072, %1070
  %.pn588 = phi { ptr, i32 } [ %1073, %1072 ], [ %1071, %1070 ]
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %132) #11
  br label %1329

1075:                                             ; preds = %1018
  %1076 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1077 unwind label %1005

1077:                                             ; preds = %1075
  br i1 %1076, label %1078, label %.thread748

1078:                                             ; preds = %1077
  %1079 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %1080 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1079, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %1081 unwind label %1005

1081:                                             ; preds = %1078
  %1082 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1080, ptr noundef nonnull @.str.40)
          to label %1083 unwind label %1005

1083:                                             ; preds = %1081
  %1084 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1082, ptr noundef nonnull align 8 dereferenceable(240) %984)
          to label %1085 unwind label %1005

1085:                                             ; preds = %1083
  %1086 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1084, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1087 unwind label %1005

1087:                                             ; preds = %1085
  %1088 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1086, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.thread748 unwind label %1005

.lr.ph1880:                                       ; preds = %988, %1069
  %1089 = phi ptr [ %121, %1069 ], [ %985, %988 ]
  %1090 = getelementptr inbounds i8, ptr %1089, i64 96
  %1091 = call noundef i32 @_ZNK3AST16PathBinding_Type3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %1090)
  switch i32 %1091, label %1317 [
    i32 0, label %1094
    i32 2, label %.lr.ph1877
    i32 3, label %.lr.ph1874
    i32 5, label %.lr.ph1871
  ]

1092:                                             ; preds = %1321
  %1093 = landingpad { ptr, i32 }
          cleanup
  br label %1329

1094:                                             ; preds = %.lr.ph1880
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 654, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #13
  unreachable

.lr.ph1877:                                       ; preds = %.lr.ph1880
  %1095 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST16PathBinding_Type8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(32) %1090)
  %1096 = load ptr, ptr %1095, align 8, !tbaa !22
  %.not628 = icmp eq ptr %1096, null
  br i1 %.not628, label %1097, label %1098

1097:                                             ; preds = %.lr.ph1877
  call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.4, i32 noundef 656, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #13
  unreachable

1098:                                             ; preds = %.lr.ph1877
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %133) #11
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %134) #11
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull @.str.2)
          to label %1099 unwind label %1105

1099:                                             ; preds = %1098
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %137) #11
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @_ZN3AST10PathParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %139)
  invoke void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40) %137, ptr noundef nonnull %138, ptr noundef nonnull %139)
          to label %1100 unwind label %1107

1100:                                             ; preds = %1099
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %140) #11
  call void @_ZNSaIN3AST8PathNodeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %136, ptr nonnull %137, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %1101 unwind label %1109

1101:                                             ; preds = %1100
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %134, ptr noundef nonnull %135, ptr noundef nonnull %136)
          to label %1102 unwind label %1111

1102:                                             ; preds = %1101
  %1103 = load ptr, ptr %1095, align 8, !tbaa !22
  invoke void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_4PathERKNS2_11ExternCrateEj(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %133, ptr noundef nonnull align 8 dereferenceable(8) %950, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(240) %134, ptr noundef nonnull align 8 dereferenceable(56) %1103, i32 noundef 0)
          to label %1104 unwind label %1113

1104:                                             ; preds = %1102
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(184) %133)
          to label %..loopexit753_crit_edge unwind label %1115

..loopexit753_crit_edge:                          ; preds = %1104
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %133) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %134) #11
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %136) #11
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #11
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %137) #11
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %139) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %137) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %134) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %133) #11
  br label %.loopexit762

1105:                                             ; preds = %1098
  %1106 = landingpad { ptr, i32 }
          cleanup
  br label %1119

1107:                                             ; preds = %1099
  %1108 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

1109:                                             ; preds = %1100
  %1110 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

1111:                                             ; preds = %1101
  %1112 = landingpad { ptr, i32 }
          cleanup
  br label %1118

1113:                                             ; preds = %1102
  %1114 = landingpad { ptr, i32 }
          cleanup
  br label %1117

1115:                                             ; preds = %1104
  %1116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %133) #11
  br label %1117

1117:                                             ; preds = %1115, %1113
  %.pn629 = phi { ptr, i32 } [ %1116, %1115 ], [ %1114, %1113 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %134) #11
  br label %1118

1118:                                             ; preds = %1117, %1111
  %.pn629.pn = phi { ptr, i32 } [ %.pn629, %1117 ], [ %1112, %1111 ]
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %136) #11
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %1118, %1109
  %.pn629.pn.pn = phi { ptr, i32 } [ %.pn629.pn, %1118 ], [ %1110, %1109 ]
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #11
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %137) #11
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %1107
  %.pn629.pn.pn.pn = phi { ptr, i32 } [ %1108, %1107 ], [ %.pn629.pn.pn, %.loopexit.loopexit ]
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %139) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %137) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #11
  br label %1119

1119:                                             ; preds = %.loopexit, %1105
  %.pn629.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn629.pn.pn.pn, %.loopexit ], [ %1106, %1105 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %134) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %133) #11
  br label %1329

.lr.ph1874:                                       ; preds = %.lr.ph1880
  %1120 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST16PathBinding_Type9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32) %1090)
  %1121 = getelementptr inbounds i8, ptr %1120, i64 8
  %1122 = load ptr, ptr %1120, align 8, !tbaa !13
  %.not613 = icmp eq ptr %1122, null
  br i1 %.not613, label %1170, label %1123

.loopexit755:                                     ; preds = %1154, %1157, %1160, %1162, %1166, %1168
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %1329

.loopexit.split-lp:                               ; preds = %1206
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %1329

1123:                                             ; preds = %.lr.ph1874
  %1124 = load atomic i8, ptr @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack acquire, align 8
  %1125 = icmp eq i8 %1124, 0
  br i1 %1125, label %1126, label %1130, !prof !9

1126:                                             ; preds = %1123
  %1127 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #11
  %.not624 = icmp eq i32 %1127, 0
  br i1 %.not624, label %1130, label %1128

1128:                                             ; preds = %1126
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #11
  %1129 = call i32 @__cxa_atexit(ptr nonnull @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev, ptr nonnull @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack, ptr nonnull @__dso_handle) #11
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #11
  br label %1130

1130:                                             ; preds = %1128, %1126, %1123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %141) #11
  %1131 = call ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #11
  %1132 = call ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #11
  %1133 = load ptr, ptr %1120, align 8, !tbaa !13
  store ptr %1133, ptr %142, align 8, !tbaa !5
  %1134 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPKN3AST6ModuleESt6vectorIS5_SaIS5_EEEES5_ET_SB_SB_RKT0_(ptr %1131, ptr %1132, ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %1135 unwind label %1145

1135:                                             ; preds = %1130
  store ptr %1134, ptr %141, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %143) #11
  %1136 = call ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #11
  store ptr %1136, ptr %143, align 8
  %1137 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPPKN3AST6ModuleESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull align 8 dereferenceable(8) %143) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #11
  br i1 %1137, label %1138, label %1154

1138:                                             ; preds = %1135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %144) #11
  %1139 = load ptr, ptr %1120, align 8, !tbaa !13
  store ptr %1139, ptr %144, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack, ptr noundef nonnull align 8 dereferenceable(8) %144)
          to label %1140 unwind label %1147

1140:                                             ; preds = %1138
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #11
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %145) #11
  %1141 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %1142 = load ptr, ptr %1120, align 8, !tbaa !13
  call void @_ZNSt4spanIPKN3AST6ModuleEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %146)
  invoke void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %145, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(32) %1141, ptr noundef nonnull align 8 dereferenceable(480) %1142, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %146, i1 noundef zeroext false)
          to label %1143 unwind label %1149

1143:                                             ; preds = %1140
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(184) %145)
          to label %1144 unwind label %1151

1144:                                             ; preds = %1143
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %145) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %145) #11
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) @_ZZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_EbE20s_use_glob_mod_stack) #11
  br label %.loopexit762

1145:                                             ; preds = %1130
  %1146 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %141) #11
  br label %1329

1147:                                             ; preds = %1138
  %1148 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #11
  br label %1329

1149:                                             ; preds = %1140
  %1150 = landingpad { ptr, i32 }
          cleanup
  br label %1153

1151:                                             ; preds = %1143
  %1152 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %145) #11
  br label %1153

1153:                                             ; preds = %1151, %1149
  %.pn625 = phi { ptr, i32 } [ %1152, %1151 ], [ %1150, %1149 ]
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %145) #11
  br label %1329

1154:                                             ; preds = %1135
  %1155 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1156 unwind label %.loopexit755

1156:                                             ; preds = %1154
  br i1 %1155, label %1157, label %.loopexit762

1157:                                             ; preds = %1156
  %1158 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !10
  %1159 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1158, ptr noundef nonnull @__func__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb)
          to label %1160 unwind label %.loopexit755

1160:                                             ; preds = %1157
  %1161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1159, ptr noundef nonnull @.str.42)
          to label %1162 unwind label %.loopexit755

1162:                                             ; preds = %1160
  %1163 = load ptr, ptr %1120, align 8, !tbaa !13
  %1164 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1163)
  %1165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %1161, ptr noundef nonnull align 8 dereferenceable(32) %1164)
          to label %1166 unwind label %.loopexit755

1166:                                             ; preds = %1162
  %1167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1165, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1168 unwind label %.loopexit755

1168:                                             ; preds = %1166
  %1169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1167, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.loopexit762 unwind label %.loopexit755

1170:                                             ; preds = %.lr.ph1874
  %1171 = getelementptr inbounds i8, ptr %1120, i64 16
  %1172 = load ptr, ptr %1171, align 8, !tbaa !24
  %.not614 = icmp eq ptr %1172, null
  br i1 %.not614, label %1202, label %1173

1173:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %147) #11
  %1174 = load ptr, ptr %1121, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %148) #11
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull @.str.2)
          to label %1175 unwind label %1184

1175:                                             ; preds = %1173
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %151) #11
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @_ZN3AST10PathParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %153)
  invoke void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40) %151, ptr noundef nonnull %152, ptr noundef nonnull %153)
          to label %1176 unwind label %1186

1176:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %154) #11
  call void @_ZNSaIN3AST8PathNodeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #11
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %150, ptr nonnull %151, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %154)
          to label %1177 unwind label %1188

1177:                                             ; preds = %1176
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %148, ptr noundef nonnull %149, ptr noundef nonnull %150)
          to label %1178 unwind label %1190

1178:                                             ; preds = %1177
  %1179 = load ptr, ptr %122, align 8, !tbaa !5
  %1180 = getelementptr inbounds i8, ptr %1179, i64 64
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull align 8 dereferenceable(32) %1180)
          to label %1181 unwind label %1192

1181:                                             ; preds = %1178
  invoke void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %147, ptr noundef nonnull align 8 dereferenceable(8) %950, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(56) %1174, ptr noundef nonnull align 8 dereferenceable(216) %1172, ptr noundef nonnull align 8 dereferenceable(240) %148, i32 noundef 0, ptr noundef nonnull %155)
          to label %1182 unwind label %1194

1182:                                             ; preds = %1181
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(184) %147)
          to label %1183 unwind label %1196

1183:                                             ; preds = %1182
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %147) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %148) #11
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %150) #11
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #11
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %151) #11
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %153) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %151) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #11
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %148) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %147) #11
  br label %.loopexit762

1184:                                             ; preds = %1173
  %1185 = landingpad { ptr, i32 }
          cleanup
  br label %1201

1186:                                             ; preds = %1175
  %1187 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit751

1188:                                             ; preds = %1176
  %1189 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit751.loopexit

1190:                                             ; preds = %1177
  %1191 = landingpad { ptr, i32 }
          cleanup
  br label %1200

1192:                                             ; preds = %1178
  %1193 = landingpad { ptr, i32 }
          cleanup
  br label %1199

1194:                                             ; preds = %1181
  %1195 = landingpad { ptr, i32 }
          cleanup
  br label %1198

1196:                                             ; preds = %1182
  %1197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %147) #11
  br label %1198

1198:                                             ; preds = %1196, %1194
  %.pn617 = phi { ptr, i32 } [ %1197, %1196 ], [ %1195, %1194 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #11
  br label %1199

1199:                                             ; preds = %1198, %1192
  %.pn617.pn = phi { ptr, i32 } [ %.pn617, %1198 ], [ %1193, %1192 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %148) #11
  br label %1200

1200:                                             ; preds = %1199, %1190
  %.pn617.pn.pn = phi { ptr, i32 } [ %.pn617.pn, %1199 ], [ %1191, %1190 ]
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %150) #11
  br label %.loopexit751.loopexit

.loopexit751.loopexit:                            ; preds = %1200, %1188
  %.pn617.pn.pn.pn = phi { ptr, i32 } [ %.pn617.pn.pn, %1200 ], [ %1189, %1188 ]
  call void @_ZNSt15__new_allocatorIN3AST8PathNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #11
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %151) #11
  br label %.loopexit751

.loopexit751:                                     ; preds = %.loopexit751.loopexit, %1186
  %.pn617.pn.pn.pn.pn = phi { ptr, i32 } [ %1187, %1186 ], [ %.pn617.pn.pn.pn, %.loopexit751.loopexit ]
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %153) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %151) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #11
  br label %1201

1201:                                             ; preds = %.loopexit751, %1184
  %.pn617.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn617.pn.pn.pn.pn, %.loopexit751 ], [ %1185, %1184 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %148) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %147) #11
  br label %1329

1202:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %156) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %1203 unwind label %1207

1203:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %158) #11
  store ptr %950, ptr %158, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull align 8 dereferenceable(8) %158) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull %157)
          to label %1204 unwind label %1209

1204:                                             ; preds = %1203
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %156) #11
  %1205 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1205, ptr noundef nonnull @.str.5)
          to label %1206 unwind label %1212

1206:                                             ; preds = %1204
  invoke void @__cxa_throw(ptr nonnull %1205, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %.loopexit.split-lp

1207:                                             ; preds = %1202
  %1208 = landingpad { ptr, i32 }
          cleanup
  br label %1211

1209:                                             ; preds = %1203
  %1210 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #11
  br label %1211

1211:                                             ; preds = %1209, %1207
  %.pn615 = phi { ptr, i32 } [ %1210, %1209 ], [ %1208, %1207 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %156) #11
  br label %1329

1212:                                             ; preds = %1204
  %1213 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1205) #11
  br label %1329

.lr.ph1871:                                       ; preds = %.lr.ph1880
  %1214 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(32) %1090)
  %1215 = getelementptr inbounds i8, ptr %1214, i64 8
  %1216 = load ptr, ptr %1214, align 8, !tbaa !26
  %.not590 = icmp eq ptr %1216, null
  %1217 = load ptr, ptr %1215, align 8
  %.not591 = icmp eq ptr %1217, null
  %or.cond744 = select i1 %.not590, i1 %.not591, i1 false
  br i1 %or.cond744, label %1218, label %.critedge

1218:                                             ; preds = %.lr.ph1871
  call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.4, i32 noundef 683, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb) #13
  unreachable

.critedge:                                        ; preds = %.lr.ph1871
  br i1 %.not590, label %1268, label %1219

1219:                                             ; preds = %.critedge
  %1220 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Enum8variantsEv(ptr noundef nonnull align 8 dereferenceable(80) %1216)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %159) #11
  %1221 = call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1220) #11
  store ptr %1221, ptr %159, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %160) #11
  %1222 = call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1220) #11
  store ptr %1222, ptr %160, align 8
  %1223 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(8) %160) #11
  br i1 %1223, label %.lr.ph1869, label %.loopexit752

.lr.ph1869:                                       ; preds = %1219, %1263
  %.05061867 = phi i32 [ %1264, %1263 ], [ 0, %1219 ]
  %1224 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %159) #11
  %1225 = getelementptr inbounds i8, ptr %1224, i64 24
  %1226 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1225, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %1227 unwind label %1237

1227:                                             ; preds = %.lr.ph1869
  br i1 %1226, label %1228, label %1263

1228:                                             ; preds = %1227
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %161) #11
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %161)
          to label %1229 unwind label %1239

1229:                                             ; preds = %1228
  %1230 = getelementptr inbounds i8, ptr %1224, i64 32
  %1231 = call noundef zeroext i1 @_ZNK3AST15EnumVariantData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %1230)
  %1232 = load ptr, ptr %122, align 8, !tbaa !5
  %1233 = getelementptr inbounds i8, ptr %1232, i64 64
  br i1 %1231, label %1234, label %1248

1234:                                             ; preds = %1229
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %162, ptr noundef nonnull align 8 dereferenceable(32) %1233, ptr noundef nonnull %163)
          to label %1235 unwind label %1243

1235:                                             ; preds = %1234
  store ptr %1216, ptr %165, align 8, !tbaa !28
  store i32 %.05061867, ptr %785, align 8, !tbaa !30
  store ptr null, ptr %786, align 8, !tbaa !31
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %164, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %165)
          to label %1236 unwind label %1245

1236:                                             ; preds = %1235
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %784, ptr noundef nonnull %162, ptr noundef nonnull %164)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #11
  br label %1260

1237:                                             ; preds = %.lr.ph1869
  %1238 = landingpad { ptr, i32 }
          cleanup
  br label %1267

1239:                                             ; preds = %1228
  %1240 = landingpad { ptr, i32 }
          cleanup
  br label %1262

1241:                                             ; preds = %1260
  %1242 = landingpad { ptr, i32 }
          cleanup
  br label %1261

1243:                                             ; preds = %1234
  %1244 = landingpad { ptr, i32 }
          cleanup
  br label %1247

1245:                                             ; preds = %1235
  %1246 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #11
  br label %1247

1247:                                             ; preds = %1245, %1243
  %.pn606 = phi { ptr, i32 } [ %1246, %1245 ], [ %1244, %1243 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %163) #11
  br label %1261

1248:                                             ; preds = %1229
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %166, ptr noundef nonnull align 8 dereferenceable(32) %1233, ptr noundef nonnull %167)
          to label %1249 unwind label %1252

1249:                                             ; preds = %1248
  store ptr %1216, ptr %169, align 8, !tbaa !32
  store i32 %.05061867, ptr %782, align 8, !tbaa !34
  store ptr null, ptr %783, align 8, !tbaa !35
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %168, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %169)
          to label %1250 unwind label %1254

1250:                                             ; preds = %1249
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %161, ptr noundef nonnull %166, ptr noundef nonnull %168)
          to label %1251 unwind label %1256

1251:                                             ; preds = %1250
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #11
  br label %1260

1252:                                             ; preds = %1248
  %1253 = landingpad { ptr, i32 }
          cleanup
  br label %1259

1254:                                             ; preds = %1249
  %1255 = landingpad { ptr, i32 }
          cleanup
  br label %1258

1256:                                             ; preds = %1250
  %1257 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #11
  br label %1258

1258:                                             ; preds = %1256, %1254
  %.pn603 = phi { ptr, i32 } [ %1257, %1256 ], [ %1255, %1254 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #11
  br label %1259

1259:                                             ; preds = %1258, %1252
  %.pn603.pn = phi { ptr, i32 } [ %.pn603, %1258 ], [ %1253, %1252 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #11
  br label %1261

1260:                                             ; preds = %1251, %1236
  %.sink2112 = phi ptr [ %166, %1251 ], [ %162, %1236 ]
  %.sink = phi ptr [ %167, %1251 ], [ %163, %1236 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink2112) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %.sink) #11
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(184) %161)
          to label %.thread unwind label %1241

.thread:                                          ; preds = %1260
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %161) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %161) #11
  br label %.loopexit752

1261:                                             ; preds = %1259, %1247, %1241
  %.pn608 = phi { ptr, i32 } [ %1242, %1241 ], [ %.pn606, %1247 ], [ %.pn603.pn, %1259 ]
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %161) #11
  br label %1262

1262:                                             ; preds = %1261, %1239
  %.pn608.pn = phi { ptr, i32 } [ %.pn608, %1261 ], [ %1240, %1239 ]
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %161) #11
  br label %1267

1263:                                             ; preds = %1227
  %1264 = add i32 %.05061867, 1
  %1265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %159) #11
  %1266 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(8) %160) #11
  br i1 %1266, label %.lr.ph1869, label %.loopexit752

1267:                                             ; preds = %1262, %1237
  %.pn608.pn.pn = phi { ptr, i32 } [ %.pn608.pn, %1262 ], [ %1238, %1237 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  br label %1329

.loopexit752:                                     ; preds = %1263, %1219, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %159) #11
  br label %.loopexit762

1268:                                             ; preds = %.critedge
  %1269 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %1217, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %1270 unwind label %1287

1270:                                             ; preds = %1268
  %.not593 = icmp eq i64 %1269, -1
  br i1 %.not593, label %.loopexit762, label %1271

1271:                                             ; preds = %1270
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %170) #11
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %170)
          to label %1272 unwind label %1289

1272:                                             ; preds = %1271
  %1273 = getelementptr inbounds i8, ptr %1217, i64 104
  %1274 = call noundef zeroext i1 @_ZNK3HIR4Enum5Class7is_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %1273)
  br i1 %1274, label %1275, label %1298

1275:                                             ; preds = %1272
  %1276 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %1273)
  %1277 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1276, i64 noundef %1269) #11
  %1278 = getelementptr inbounds i8, ptr %1277, i64 8
  %1279 = load i8, ptr %1278, align 8, !tbaa !36, !range !40, !noundef !41
  %1280 = trunc nuw i8 %1279 to i1
  br i1 %1280, label %1281, label %1298

1281:                                             ; preds = %1275
  %1282 = load ptr, ptr %122, align 8, !tbaa !5
  %1283 = getelementptr inbounds i8, ptr %1282, i64 64
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %171, ptr noundef nonnull align 8 dereferenceable(32) %1283, ptr noundef nonnull %172)
          to label %1284 unwind label %1293

1284:                                             ; preds = %1281
  store ptr null, ptr %174, align 8, !tbaa !28
  %1285 = trunc i64 %1269 to i32
  store i32 %1285, ptr %790, align 8, !tbaa !30
  store ptr %1217, ptr %791, align 8, !tbaa !31
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %173, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %174)
          to label %1286 unwind label %1295

1286:                                             ; preds = %1284
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %789, ptr noundef nonnull %171, ptr noundef nonnull %173)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #11
  br label %1313

1287:                                             ; preds = %1268
  %1288 = landingpad { ptr, i32 }
          cleanup
  br label %1329

1289:                                             ; preds = %1271
  %1290 = landingpad { ptr, i32 }
          cleanup
  br label %1316

1291:                                             ; preds = %1313
  %1292 = landingpad { ptr, i32 }
          cleanup
  br label %1315

1293:                                             ; preds = %1281
  %1294 = landingpad { ptr, i32 }
          cleanup
  br label %1297

1295:                                             ; preds = %1284
  %1296 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #11
  br label %1297

1297:                                             ; preds = %1295, %1293
  %.pn597 = phi { ptr, i32 } [ %1296, %1295 ], [ %1294, %1293 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #11
  br label %1315

1298:                                             ; preds = %1275, %1272
  %1299 = load ptr, ptr %122, align 8, !tbaa !5
  %1300 = getelementptr inbounds i8, ptr %1299, i64 64
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull align 8 dereferenceable(8) %5)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %175, ptr noundef nonnull align 8 dereferenceable(32) %1300, ptr noundef nonnull %176)
          to label %1301 unwind label %1305

1301:                                             ; preds = %1298
  store ptr null, ptr %178, align 8, !tbaa !32
  %1302 = trunc i64 %1269 to i32
  store i32 %1302, ptr %787, align 8, !tbaa !34
  store ptr %1217, ptr %788, align 8, !tbaa !35
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %177, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %178)
          to label %1303 unwind label %1307

1303:                                             ; preds = %1301
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %170, ptr noundef nonnull %175, ptr noundef nonnull %177)
          to label %1304 unwind label %1309

1304:                                             ; preds = %1303
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #11
  br label %1313

1305:                                             ; preds = %1298
  %1306 = landingpad { ptr, i32 }
          cleanup
  br label %1312

1307:                                             ; preds = %1301
  %1308 = landingpad { ptr, i32 }
          cleanup
  br label %1311

1309:                                             ; preds = %1303
  %1310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #11
  br label %1311

1311:                                             ; preds = %1309, %1307
  %.pn594 = phi { ptr, i32 } [ %1310, %1309 ], [ %1308, %1307 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #11
  br label %1312

1312:                                             ; preds = %1311, %1305
  %.pn594.pn = phi { ptr, i32 } [ %.pn594, %1311 ], [ %1306, %1305 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %176) #11
  br label %1315

1313:                                             ; preds = %1304, %1286
  %.sink2114 = phi ptr [ %175, %1304 ], [ %171, %1286 ]
  %.sink2113 = phi ptr [ %176, %1304 ], [ %172, %1286 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink2114) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %.sink2113) #11
  invoke void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184) %9, ptr noundef nonnull align 8 dereferenceable(184) %170)
          to label %1314 unwind label %1291

1314:                                             ; preds = %1313
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %170) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %170) #11
  br label %.loopexit762

1315:                                             ; preds = %1312, %1297, %1291
  %.pn599 = phi { ptr, i32 } [ %1292, %1291 ], [ %.pn597, %1297 ], [ %.pn594.pn, %1312 ]
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %170) #11
  br label %1316

1316:                                             ; preds = %1315, %1289
  %.pn599.pn = phi { ptr, i32 } [ %.pn599, %1315 ], [ %1290, %1289 ]
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %170) #11
  br label %1329

1317:                                             ; preds = %.lr.ph1880
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %179) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef nonnull align 8 dereferenceable(8) %950)
          to label %1318 unwind label %1322

1318:                                             ; preds = %1317
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %181) #11
  store ptr %122, ptr %181, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 8 dereferenceable(8) %181) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef nonnull %180)
          to label %1319 unwind label %1324

1319:                                             ; preds = %1318
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %179) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %179) #11
  %1320 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1320, ptr noundef nonnull @.str.5)
          to label %1321 unwind label %1327

1321:                                             ; preds = %1319
  invoke void @__cxa_throw(ptr nonnull %1320, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %1092

1322:                                             ; preds = %1317
  %1323 = landingpad { ptr, i32 }
          cleanup
  br label %1326

1324:                                             ; preds = %1318
  %1325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %179) #11
  br label %1326

1326:                                             ; preds = %1324, %1322
  %.pn635 = phi { ptr, i32 } [ %1325, %1324 ], [ %1323, %1322 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %179) #11
  br label %1329

1327:                                             ; preds = %1319
  %1328 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1320) #11
  br label %1329

.thread748:                                       ; preds = %1065, %1087, %1077
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %121) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %121) #11
  br label %1331

.loopexit762:                                     ; preds = %..loopexit753_crit_edge, %1144, %1168, %1156, %1183, %1314, %1270, %.loopexit752
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %121) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %121) #11
  br label %1331

1329:                                             ; preds = %.loopexit755, %.loopexit.split-lp, %1092, %1119, %1326, %1327, %1212, %1211, %1201, %1153, %1147, %1145, %1287, %1316, %1267, %1074, %1064, %1049, %1047, %1005
  %.pn639 = phi { ptr, i32 } [ %1006, %1005 ], [ %.pn588, %1074 ], [ %.pn583.pn.pn.pn, %1064 ], [ %1050, %1049 ], [ %1048, %1047 ], [ %1093, %1092 ], [ %1328, %1327 ], [ %.pn635, %1326 ], [ %.pn629.pn.pn.pn.pn, %1119 ], [ %.pn625, %1153 ], [ %1148, %1147 ], [ %1146, %1145 ], [ %.pn617.pn.pn.pn.pn.pn, %1201 ], [ %1213, %1212 ], [ %.pn615, %1211 ], [ %.pn608.pn.pn, %1267 ], [ %.pn599.pn, %1316 ], [ %1288, %1287 ], [ %lpad.loopexit, %.loopexit755 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #11
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %121) #11
  br label %1330

1330:                                             ; preds = %1329, %1003
  %.pn639.pn = phi { ptr, i32 } [ %.pn639, %1329 ], [ %1004, %1003 ]
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %121) #11
  br label %1334

1331:                                             ; preds = %961, %.loopexit762, %.thread748, %953
  %1332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %119) #11
  %1333 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %120) #11
  br i1 %1333, label %.lr.ph1883, label %._crit_edge1884

1334:                                             ; preds = %1330, %954
  %.pn639.pn.pn = phi { ptr, i32 } [ %.pn639.pn, %1330 ], [ %955, %954 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %120) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #11
  br label %1373

1335:                                             ; preds = %937, %._crit_edge1884
  %1336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %117) #11
  %1337 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(8) %118) #11
  br i1 %1337, label %937, label %._crit_edge1887

1338:                                             ; preds = %._crit_edge1887
  br i1 %936, label %1339, label %1340

1339:                                             ; preds = %1338
  invoke void @_ZN3AST4Path8BindingsC2EOS1_(ptr noundef nonnull align 8 dereferenceable(184) %0, ptr noundef nonnull align 8 dereferenceable(184) %9)
          to label %1372 unwind label %792

1340:                                             ; preds = %1338
  %1341 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %1342 = getelementptr inbounds i8, ptr %1341, i64 8
  %1343 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1342) #11
  %.not578 = icmp eq i64 %1343, 0
  br i1 %.not578, label %1371, label %1344

1344:                                             ; preds = %1340
  %1345 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %4)
  %1346 = getelementptr inbounds i8, ptr %1345, i64 8
  %1347 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1346) #11
  %1348 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %1347)
  %1349 = load i8, ptr %1348, align 1, !tbaa !12
  %1350 = icmp eq i8 %1349, 35
  br i1 %1350, label %1351, label %1371

1351:                                             ; preds = %1344
  %1352 = call noundef i64 @_ZNKSt4spanIPKN3AST6ModuleEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
  %.not579 = icmp eq i64 %1352, 0
  br i1 %.not579, label %1353, label %1365

1353:                                             ; preds = %1351
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %182) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %1354 unwind label %1358

1354:                                             ; preds = %1353
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %184) #11
  store ptr %4, ptr %184, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 8 dereferenceable(8) %184) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull %183)
          to label %1355 unwind label %1360

1355:                                             ; preds = %1354
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %184) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %182) #11
  %1356 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1356, ptr noundef nonnull @.str.5)
          to label %1357 unwind label %1363

1357:                                             ; preds = %1355
  invoke void @__cxa_throw(ptr nonnull %1356, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %1378 unwind label %792

1358:                                             ; preds = %1353
  %1359 = landingpad { ptr, i32 }
          cleanup
  br label %1362

1360:                                             ; preds = %1354
  %1361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %184) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #11
  br label %1362

1362:                                             ; preds = %1360, %1358
  %.pn580 = phi { ptr, i32 } [ %1361, %1360 ], [ %1359, %1358 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %182) #11
  br label %1373

1363:                                             ; preds = %1355
  %1364 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1356) #11
  br label %1373

1365:                                             ; preds = %1351
  %1366 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIPKN3AST6ModuleEE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
  %1367 = load ptr, ptr %1366, align 8, !tbaa !5
  %1368 = call noundef i64 @_ZNKSt4spanIPKN3AST6ModuleEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %6)
  %1369 = add i64 %1368, -1
  invoke void @_ZNKSt4spanIPKN3AST6ModuleEE7subspanEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::span") align 8 %185, ptr noundef nonnull align 8 dereferenceable(16) %6, i64 noundef 0, i64 noundef %1369)
          to label %1370 unwind label %792

1370:                                             ; preds = %1365
  invoke void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(480) %1367, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %185, i1 noundef zeroext false)
          to label %1372 unwind label %792

1371:                                             ; preds = %1344, %1340
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %0, i8 0, i64 184, i1 false)
  invoke void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0)
          to label %1372 unwind label %792

1372:                                             ; preds = %1339, %1370, %1371, %761, %293
  call void @_ZN9PopOnDropISt4pairIPKN3AST6ModuleEPKcEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  br label %1375

1373:                                             ; preds = %792, %932, %1334, %1362, %1363, %755, %711, %568, %532, %298, %246
  %.pn725.pn = phi { ptr, i32 } [ %.pn725, %298 ], [ %.pn664.pn.pn.pn.pn, %532 ], [ %.pn661.pn, %711 ], [ %247, %246 ], [ %.pn575, %755 ], [ %.pn569, %568 ], [ %.pn649.pn, %932 ], [ %.pn639.pn.pn, %1334 ], [ %793, %792 ], [ %1364, %1363 ], [ %.pn580, %1362 ]
  call void @_ZN9PopOnDropISt4pairIPKN3AST6ModuleEPKcEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #11
  br label %1374

1374:                                             ; preds = %1373, %244
  %.pn725.pn.pn = phi { ptr, i32 } [ %.pn725.pn, %1373 ], [ %245, %244 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  br label %1376

1375:                                             ; preds = %229, %1372
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #11
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %9) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %9) #11
  ret void

1376:                                             ; preds = %1374, %227, %225
  %.pn729 = phi { ptr, i32 } [ %228, %227 ], [ %.pn725.pn.pn, %1374 ], [ %226, %225 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #11
  br label %1377

1377:                                             ; preds = %1376, %223, %221
  %.pn729.pn = phi { ptr, i32 } [ %.pn729, %1376 ], [ %224, %223 ], [ %222, %221 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #11
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %9) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %9) #11
  resume { ptr, i32 } %.pn729.pn

1378:                                             ; preds = %1357, %1321, %1206, %642, %461, %428, %413, %398, %383, %368
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #9 align 2

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

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

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

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

declare void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25)) unnamed_addr #9 align 2

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

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

declare void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z22Resolve_Use_GetBindingRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_4PathESt4spanIPKNS2_6ModuleEEb(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(184) ptr @_ZN3AST4Path8BindingsaSEOS1_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3AST16PathBinding_Type3tagEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

; Function Attrs: nofree nounwind
declare i32 @__cxa_guard_acquire(ptr) local_unnamed_addr #0

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

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

; Function Attrs: nofree nounwind
declare void @__cxa_guard_release(ptr) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt9make_pairIPKN3AST6ModuleEPKcESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS7_INS8_IT0_E4typeEE6__typeEEOS9_OSE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt5countIN9__gnu_cxx17__normal_iteratorIPSt4pairIPKN3AST6ModuleEPKcESt6vectorIS9_SaIS9_EEEES9_ENSt15iterator_traitsIT_E15difference_typeESG_SG_RKT0_(ptr, ptr, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #8

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19push_and_pop_at_endISt4pairIPKN3AST6ModuleEPKcEE9PopOnDropIT_ERSt6vectorIS9_SaIS9_EES9_(ptr dead_on_unwind noalias writable sret(%class.PopOnDrop) align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(393) ptr @_ZNK3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(52) ptr @_ZNK3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(472) ptr @_ZNK3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(448) ptr @_ZNK3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3AST4Item8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZNK3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZNK3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(76) ptr @_ZNK3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #4 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Macro") align 8, ptr, ptr) local_unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST5Crate11root_moduleEv(ptr noundef nonnull align 8 dereferenceable(1112)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIK8RcStringPK10MacroRulesEES9_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST12AbsolutePath12is_parent_ofERKS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

declare noundef zeroext i1 @_ZNK3AST10Visibility10is_visibleERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4Path8Bindings10merge_fromERKS1_(ptr noundef nonnull align 8 dereferenceable(184), ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST4Path8Bindings5cloneEv(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_4PathERKNS2_11ExternCrateEj(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(240), i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8) local_unnamed_addr #2 align 2

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

declare noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS7_12AbsolutePathERKNS7_6ModuleERK8RcStringSt4spanIPSF_EbE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt4spanIPKN3AST6ModuleEE7subspanEmm(ptr dead_on_unwind noalias writable sret(%"class.std::span") align 8, ptr noundef nonnull align 8 dereferenceable(16), i64 noundef, i64 noundef) local_unnamed_addr #2 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!"branch_weights", i32 1, i32 1048575}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = !{!7, !7, i64 0}
!13 = !{!14, !6, i64 0}
!14 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !6, i64 0, !15, i64 8}
!15 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = !{!20, !6, i64 8}
!20 = !{!"_ZTSSt4pairIK8RcStringPK10MacroRulesE", !21, i64 0, !6, i64 8}
!21 = !{!"_ZTS8RcString", !6, i64 0}
!22 = !{!23, !6, i64 0}
!23 = !{!"_ZTSN3AST16PathBinding_Type10Data_CrateE", !6, i64 0}
!24 = !{!14, !6, i64 16}
!25 = !{!14, !6, i64 8}
!26 = !{!27, !6, i64 0}
!27 = !{!"_ZTSN3AST16PathBinding_Type9Data_EnumE", !6, i64 0, !6, i64 8}
!28 = !{!29, !6, i64 0}
!29 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !6, i64 0, !11, i64 8, !6, i64 16}
!30 = !{!29, !11, i64 8}
!31 = !{!29, !6, i64 16}
!32 = !{!33, !6, i64 0}
!33 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !11, i64 8, !6, i64 16}
!34 = !{!33, !11, i64 8}
!35 = !{!33, !6, i64 16}
!36 = !{!37, !38, i64 8}
!37 = !{!"_ZTSN3HIR4Enum11DataVariantE", !21, i64 0, !38, i64 8, !39, i64 16}
!38 = !{!"bool", !7, i64 0}
!39 = !{!"_ZTSN3HIR7TypeRefE", !6, i64 0}
!40 = !{i8 0, i8 2}
!41 = !{}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SCCPPass,SROAPass,SimplifyCFGPass