; 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.RcString = type { ptr }
%"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 }
%"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 }
%"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 }
%"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.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 }
%"struct.AST::PathBinding.23" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"struct.AST::PathBinding.24" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%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.411 = type { ptr, ptr, ptr }
%struct.FmtLambda = type { %"class.std::function" }
%class.anon.412 = type { ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%struct.Span = type { ptr }
%class.anon.413 = type { ptr, ptr, ptr, ptr }
%class.anon.497 = type { ptr, ptr, ptr }
%class.anon.498 = type { ptr, ptr, ptr }
%class.anon.499 = type { i8 }
%class.anon.501 = type { ptr }
%"class.std::span.502" = type { ptr, i64 }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%class.anon.503 = type { i8 }
%class.anon.505 = type { ptr }
%class.anon.506 = type { ptr }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%class.anon.606 = type { ptr, ptr, ptr }
%"struct.AST::PathBinding_Type::Data_TypeAlias" = type { ptr }
%"struct.AST::PathBinding_Type::Data_Enum" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Struct" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Union" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Trait" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_TraitAlias" = type { ptr, ptr }
%"struct.std::__detail::_Node_const_iterator.607" = type { %"struct.std::__detail::_Node_iterator_base.608" }
%"struct.std::__detail::_Node_iterator_base.608" = type { ptr }
%class.anon.609 = type { ptr }
%class.anon.647 = type { ptr, ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Static" = type { ptr, ptr }
%class.anon.648 = type { ptr }
%"struct.AST::PathBinding_Value::Data_Struct" = type { ptr, ptr }
%class.anon.649 = type { ptr }
%"struct.AST::PathBinding_Value::Data_Function" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.650" = type { %"struct.std::__detail::_Node_iterator_base.651" }
%"struct.std::__detail::_Node_iterator_base.651" = type { ptr }
%class.anon.652 = type { ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.20" = type { i8 }
%"struct.AST::PathBinding_Macro::Data_MacroRules" = type { ptr, ptr }
%class.anon.664 = type { ptr }
%class.anon.665 = type { ptr, ptr, ptr }
%"struct.AST::PathBinding_Macro::Data_ProcMacro" = type { ptr, %class.RcString }
%"class.AST::ExternCrate" = type { %class.RcString, %class.RcString, %"class.std::__cxx11::basic_string", %"class.HIR::CratePtr" }
%"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.HIR::CratePtr" = type { ptr }
%"class.HIR::Module" = type { %"class.std::vector.319", %"class.std::unordered_map.324", %"class.std::unordered_map.338", %"class.std::unordered_map.352", %"class.std::vector.366" }
%"class.std::vector.319" = type { %"struct.std::_Vector_base.320" }
%"struct.std::_Vector_base.320" = type { %"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.324" = type { %"class.std::_Hashtable.325" }
%"class.std::_Hashtable.325" = 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::unordered_map.338" = type { %"class.std::_Hashtable.339" }
%"class.std::_Hashtable.339" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.352" = type { %"class.std::_Hashtable.353" }
%"class.std::_Hashtable.353" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.366" = type { %"struct.std::_Vector_base.367" }
%"struct.std::_Vector_base.367" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.414" = type { %class.RcString, %"class.std::unique_ptr.416" }
%"class.std::unique_ptr.416" = type { %"struct.std::__uniq_ptr_data.417" }
%"struct.std::__uniq_ptr_data.417" = type { %"class.std::__uniq_ptr_impl.418" }
%"class.std::__uniq_ptr_impl.418" = type { %"class.std::tuple.419" }
%"class.std::tuple.419" = type { %"struct.std::_Tuple_impl.420" }
%"struct.std::_Tuple_impl.420" = type { %"struct.std::_Head_base.423" }
%"struct.std::_Head_base.423" = type { ptr }
%"struct.HIR::VisEnt" = type { %"class.HIR::Publicity", %"class.HIR::TypeItem" }
%"class.HIR::Publicity" = type { %"class.std::shared_ptr.424" }
%"class.std::shared_ptr.424" = type { %"class.std::__shared_ptr.425" }
%"class.std::__shared_ptr.425" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.HIR::TypeItem" = type { i32, %"union.HIR::TypeItem::DataUnion" }
%"union.HIR::TypeItem::DataUnion" = type { %"class.HIR::Trait" }
%"class.HIR::Trait" = type { %"class.HIR::GenericParams", %"struct.HIR::LifetimeRef", %"class.std::vector.427", i8, %"class.std::unordered_map.442", %"class.std::unordered_map.456", %"class.std::unordered_multimap", %"class.std::unordered_map.483", i32, %"class.std::vector.427", %"struct.HIR::SimplePath" }
%"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 }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map.442" = type { %"class.std::_Hashtable.443" }
%"class.std::_Hashtable.443" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.456" = type { %"class.std::_Hashtable.457" }
%"class.std::_Hashtable.457" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.470" }
%"class.std::_Hashtable.470" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.483" = type { %"class.std::_Hashtable.484" }
%"class.std::_Hashtable.484" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.427" = type { %"struct.std::_Vector_base.428" }
%"struct.std::_Vector_base.428" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TypeItem::Data_Import" = type { %"struct.HIR::SimplePath", i8, i32 }
%"class.HIR::Enum" = type { %"class.HIR::GenericParams", i8, i32, %"class.HIR::Enum::Class", %"struct.HIR::TraitMarkings" }
%"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.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.HIR::Enum::DataVariant" = type { %class.RcString, i8, %"class.HIR::TypeRef" }
%"class.HIR::TypeRef" = type { ptr }
%"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.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.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" }
%"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::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 }
%"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 }
%"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::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 }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.507", %"class.std::vector.512", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.532", %"class.std::map.537", %"class.std::vector.542", %"struct.HIR::Crate::ImplGroup.547", %"class.std::map.558", %"class.std::map.563", %"class.std::vector.18", %"class.std::unordered_map.568", %"class.std::vector.18", %"class.std::unordered_map.587", %"class.std::vector.601", %"class.std::vector.87" }
%"class.std::vector.507" = type { %"struct.std::_Vector_base.508" }
%"struct.std::_Vector_base.508" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.512" = type { %"struct.std::_Vector_base.513" }
%"struct.std::_Vector_base.513" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup" = type { %"class.std::map.517", %"class.std::vector.522", %"class.std::vector.522" }
%"class.std::map.517" = type { %"class.std::_Rb_tree.518" }
%"class.std::_Rb_tree.518" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.522" = type { %"struct.std::_Vector_base.523" }
%"struct.std::_Vector_base.523" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::InherentCache" = type { %"class.std::map.527" }
%"class.std::map.527" = type { %"class.std::_Rb_tree.528" }
%"class.std::_Rb_tree.528" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.532" = type { %"class.std::_Rb_tree.533" }
%"class.std::_Rb_tree.533" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.537" = type { %"class.std::_Rb_tree.538" }
%"class.std::_Rb_tree.538" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.542" = type { %"struct.std::_Vector_base.543" }
%"struct.std::_Vector_base.543" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup.547" = type { %"class.std::map.548", %"class.std::vector.553", %"class.std::vector.553" }
%"class.std::map.548" = type { %"class.std::_Rb_tree.549" }
%"class.std::_Rb_tree.549" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.553" = type { %"struct.std::_Vector_base.554" }
%"struct.std::_Vector_base.554" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.558" = type { %"class.std::_Rb_tree.559" }
%"class.std::_Rb_tree.559" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.563" = type { %"class.std::_Rb_tree.564" }
%"class.std::_Rb_tree.564" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::unordered_map.568" = type { %"class.std::_Hashtable.569" }
%"class.std::_Hashtable.569" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.587" = type { %"class.std::_Hashtable.588" }
%"class.std::_Hashtable.588" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.601" = type { %"struct.std::_Vector_base.602" }
%"struct.std::_Vector_base.602" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.610" = type { %class.RcString, %"class.std::unique_ptr.612" }
%"class.std::unique_ptr.612" = type { %"struct.std::__uniq_ptr_data.613" }
%"struct.std::__uniq_ptr_data.613" = type { %"class.std::__uniq_ptr_impl.614" }
%"class.std::__uniq_ptr_impl.614" = type { %"class.std::tuple.615" }
%"class.std::tuple.615" = type { %"struct.std::_Tuple_impl.616" }
%"struct.std::_Tuple_impl.616" = type { %"struct.std::_Head_base.619" }
%"struct.std::_Head_base.619" = type { ptr }
%"struct.HIR::VisEnt.620" = type { %"class.HIR::Publicity", %"class.HIR::ValueItem" }
%"class.HIR::ValueItem" = type { i32, %"union.HIR::ValueItem::DataUnion" }
%"union.HIR::ValueItem::DataUnion" = type { %"class.HIR::Static" }
%"class.HIR::Static" = type { %"class.HIR::GenericParams", %"struct.HIR::Linkage", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %struct.EncodedLiteral, i8, i8, i8, %"class.std::map.636" }
%"struct.HIR::Linkage" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.621", %"class.std::vector.621", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.621" = type { %"struct.std::_Vector_base.622" }
%"struct.std::_Vector_base.622" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MIR::FunctionPointer" = type { ptr }
%"class.HIR::ExprStatePtr" = type { ptr }
%struct.EncodedLiteral = type { %"class.std::vector.626", %"class.std::vector.631" }
%"class.std::vector.626" = type { %"struct.std::_Vector_base.627" }
%"struct.std::_Vector_base.627" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.631" = type { %"struct.std::_Vector_base.632" }
%"struct.std::_Vector_base.632" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.636" = type { %"class.std::_Rb_tree.637" }
%"class.std::_Rb_tree.637" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.HIR::ValueItem::Data_Import" = type { %"struct.HIR::SimplePath", i8, i32 }
%"struct.HIR::ValueItem::Data_StructConstant" = type { %"struct.HIR::SimplePath" }
%"struct.HIR::ValueItem::Data_StructConstructor" = type { %"struct.HIR::SimplePath" }
%"struct.std::pair.653" = type { %class.RcString, %"class.std::unique_ptr.655" }
%"class.std::unique_ptr.655" = type { %"struct.std::__uniq_ptr_data.656" }
%"struct.std::__uniq_ptr_data.656" = type { %"class.std::__uniq_ptr_impl.657" }
%"class.std::__uniq_ptr_impl.657" = type { %"class.std::tuple.658" }
%"class.std::tuple.658" = type { %"struct.std::_Tuple_impl.659" }
%"struct.std::_Tuple_impl.659" = type { %"struct.std::_Head_base.662" }
%"struct.std::_Head_base.662" = type { ptr }
%"struct.HIR::VisEnt.663" = type { %"class.HIR::Publicity", %"class.HIR::MacroItem" }
%"class.HIR::MacroItem" = type { i32, %"union.HIR::MacroItem::DataUnion" }
%"union.HIR::MacroItem::DataUnion" = type { %"class.HIR::ProcMacro" }
%"class.HIR::ProcMacro" = type { i32, %class.RcString, %"struct.HIR::SimplePath", %"class.std::vector.87" }
%"struct.HIR::MacroItem::Data_Import" = type { %"struct.HIR::SimplePath" }

@_ZN12_GLOBAL__N_123rcstring_crate_builtinsE = external hidden global %class.RcString, align 8
@.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.14 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE = external hidden unnamed_addr constant [28 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [4 x i8], align 1
@__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE = external hidden unnamed_addr constant [189 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [9 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; 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) #1

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_free_exception(ptr)

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare noundef zeroext i1 @_Z13debug_enabledv() #3

; 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) #5

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #6 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)) #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #6 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)) #5

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

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

; 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 i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #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 nounwind uwtable
declare dso_local void @_ZNSaI8RcStringEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #6 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 #6 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 #7 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 @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240)) #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #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)) #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

declare void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef) #3

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

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #3

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

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #5 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 #5 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) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64)) #6 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)) #6 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)) #6 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) #6 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) #6 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) #6 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) #6 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) #6 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 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) #6 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) #6 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) #6 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) #6 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) #6 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) #6 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) #6 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 uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56)) #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE(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(56) %3, ptr noundef nonnull align 8 dereferenceable(216) %4, ptr noundef nonnull align 8 dereferenceable(240) %5, i32 noundef %6, ptr noundef %7) #6 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 i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i1, align 1
  %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.411, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %"struct.AST::AbsolutePath", align 8
  %26 = alloca %"class.AST::PathBinding_Type", align 8
  %27 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %struct.FmtLambda, align 8
  %31 = alloca %"class.std::function", align 8
  %32 = alloca %class.anon.412, align 8
  %33 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %34 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %35 = alloca %struct.Span, align 8
  %36 = alloca %"class.std::function", align 8
  %37 = alloca %class.anon.413, align 8
  %38 = alloca i8, align 1
  %39 = alloca ptr, align 8
  %40 = alloca %struct.Span, align 8
  %41 = alloca %"class.std::function", align 8
  %42 = alloca %class.anon.497, align 8
  %43 = alloca i8, align 1
  %44 = alloca ptr, align 8
  %45 = alloca i8, align 1
  %46 = alloca ptr, align 8
  %47 = alloca %struct.Span, align 8
  %48 = alloca %"class.std::function", align 8
  %49 = alloca %class.anon.498, align 8
  %50 = alloca ptr, align 8
  %51 = alloca %struct.Span, align 8
  %52 = alloca %"class.std::function", align 8
  %53 = alloca %class.anon.499, align 1
  %54 = alloca ptr, align 8
  %55 = alloca i64, align 8
  %56 = alloca %struct.Span, align 8
  %57 = alloca %"class.std::function", align 8
  %58 = alloca %class.anon.501, align 8
  %59 = alloca %"class.std::vector.18", align 8
  %60 = alloca %"class.std::span.502", align 8
  %61 = alloca %"struct.AST::AbsolutePath", align 8
  %62 = alloca %"class.AST::PathBinding_Type", align 8
  %63 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %64 = alloca %"struct.AST::AbsolutePath", align 8
  %65 = alloca %"class.AST::PathBinding_Value", align 8
  %66 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %67 = alloca %"class.std::vector.18", align 8
  %68 = alloca %"class.std::span.502", align 8
  %69 = alloca i8, align 1
  %70 = alloca ptr, align 8
  %71 = alloca i8, align 1
  %72 = alloca ptr, align 8
  %73 = alloca %struct.Span, align 8
  %74 = alloca %"class.std::function", align 8
  %75 = alloca %class.anon.503, align 1
  %76 = alloca ptr, align 8
  %77 = alloca i64, align 8
  %78 = alloca %struct.Span, align 8
  %79 = alloca %"class.std::function", align 8
  %80 = alloca %class.anon.505, align 8
  %81 = alloca %"struct.AST::AbsolutePath", align 8
  %82 = alloca %"class.AST::PathBinding_Type", align 8
  %83 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %84 = alloca %"struct.AST::AbsolutePath", align 8
  %85 = alloca %"class.AST::PathBinding_Value", align 8
  %86 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %87 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %88 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %89 = alloca %struct.FmtLambda, align 8
  %90 = alloca %"class.std::function", align 8
  %91 = alloca %class.anon.506, align 8
  %92 = alloca ptr, align 8
  %93 = alloca %"struct.AST::AbsolutePath", align 8
  %94 = alloca %"struct.AST::AbsolutePath", align 8
  %95 = alloca ptr, align 8
  %96 = alloca %"struct.AST::AbsolutePath", align 8
  %97 = alloca %class.RcString, align 8
  %98 = alloca %"class.std::vector.18", align 8
  %99 = alloca %"class.std::span.502", align 8
  %100 = alloca ptr, align 8
  %101 = alloca %"struct.HIR::SimplePath", align 8
  %102 = alloca %class.RcString, align 8
  %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_EnumVar", align 8
  %107 = alloca %"class.std::span.502", align 8
  %108 = alloca %"struct.AST::AbsolutePath", align 8
  %109 = alloca %"class.AST::PathBinding_Type", align 8
  %110 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %111 = alloca ptr, align 8
  %112 = alloca %struct.Span, align 8
  %113 = alloca %"class.std::function", align 8
  %114 = alloca %class.anon.606, align 8
  %115 = alloca ptr, align 8
  %116 = alloca %"struct.AST::AbsolutePath", align 8
  %117 = alloca %"class.AST::PathBinding_Type", align 8
  %118 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %119 = alloca ptr, align 8
  %120 = alloca %"struct.AST::AbsolutePath", align 8
  %121 = alloca %"class.AST::PathBinding_Type", align 8
  %122 = alloca %"struct.AST::PathBinding_Type::Data_TypeAlias", align 8
  %123 = alloca ptr, align 8
  %124 = alloca %"struct.AST::AbsolutePath", align 8
  %125 = alloca %"class.AST::PathBinding_Type", align 8
  %126 = alloca %"struct.AST::PathBinding_Type::Data_TypeAlias", align 8
  %127 = alloca ptr, align 8
  %128 = alloca %"struct.AST::AbsolutePath", align 8
  %129 = alloca %"class.AST::PathBinding_Type", align 8
  %130 = alloca %"struct.AST::PathBinding_Type::Data_Enum", align 8
  %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_Struct", align 8
  %135 = alloca ptr, align 8
  %136 = alloca %"struct.AST::AbsolutePath", align 8
  %137 = alloca %"class.AST::PathBinding_Type", align 8
  %138 = alloca %"struct.AST::PathBinding_Type::Data_Union", align 8
  %139 = alloca ptr, align 8
  %140 = alloca %"struct.AST::AbsolutePath", align 8
  %141 = alloca %"class.AST::PathBinding_Type", align 8
  %142 = alloca %"struct.AST::PathBinding_Type::Data_Trait", align 8
  %143 = alloca ptr, align 8
  %144 = alloca %"struct.AST::AbsolutePath", align 8
  %145 = alloca %"class.AST::PathBinding_Type", align 8
  %146 = alloca %"struct.AST::PathBinding_Type::Data_TraitAlias", align 8
  %147 = alloca %"struct.std::__detail::_Node_const_iterator.607", align 8
  %148 = alloca %"struct.std::__detail::_Node_const_iterator.607", align 8
  %149 = alloca %struct.FmtLambda, align 8
  %150 = alloca %"class.std::function", align 8
  %151 = alloca %class.anon.609, align 8
  %152 = alloca ptr, align 8
  %153 = alloca %"struct.AST::AbsolutePath", align 8
  %154 = alloca %"struct.AST::AbsolutePath", align 8
  %155 = alloca ptr, align 8
  %156 = alloca %"struct.AST::AbsolutePath", align 8
  %157 = alloca %class.RcString, align 8
  %158 = alloca %"class.std::vector.18", align 8
  %159 = alloca %"class.std::span.502", align 8
  %160 = alloca ptr, align 8
  %161 = alloca %"struct.HIR::SimplePath", align 8
  %162 = alloca %class.RcString, align 8
  %163 = alloca ptr, align 8
  %164 = alloca %"struct.AST::AbsolutePath", align 8
  %165 = alloca %"class.AST::PathBinding_Value", align 8
  %166 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %167 = alloca i8, align 1
  %168 = alloca ptr, align 8
  %169 = alloca i8, align 1
  %170 = alloca ptr, align 8
  %171 = alloca %struct.Span, align 8
  %172 = alloca %"class.std::function", align 8
  %173 = alloca %class.anon.647, align 8
  %174 = alloca i8, align 1
  %175 = alloca ptr, align 8
  %176 = alloca %"struct.AST::AbsolutePath", align 8
  %177 = alloca %"class.AST::PathBinding_Value", align 8
  %178 = alloca %"struct.AST::PathBinding_Value::Data_Static", align 8
  %179 = alloca i8, align 1
  %180 = alloca ptr, align 8
  %181 = alloca %"struct.AST::AbsolutePath", align 8
  %182 = alloca %"class.AST::PathBinding_Value", align 8
  %183 = alloca %"struct.AST::PathBinding_Value::Data_Static", align 8
  %184 = alloca i8, align 1
  %185 = alloca ptr, align 8
  %186 = alloca %struct.Span, align 8
  %187 = alloca %"class.std::function", align 8
  %188 = alloca %class.anon.648, align 8
  %189 = alloca %"struct.AST::AbsolutePath", align 8
  %190 = alloca %"class.AST::PathBinding_Value", align 8
  %191 = alloca %"struct.AST::PathBinding_Value::Data_Struct", align 8
  %192 = alloca i8, align 1
  %193 = alloca ptr, align 8
  %194 = alloca %struct.Span, align 8
  %195 = alloca %"class.std::function", align 8
  %196 = alloca %class.anon.649, align 8
  %197 = alloca %"struct.AST::AbsolutePath", align 8
  %198 = alloca %"class.AST::PathBinding_Value", align 8
  %199 = alloca %"struct.AST::PathBinding_Value::Data_Struct", align 8
  %200 = alloca i8, align 1
  %201 = alloca ptr, align 8
  %202 = alloca %"struct.AST::AbsolutePath", align 8
  %203 = alloca %"class.AST::PathBinding_Value", align 8
  %204 = alloca %"struct.AST::PathBinding_Value::Data_Function", align 8
  %205 = alloca %"struct.std::__detail::_Node_const_iterator.650", align 8
  %206 = alloca %"struct.std::__detail::_Node_const_iterator.650", align 8
  %207 = alloca %struct.FmtLambda, align 8
  %208 = alloca %"class.std::function", align 8
  %209 = alloca %class.anon.652, align 8
  %210 = alloca ptr, align 8
  %211 = alloca %"struct.AST::AbsolutePath", align 8
  %212 = alloca %"struct.AST::AbsolutePath", align 8
  %213 = alloca ptr, align 8
  %214 = alloca %"struct.AST::AbsolutePath", align 8
  %215 = alloca %class.RcString, align 8
  %216 = alloca %"class.std::vector.18", align 8
  %217 = alloca %"class.std::initializer_list", align 8
  %218 = alloca [1 x %class.RcString], align 8
  %219 = alloca ptr, align 8
  %220 = alloca %"class.std::allocator.20", align 1
  %221 = alloca %"class.AST::PathBinding_Macro", align 8
  %222 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %223 = alloca %struct.Span, align 8
  %224 = alloca %"class.std::function", align 8
  %225 = alloca %class.anon.664, align 8
  %226 = alloca ptr, align 8
  %227 = alloca ptr, align 8
  %228 = alloca %"class.std::span.502", align 8
  %229 = alloca %"struct.AST::AbsolutePath", align 8
  %230 = alloca %class.RcString, align 8
  %231 = alloca %"class.std::vector.18", align 8
  %232 = alloca %"class.std::span.502", align 8
  %233 = alloca i8, align 1
  %234 = alloca ptr, align 8
  %235 = alloca i8, align 1
  %236 = alloca ptr, align 8
  %237 = alloca %struct.Span, align 8
  %238 = alloca %"class.std::function", align 8
  %239 = alloca %class.anon.665, align 8
  %240 = alloca %"struct.AST::AbsolutePath", align 8
  %241 = alloca %"class.AST::PathBinding_Macro", align 8
  %242 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %243 = alloca i8, align 1
  %244 = alloca ptr, align 8
  %245 = alloca %"struct.AST::AbsolutePath", align 8
  %246 = alloca %"class.AST::PathBinding_Macro", align 8
  %247 = alloca %"struct.AST::PathBinding_Macro::Data_ProcMacro", align 8
  %248 = alloca i8, align 1
  %249 = alloca ptr, align 8
  %250 = alloca %"struct.AST::AbsolutePath", align 8
  %251 = alloca %"class.AST::PathBinding_Macro", align 8
  %252 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", 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 i32 %6, ptr %15, align 4, !tbaa !9
  store ptr %7, ptr %16, align 8, !tbaa !5
  %253 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 0
  %254 = call noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef @.str.2)
  br i1 %254, label %255, label %260

255:                                              ; preds = %8
  %256 = load ptr, ptr %12, align 8, !tbaa !5
  %257 = getelementptr inbounds %"class.AST::ExternCrate", ptr %256, i32 0, i32 0
  %258 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 0
  %259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 8 dereferenceable(8) %257)
  br label %260

260:                                              ; preds = %255, %8
  store i1 false, ptr %17, align 1
  call void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0)
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #8
  %261 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %262 unwind label %291

262:                                              ; preds = %260
  %263 = zext i1 %261 to i64
  %264 = select i1 %261, ptr @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE, ptr null
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #8
  %265 = getelementptr inbounds %class.anon.411, ptr %22, i32 0, i32 0
  %266 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %266, ptr %265, align 8, !tbaa !5
  %267 = getelementptr inbounds %class.anon.411, ptr %22, i32 0, i32 1
  store ptr %15, ptr %267, align 8, !tbaa !5
  %268 = getelementptr inbounds %class.anon.411, ptr %22, i32 0, i32 2
  store ptr %7, ptr %268, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %269 unwind label %295

269:                                              ; preds = %262
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef %264, ptr noundef %21)
          to label %270 unwind label %299

270:                                              ; preds = %269
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %271 = load ptr, ptr %14, align 8, !tbaa !5
  %272 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %271)
          to label %273 unwind label %304

273:                                              ; preds = %270
  store ptr %272, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %274 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %274, ptr %24, align 8, !tbaa !5
  %275 = load ptr, ptr %23, align 8, !tbaa !5
  %276 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %275) #8
  %277 = load i32, ptr %15, align 4, !tbaa !9
  %278 = zext i32 %277 to i64
  %279 = icmp eq i64 %276, %278
  br i1 %279, label %280, label %321

280:                                              ; preds = %273
  %281 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %282 unwind label %308

282:                                              ; preds = %280
  %283 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %27, i32 0, i32 0
  store ptr null, ptr %283, align 8, !tbaa !11
  %284 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %27, i32 0, i32 1
  %285 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %284, i32 0, i32 0
  %286 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %286, ptr %285, align 8, !tbaa !14
  %287 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %284, i32 0, i32 1
  %288 = load ptr, ptr %24, align 8, !tbaa !5
  store ptr %288, ptr %287, align 8, !tbaa !15
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %26, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %27)
          to label %289 unwind label %312

289:                                              ; preds = %282
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %281, ptr noundef %25, ptr noundef %26)
          to label %290 unwind label %316

290:                                              ; preds = %289
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  store i1 true, ptr %17, align 1
  store i32 1, ptr %28, align 4
  br label %2923

291:                                              ; preds = %260
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %19, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %20, align 4
  br label %2927

295:                                              ; preds = %262
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %19, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %20, align 4
  br label %303

299:                                              ; preds = %269
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %19, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %303

303:                                              ; preds = %299, %295
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #8
  br label %2927

304:                                              ; preds = %270
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %19, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %20, align 4
  br label %2926

308:                                              ; preds = %2916, %2914, %2911, %2908, %2905, %2902, %2899, %2891, %2889, %2887, %2884, %2881, %2876, %2872, %2868, %1006, %1001, %280
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %19, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %20, align 4
  br label %2925

312:                                              ; preds = %282
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %19, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %20, align 4
  br label %320

316:                                              ; preds = %289
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %19, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %320

320:                                              ; preds = %316, %312
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %2925

321:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %322 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %322, ptr %29, align 4, !tbaa !9
  br label %323

323:                                              ; preds = %994, %321
  %324 = load i32, ptr %29, align 4, !tbaa !9
  %325 = zext i32 %324 to i64
  %326 = load ptr, ptr %23, align 8, !tbaa !5
  %327 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %326) #8
  %328 = sub i64 %327, 1
  %329 = icmp ult i64 %325, %328
  br i1 %329, label %331, label %330

330:                                              ; preds = %323
  store i32 2, ptr %28, align 4
  br label %998

331:                                              ; preds = %323
  %332 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 1
  %333 = load ptr, ptr %23, align 8, !tbaa !5
  %334 = load i32, ptr %29, align 4, !tbaa !9
  %335 = zext i32 %334 to i64
  %336 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %333, i64 noundef %335) #8
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %336)
          to label %338 unwind label %359

338:                                              ; preds = %331
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %332, ptr noundef nonnull align 8 dereferenceable(8) %337)
          to label %339 unwind label %359

339:                                              ; preds = %338
  br label %340

340:                                              ; preds = %339
  %341 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %342 unwind label %359

342:                                              ; preds = %340
  br i1 %341, label %343, label %372

343:                                              ; preds = %342
  %344 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %344, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %346 unwind label %359

346:                                              ; preds = %343
  %347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %345, ptr noundef @.str.44)
          to label %348 unwind label %359

348:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  %349 = getelementptr inbounds %class.anon.412, ptr %32, i32 0, i32 0
  store ptr %24, ptr %349, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %31)
          to label %350 unwind label %363

350:                                              ; preds = %348
  %351 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %347, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %352 unwind label %367

352:                                              ; preds = %350
  %353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef @.str.45)
          to label %354 unwind label %367

354:                                              ; preds = %352
  %355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %353, ptr noundef @_ZSt3decRSt8ios_base)
          to label %356 unwind label %367

356:                                              ; preds = %354
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %358 unwind label %367

358:                                              ; preds = %356
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %372

359:                                              ; preds = %346, %343, %340, %338, %331
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %19, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %20, align 4
  br label %1000

363:                                              ; preds = %348
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %19, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %20, align 4
  br label %371

367:                                              ; preds = %356, %354, %352, %350
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %19, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %20, align 4
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %371

371:                                              ; preds = %367, %363
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  br label %1000

372:                                              ; preds = %358, %342
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %375 = load ptr, ptr %24, align 8, !tbaa !5
  %376 = getelementptr inbounds %"class.HIR::Module", ptr %375, i32 0, i32 2
  %377 = load ptr, ptr %23, align 8, !tbaa !5
  %378 = load i32, ptr %29, align 4, !tbaa !9
  %379 = zext i32 %378 to i64
  %380 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef %379) #8
  %381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %380)
          to label %382 unwind label %407

382:                                              ; preds = %374
  %383 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %376, ptr noundef nonnull align 8 dereferenceable(8) %381)
          to label %384 unwind label %407

384:                                              ; preds = %382
  %385 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %33, i32 0, i32 0
  %386 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %385, i32 0, i32 0
  store ptr %383, ptr %386, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %387 = load ptr, ptr %24, align 8, !tbaa !5
  %388 = getelementptr inbounds %"class.HIR::Module", ptr %387, i32 0, i32 2
  %389 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %388) #8
  %390 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %34, i32 0, i32 0
  %391 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %390, i32 0, i32 0
  store ptr %389, ptr %391, align 8
  %392 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br i1 %392, label %393, label %431

393:                                              ; preds = %384
  br label %394

394:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %395 = 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) %395)
          to label %396 unwind label %411

396:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  %397 = getelementptr inbounds %class.anon.413, ptr %37, i32 0, i32 0
  %398 = load ptr, ptr %23, align 8, !tbaa !5
  store ptr %398, ptr %397, align 8, !tbaa !5
  %399 = getelementptr inbounds %class.anon.413, ptr %37, i32 0, i32 1
  store ptr %29, ptr %399, align 8, !tbaa !5
  %400 = getelementptr inbounds %class.anon.413, ptr %37, i32 0, i32 2
  %401 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %401, ptr %400, align 8, !tbaa !5
  %402 = getelementptr inbounds %class.anon.413, ptr %37, i32 0, i32 3
  store ptr %7, ptr %402, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %403 unwind label %415

403:                                              ; preds = %396
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %35, i32 noundef 0, ptr noundef %36)
          to label %404 unwind label %419

404:                                              ; preds = %403
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  %405 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %405, ptr noundef @.str.14)
          to label %406 unwind label %425

406:                                              ; preds = %404
  invoke void @__cxa_throw(ptr %405, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %407

407:                                              ; preds = %463, %461, %459, %453, %451, %449, %443, %441, %438, %435, %432, %406, %382, %374
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %19, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %20, align 4
  br label %997

411:                                              ; preds = %394
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %19, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %20, align 4
  br label %424

415:                                              ; preds = %396
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %19, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %20, align 4
  br label %423

419:                                              ; preds = %403
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %19, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %423

423:                                              ; preds = %419, %415
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br label %424

424:                                              ; preds = %423, %411
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %997

425:                                              ; preds = %404
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %19, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %20, align 4
  call void @__cxa_free_exception(ptr %405) #8
  br label %997

429:                                              ; No predecessors!
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430, %384
  br label %432

432:                                              ; preds = %431
  %433 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %434 unwind label %407

434:                                              ; preds = %432
  br i1 %433, label %435, label %466

435:                                              ; preds = %434
  %436 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %436, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %438 unwind label %407

438:                                              ; preds = %435
  %439 = load i32, ptr %29, align 4, !tbaa !9
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %437, i32 noundef %439)
          to label %441 unwind label %407

441:                                              ; preds = %438
  %442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %440, ptr noundef @.str.46)
          to label %443 unwind label %407

443:                                              ; preds = %441
  %444 = load ptr, ptr %23, align 8, !tbaa !5
  %445 = load i32, ptr %29, align 4, !tbaa !9
  %446 = zext i32 %445 to i64
  %447 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %444, i64 noundef %446) #8
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %447)
          to label %449 unwind label %407

449:                                              ; preds = %443
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull align 8 dereferenceable(8) %448)
          to label %451 unwind label %407

451:                                              ; preds = %449
  %452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef @.str.31)
          to label %453 unwind label %407

453:                                              ; preds = %451
  %454 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %455 = getelementptr inbounds %"struct.std::pair.414", ptr %454, i32 0, i32 1
  %456 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %455) #8
  %457 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %456, i32 0, i32 1
  %458 = invoke noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408) %457)
          to label %459 unwind label %407

459:                                              ; preds = %453
  %460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %452, ptr noundef %458)
          to label %461 unwind label %407

461:                                              ; preds = %459
  %462 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %460, ptr noundef @_ZSt3decRSt8ios_base)
          to label %463 unwind label %407

463:                                              ; preds = %461
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %462, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %465 unwind label %407

465:                                              ; preds = %463
  br label %466

466:                                              ; preds = %465, %434
  br label %467

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #8
  store i8 1, ptr %38, align 1, !tbaa !16
  br label %469

469:                                              ; preds = %987, %468
  %470 = load i8, ptr %38, align 1, !tbaa !16, !range !18, !noundef !19
  %471 = trunc i8 %470 to i1
  br i1 %471, label %473, label %472

472:                                              ; preds = %469
  store i32 11, ptr %28, align 4
  br label %988

473:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  %474 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %475 = getelementptr inbounds %"struct.std::pair.414", ptr %474, i32 0, i32 1
  %476 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %475) #8
  %477 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %476, i32 0, i32 1
  store ptr %477, ptr %39, align 8, !tbaa !5
  br label %478

478:                                              ; preds = %982, %473
  %479 = load i8, ptr %38, align 1, !tbaa !16, !range !18, !noundef !19
  %480 = trunc i8 %479 to i1
  br i1 %480, label %482, label %481

481:                                              ; preds = %478
  store i32 14, ptr %28, align 4
  br label %983

482:                                              ; preds = %478
  %483 = load ptr, ptr %39, align 8, !tbaa !5
  %484 = invoke noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %483)
          to label %485 unwind label %486

485:                                              ; preds = %482
  switch i32 %484, label %491 [
    i32 0, label %490
    i32 1, label %523
    i32 2, label %793
    i32 6, label %817
  ]

486:                                              ; preds = %502, %482
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %19, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %20, align 4
  br label %985

490:                                              ; preds = %485
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 819, ptr noundef @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

491:                                              ; preds = %485
  br label %492

492:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %493 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %493)
          to label %494 unwind label %503

494:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #8
  %495 = getelementptr inbounds %class.anon.497, ptr %42, i32 0, i32 0
  %496 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %496, ptr %495, align 8, !tbaa !5
  %497 = getelementptr inbounds %class.anon.497, ptr %42, i32 0, i32 1
  store ptr %29, ptr %497, align 8, !tbaa !5
  %498 = getelementptr inbounds %class.anon.497, ptr %42, i32 0, i32 2
  store ptr %33, ptr %498, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %499 unwind label %507

499:                                              ; preds = %494
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %40, i32 noundef 0, ptr noundef %41)
          to label %500 unwind label %511

500:                                              ; preds = %499
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  %501 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %501, ptr noundef @.str.14)
          to label %502 unwind label %517

502:                                              ; preds = %500
  invoke void @__cxa_throw(ptr %501, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %486

503:                                              ; preds = %492
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %19, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %20, align 4
  br label %516

507:                                              ; preds = %494
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %19, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %20, align 4
  br label %515

511:                                              ; preds = %499
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %19, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %515

515:                                              ; preds = %511, %507
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %516

516:                                              ; preds = %515, %503
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %985

517:                                              ; preds = %500
  %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
  call void @__cxa_free_exception(ptr %501) #8
  br label %985

521:                                              ; No predecessors!
  br label %522

522:                                              ; preds = %521
  br label %981

523:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #8
  store i8 1, ptr %43, align 1, !tbaa !16
  br label %524

524:                                              ; preds = %789, %523
  %525 = load i8, ptr %43, align 1, !tbaa !16, !range !18, !noundef !19
  %526 = trunc i8 %525 to i1
  br i1 %526, label %528, label %527

527:                                              ; preds = %524
  store i32 20, ptr %28, align 4
  br label %790

528:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %529 = load ptr, ptr %39, align 8, !tbaa !5
  %530 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %529)
          to label %531 unwind label %537

531:                                              ; preds = %528
  store ptr %530, ptr %44, align 8, !tbaa !5
  br label %532

532:                                              ; preds = %783, %531
  %533 = load ptr, ptr %44, align 8, !tbaa !5
  %534 = load i8, ptr %43, align 1, !tbaa !16, !range !18, !noundef !19
  %535 = trunc i8 %534 to i1
  br i1 %535, label %541, label %536

536:                                              ; preds = %532
  store i32 23, ptr %28, align 4
  br label %785

537:                                              ; preds = %528
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %19, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %20, align 4
  br label %787

541:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #8
  store i8 0, ptr %45, align 1, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  %542 = load ptr, ptr %10, align 8, !tbaa !5
  %543 = load ptr, ptr %11, align 8, !tbaa !5
  %544 = load ptr, ptr %44, align 8, !tbaa !5
  %545 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %544, i32 0, i32 0
  %546 = invoke noundef ptr @_ZN12_GLOBAL__N_123get_hir_modenum_by_pathERK4SpanRKN3AST5CrateERKN3HIR10SimplePathERb(ptr noundef nonnull align 8 dereferenceable(8) %542, ptr noundef nonnull align 8 dereferenceable(1112) %543, ptr noundef nonnull align 8 dereferenceable(8) %545, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %547 unwind label %563

547:                                              ; preds = %541
  store ptr %546, ptr %46, align 8, !tbaa !5
  %548 = load ptr, ptr %46, align 8, !tbaa !5
  %549 = icmp ne ptr %548, null
  br i1 %549, label %587, label %550

550:                                              ; preds = %547
  br label %551

551:                                              ; preds = %550
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %552 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %552)
          to label %553 unwind label %567

553:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #8
  %554 = getelementptr inbounds %class.anon.498, ptr %49, i32 0, i32 0
  %555 = load ptr, ptr %23, align 8, !tbaa !5
  store ptr %555, ptr %554, align 8, !tbaa !5
  %556 = getelementptr inbounds %class.anon.498, ptr %49, i32 0, i32 1
  store ptr %29, ptr %556, align 8, !tbaa !5
  %557 = getelementptr inbounds %class.anon.498, ptr %49, i32 0, i32 2
  %558 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %558, ptr %557, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %559 unwind label %571

559:                                              ; preds = %553
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef %48)
          to label %560 unwind label %575

560:                                              ; preds = %559
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  %561 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %561, ptr noundef @.str.5)
          to label %562 unwind label %581

562:                                              ; preds = %560
  invoke void @__cxa_throw(ptr %561, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %563

563:                                              ; preds = %759, %755, %562, %541
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %19, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %20, align 4
  br label %784

567:                                              ; preds = %551
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %19, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %20, align 4
  br label %580

571:                                              ; preds = %553
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %19, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %20, align 4
  br label %579

575:                                              ; preds = %559
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %19, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %579

579:                                              ; preds = %575, %571
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  br label %580

580:                                              ; preds = %579, %567
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %784

581:                                              ; preds = %560
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %19, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %20, align 4
  call void @__cxa_free_exception(ptr %561) #8
  br label %784

585:                                              ; No predecessors!
  br label %586

586:                                              ; preds = %585
  br label %587

587:                                              ; preds = %586, %547
  %588 = load i8, ptr %45, align 1, !tbaa !16, !range !18, !noundef !19
  %589 = trunc i8 %588 to i1
  br i1 %589, label %590, label %755

590:                                              ; preds = %587
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %591 = load ptr, ptr %46, align 8, !tbaa !5
  store ptr %591, ptr %50, align 8, !tbaa !5
  %592 = load i32, ptr %29, align 4, !tbaa !9
  %593 = add i32 %592, 1
  store i32 %593, ptr %29, align 4, !tbaa !9
  %594 = load i32, ptr %29, align 4, !tbaa !9
  %595 = zext i32 %594 to i64
  %596 = load ptr, ptr %23, align 8, !tbaa !5
  %597 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %596) #8
  %598 = sub i64 %597, 1
  %599 = icmp ne i64 %595, %598
  br i1 %599, label %600, label %626

600:                                              ; preds = %590
  br label %601

601:                                              ; preds = %600
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  %602 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %602)
          to label %603 unwind label %607

603:                                              ; preds = %601
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 1 dereferenceable(1) %53) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %51, i32 noundef 0, ptr noundef %52)
          to label %604 unwind label %611

604:                                              ; preds = %603
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  %605 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %605, ptr noundef @.str.14)
          to label %606 unwind label %616

606:                                              ; preds = %604
  invoke void @__cxa_throw(ptr %605, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %620

607:                                              ; preds = %601
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %19, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %20, align 4
  br label %615

611:                                              ; preds = %603
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %19, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  br label %615

615:                                              ; preds = %611, %607
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %754

616:                                              ; preds = %604
  %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
  call void @__cxa_free_exception(ptr %605) #8
  br label %754

620:                                              ; preds = %606
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %19, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %20, align 4
  br label %754

624:                                              ; No predecessors!
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625, %590
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %627 = load ptr, ptr %23, align 8, !tbaa !5
  %628 = load i32, ptr %29, align 4, !tbaa !9
  %629 = zext i32 %628 to i64
  %630 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %627, i64 noundef %629) #8
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %630)
          to label %632 unwind label %648

632:                                              ; preds = %626
  store ptr %631, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %633 = load ptr, ptr %50, align 8, !tbaa !5
  %634 = load ptr, ptr %54, align 8, !tbaa !5
  %635 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %633, ptr noundef nonnull align 8 dereferenceable(8) %634)
          to label %636 unwind label %652

636:                                              ; preds = %632
  store i64 %635, ptr %55, align 8, !tbaa !20
  %637 = load i64, ptr %55, align 8, !tbaa !20
  %638 = icmp eq i64 %637, -1
  br i1 %638, label %639, label %671

639:                                              ; preds = %636
  br label %640

640:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %641 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %641)
          to label %642 unwind label %656

642:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %643 = getelementptr inbounds %class.anon.501, ptr %58, i32 0, i32 0
  %644 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %644, ptr %643, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %56, i32 noundef 0, ptr noundef %57)
          to label %645 unwind label %660

645:                                              ; preds = %642
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  %646 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %646, ptr noundef @.str.14)
          to label %647 unwind label %665

647:                                              ; preds = %645
  invoke void @__cxa_throw(ptr %646, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %652

648:                                              ; preds = %626
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %19, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %20, align 4
  br label %753

652:                                              ; preds = %731, %707, %697, %692, %687, %675, %671, %647, %632
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %19, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %20, align 4
  br label %752

656:                                              ; preds = %640
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %19, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %20, align 4
  br label %664

660:                                              ; preds = %642
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %19, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br label %664

664:                                              ; preds = %660, %656
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  br label %752

665:                                              ; preds = %645
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %19, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %20, align 4
  call void @__cxa_free_exception(ptr %646) #8
  br label %752

669:                                              ; No predecessors!
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670, %636
  %672 = load ptr, ptr %44, align 8, !tbaa !5
  %673 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %672, i32 0, i32 0
  %674 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %673)
          to label %675 unwind label %652

675:                                              ; preds = %671
  %676 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 0
  %677 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %676, ptr noundef nonnull align 8 dereferenceable(8) %674)
          to label %678 unwind label %652

678:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #8
  %679 = load ptr, ptr %44, align 8, !tbaa !5
  %680 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %679, i32 0, i32 0
  %681 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %680)
          to label %682 unwind label %718

682:                                              ; preds = %678
  %683 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 0
  %684 = extractvalue { ptr, i64 } %681, 0
  store ptr %684, ptr %683, align 8
  %685 = getelementptr inbounds { ptr, i64 }, ptr %60, i32 0, i32 1
  %686 = extractvalue { ptr, i64 } %681, 1
  store i64 %686, ptr %685, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector.18") align 8 %59, ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %687 unwind label %718

687:                                              ; preds = %682
  %688 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 1
  %689 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %688, ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #8
  %690 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 1
  %691 = load ptr, ptr %54, align 8, !tbaa !5
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %690, ptr noundef nonnull align 8 dereferenceable(8) %691)
          to label %692 unwind label %652

692:                                              ; preds = %687
  %693 = load ptr, ptr %50, align 8, !tbaa !5
  %694 = getelementptr inbounds %"class.HIR::Enum", ptr %693, i32 0, i32 3
  %695 = invoke noundef zeroext i1 @_ZNK3HIR4Enum5Class7is_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %694)
          to label %696 unwind label %652

696:                                              ; preds = %692
  br i1 %695, label %697, label %731

697:                                              ; preds = %696
  %698 = load ptr, ptr %50, align 8, !tbaa !5
  %699 = getelementptr inbounds %"class.HIR::Enum", ptr %698, i32 0, i32 3
  %700 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %699)
          to label %701 unwind label %652

701:                                              ; preds = %697
  %702 = load i64, ptr %55, align 8, !tbaa !20
  %703 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %700, i64 noundef %702) #8
  %704 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %703, i32 0, i32 1
  %705 = load i8, ptr %704, align 8, !tbaa !22, !range !18, !noundef !19
  %706 = trunc i8 %705 to i1
  br i1 %706, label %707, label %731

707:                                              ; preds = %701
  %708 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %709 unwind label %652

709:                                              ; preds = %707
  %710 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %63, i32 0, i32 0
  store ptr null, ptr %710, align 8, !tbaa !26
  %711 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %63, i32 0, i32 1
  %712 = load i64, ptr %55, align 8, !tbaa !20
  %713 = trunc i64 %712 to i32
  store i32 %713, ptr %711, align 8, !tbaa !28
  %714 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %63, i32 0, i32 2
  %715 = load ptr, ptr %50, align 8, !tbaa !5
  store ptr %715, ptr %714, align 8, !tbaa !29
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %62, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %63)
          to label %716 unwind label %722

716:                                              ; preds = %709
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %708, ptr noundef %61, ptr noundef %62)
          to label %717 unwind label %726

717:                                              ; preds = %716
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %751

718:                                              ; preds = %682, %678
  %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 @llvm.lifetime.end.p0(i64 16, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #8
  br label %752

722:                                              ; preds = %709
  %723 = landingpad { ptr, i32 }
          cleanup
  %724 = extractvalue { ptr, i32 } %723, 0
  store ptr %724, ptr %19, align 8
  %725 = extractvalue { ptr, i32 } %723, 1
  store i32 %725, ptr %20, align 4
  br label %730

726:                                              ; preds = %716
  %727 = landingpad { ptr, i32 }
          cleanup
  %728 = extractvalue { ptr, i32 } %727, 0
  store ptr %728, ptr %19, align 8
  %729 = extractvalue { ptr, i32 } %727, 1
  store i32 %729, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %730

730:                                              ; preds = %726, %722
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %752

731:                                              ; preds = %701, %696
  %732 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %733 unwind label %652

733:                                              ; preds = %731
  %734 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %66, i32 0, i32 0
  store ptr null, ptr %734, align 8, !tbaa !30
  %735 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %66, i32 0, i32 1
  %736 = load i64, ptr %55, align 8, !tbaa !20
  %737 = trunc i64 %736 to i32
  store i32 %737, ptr %735, align 8, !tbaa !32
  %738 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %66, i32 0, i32 2
  %739 = load ptr, ptr %50, align 8, !tbaa !5
  store ptr %739, ptr %738, align 8, !tbaa !33
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %65, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %66)
          to label %740 unwind label %742

740:                                              ; preds = %733
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %732, ptr noundef %64, ptr noundef %65)
          to label %741 unwind label %746

741:                                              ; preds = %740
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %751

742:                                              ; preds = %733
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %19, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %20, align 4
  br label %750

746:                                              ; preds = %740
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %19, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %750

750:                                              ; preds = %746, %742
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %752

751:                                              ; preds = %741, %717
  store i1 true, ptr %17, align 1
  store i32 1, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %780

752:                                              ; preds = %750, %730, %718, %665, %664, %652
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %753

753:                                              ; preds = %752, %648
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %754

754:                                              ; preds = %753, %620, %616, %615
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %784

755:                                              ; preds = %587
  %756 = load ptr, ptr %44, align 8, !tbaa !5
  %757 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %756, i32 0, i32 0
  %758 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %757)
          to label %759 unwind label %563

759:                                              ; preds = %755
  %760 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 0
  %761 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %760, ptr noundef nonnull align 8 dereferenceable(8) %758)
          to label %762 unwind label %563

762:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 24, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #8
  %763 = load ptr, ptr %44, align 8, !tbaa !5
  %764 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %763, i32 0, i32 0
  %765 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %764)
          to label %766 unwind label %775

766:                                              ; preds = %762
  %767 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 0
  %768 = extractvalue { ptr, i64 } %765, 0
  store ptr %768, ptr %767, align 8
  %769 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 1
  %770 = extractvalue { ptr, i64 } %765, 1
  store i64 %770, ptr %769, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector.18") align 8 %67, ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %771 unwind label %775

771:                                              ; preds = %766
  %772 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 1
  %773 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %772, ptr noundef nonnull align 8 dereferenceable(24) %67) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #8
  %774 = load ptr, ptr %46, align 8, !tbaa !5
  store ptr %774, ptr %24, align 8, !tbaa !5
  br label %779

775:                                              ; preds = %766, %762
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %19, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %67) #8
  br label %784

779:                                              ; preds = %771
  store i32 0, ptr %28, align 4
  br label %780

780:                                              ; preds = %779, %751
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  %781 = load i32, ptr %28, align 4
  switch i32 %781, label %785 [
    i32 0, label %782
  ]

782:                                              ; preds = %780
  br label %783

783:                                              ; preds = %782
  store i8 0, ptr %43, align 1, !tbaa !16
  br label %532, !llvm.loop !34

784:                                              ; preds = %775, %754, %581, %580, %563
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  br label %787

785:                                              ; preds = %780, %536
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  %786 = load i32, ptr %28, align 4
  switch i32 %786, label %790 [
    i32 23, label %788
  ]

787:                                              ; preds = %784, %537
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  br label %985

788:                                              ; preds = %785
  br label %789

789:                                              ; preds = %788
  store i8 0, ptr %43, align 1, !tbaa !16
  br label %524, !llvm.loop !36

790:                                              ; preds = %785, %527
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  %791 = load i32, ptr %28, align 4
  switch i32 %791, label %983 [
    i32 20, label %792
  ]

792:                                              ; preds = %790
  br label %981

793:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #8
  store i8 1, ptr %69, align 1, !tbaa !16
  br label %794

794:                                              ; preds = %815, %793
  %795 = load i8, ptr %69, align 1, !tbaa !16, !range !18, !noundef !19
  %796 = trunc i8 %795 to i1
  br i1 %796, label %798, label %797

797:                                              ; preds = %794
  store i32 32, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  br label %816

798:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %799 = load ptr, ptr %39, align 8, !tbaa !5
  %800 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %799)
          to label %801 unwind label %807

801:                                              ; preds = %798
  store ptr %800, ptr %70, align 8, !tbaa !5
  br label %802

802:                                              ; preds = %813, %801
  %803 = load ptr, ptr %70, align 8, !tbaa !5
  %804 = load i8, ptr %69, align 1, !tbaa !16, !range !18, !noundef !19
  %805 = trunc i8 %804 to i1
  br i1 %805, label %811, label %806

806:                                              ; preds = %802
  store i32 35, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %814

807:                                              ; preds = %798
  %808 = landingpad { ptr, i32 }
          cleanup
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %19, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  br label %985

811:                                              ; preds = %802
  %812 = load ptr, ptr %70, align 8, !tbaa !5
  store ptr %812, ptr %24, align 8, !tbaa !5
  br label %813

813:                                              ; preds = %811
  store i8 0, ptr %69, align 1, !tbaa !16
  br label %802, !llvm.loop !37

814:                                              ; preds = %806
  br label %815

815:                                              ; preds = %814
  store i8 0, ptr %69, align 1, !tbaa !16
  br label %794, !llvm.loop !38

816:                                              ; preds = %797
  br label %981

817:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #8
  store i8 1, ptr %71, align 1, !tbaa !16
  br label %818

818:                                              ; preds = %977, %817
  %819 = load i8, ptr %71, align 1, !tbaa !16, !range !18, !noundef !19
  %820 = trunc i8 %819 to i1
  br i1 %820, label %822, label %821

821:                                              ; preds = %818
  store i32 38, ptr %28, align 4
  br label %978

822:                                              ; preds = %818
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %823 = load ptr, ptr %39, align 8, !tbaa !5
  %824 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %823)
          to label %825 unwind label %831

825:                                              ; preds = %822
  store ptr %824, ptr %72, align 8, !tbaa !5
  br label %826

826:                                              ; preds = %972, %825
  %827 = load ptr, ptr %72, align 8, !tbaa !5
  %828 = load i8, ptr %71, align 1, !tbaa !16, !range !18, !noundef !19
  %829 = trunc i8 %828 to i1
  br i1 %829, label %835, label %830

830:                                              ; preds = %826
  store i32 41, ptr %28, align 4
  br label %973

831:                                              ; preds = %850, %822
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %19, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %20, align 4
  br label %975

835:                                              ; preds = %826
  %836 = load i32, ptr %29, align 4, !tbaa !9
  %837 = add i32 %836, 1
  store i32 %837, ptr %29, align 4, !tbaa !9
  %838 = load i32, ptr %29, align 4, !tbaa !9
  %839 = zext i32 %838 to i64
  %840 = load ptr, ptr %23, align 8, !tbaa !5
  %841 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %840) #8
  %842 = sub i64 %841, 1
  %843 = icmp ne i64 %839, %842
  br i1 %843, label %844, label %866

844:                                              ; preds = %835
  br label %845

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

847:                                              ; preds = %845
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %73, i32 noundef 0, ptr noundef %74)
          to label %848 unwind label %855

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

850:                                              ; preds = %848
  invoke void @__cxa_throw(ptr %849, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %831

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

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

859:                                              ; preds = %855, %851
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  br label %975

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

864:                                              ; No predecessors!
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865, %835
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #8
  %867 = load ptr, ptr %23, align 8, !tbaa !5
  %868 = load i32, ptr %29, align 4, !tbaa !9
  %869 = zext i32 %868 to i64
  %870 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %867, i64 noundef %869) #8
  %871 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %870)
          to label %872 unwind label %891

872:                                              ; preds = %866
  store ptr %871, ptr %76, align 8, !tbaa !5
  %873 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 1
  %874 = load ptr, ptr %76, align 8, !tbaa !5
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %873, ptr noundef nonnull align 8 dereferenceable(8) %874)
          to label %875 unwind label %891

875:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #8
  %876 = load ptr, ptr %72, align 8, !tbaa !5
  %877 = load ptr, ptr %76, align 8, !tbaa !5
  %878 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %876, ptr noundef nonnull align 8 dereferenceable(8) %877)
          to label %879 unwind label %895

879:                                              ; preds = %875
  store i64 %878, ptr %77, align 8, !tbaa !20
  %880 = load i64, ptr %77, align 8, !tbaa !20
  %881 = icmp eq i64 %880, -1
  br i1 %881, label %882, label %914

882:                                              ; preds = %879
  br label %883

883:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  %884 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %884)
          to label %885 unwind label %899

885:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %886 = getelementptr inbounds %class.anon.505, ptr %80, i32 0, i32 0
  %887 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %887, ptr %886, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(8) %80) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %78, i32 noundef 0, ptr noundef %79)
          to label %888 unwind label %903

888:                                              ; preds = %885
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  %889 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %889, ptr noundef @.str.14)
          to label %890 unwind label %908

890:                                              ; preds = %888
  invoke void @__cxa_throw(ptr %889, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %895

891:                                              ; preds = %872, %866
  %892 = landingpad { ptr, i32 }
          cleanup
  %893 = extractvalue { ptr, i32 } %892, 0
  store ptr %893, ptr %19, align 8
  %894 = extractvalue { ptr, i32 } %892, 1
  store i32 %894, ptr %20, align 4
  br label %971

895:                                              ; preds = %949, %929, %919, %914, %890, %875
  %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 %970

899:                                              ; preds = %883
  %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
  br label %907

903:                                              ; preds = %885
  %904 = landingpad { ptr, i32 }
          cleanup
  %905 = extractvalue { ptr, i32 } %904, 0
  store ptr %905, ptr %19, align 8
  %906 = extractvalue { ptr, i32 } %904, 1
  store i32 %906, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #8
  br label %907

907:                                              ; preds = %903, %899
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  br label %970

908:                                              ; preds = %888
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %19, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %20, align 4
  call void @__cxa_free_exception(ptr %889) #8
  br label %970

912:                                              ; No predecessors!
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913, %879
  %915 = load ptr, ptr %72, align 8, !tbaa !5
  %916 = getelementptr inbounds %"class.HIR::Enum", ptr %915, i32 0, i32 3
  %917 = invoke noundef zeroext i1 @_ZNK3HIR4Enum5Class7is_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %916)
          to label %918 unwind label %895

918:                                              ; preds = %914
  br i1 %917, label %919, label %949

919:                                              ; preds = %918
  %920 = load ptr, ptr %72, align 8, !tbaa !5
  %921 = getelementptr inbounds %"class.HIR::Enum", ptr %920, i32 0, i32 3
  %922 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %921)
          to label %923 unwind label %895

923:                                              ; preds = %919
  %924 = load i64, ptr %77, align 8, !tbaa !20
  %925 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %922, i64 noundef %924) #8
  %926 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %925, i32 0, i32 1
  %927 = load i8, ptr %926, align 8, !tbaa !22, !range !18, !noundef !19
  %928 = trunc i8 %927 to i1
  br i1 %928, label %929, label %949

929:                                              ; preds = %923
  %930 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %931 unwind label %895

931:                                              ; preds = %929
  %932 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %83, i32 0, i32 0
  store ptr null, ptr %932, align 8, !tbaa !26
  %933 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %83, i32 0, i32 1
  %934 = load i64, ptr %77, align 8, !tbaa !20
  %935 = trunc i64 %934 to i32
  store i32 %935, ptr %933, align 8, !tbaa !28
  %936 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %83, i32 0, i32 2
  %937 = load ptr, ptr %72, align 8, !tbaa !5
  store ptr %937, ptr %936, align 8, !tbaa !29
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %82, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %83)
          to label %938 unwind label %940

938:                                              ; preds = %931
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %930, ptr noundef %81, ptr noundef %82)
          to label %939 unwind label %944

939:                                              ; preds = %938
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %969

940:                                              ; preds = %931
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %19, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %20, align 4
  br label %948

944:                                              ; preds = %938
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %19, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %948

948:                                              ; preds = %944, %940
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %970

949:                                              ; preds = %923, %918
  %950 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %951 unwind label %895

951:                                              ; preds = %949
  %952 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %86, i32 0, i32 0
  store ptr null, ptr %952, align 8, !tbaa !30
  %953 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %86, i32 0, i32 1
  %954 = load i64, ptr %77, align 8, !tbaa !20
  %955 = trunc i64 %954 to i32
  store i32 %955, ptr %953, align 8, !tbaa !32
  %956 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %86, i32 0, i32 2
  %957 = load ptr, ptr %72, align 8, !tbaa !5
  store ptr %957, ptr %956, align 8, !tbaa !33
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %85, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %86)
          to label %958 unwind label %960

958:                                              ; preds = %951
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %950, ptr noundef %84, ptr noundef %85)
          to label %959 unwind label %964

959:                                              ; preds = %958
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %969

960:                                              ; preds = %951
  %961 = landingpad { ptr, i32 }
          cleanup
  %962 = extractvalue { ptr, i32 } %961, 0
  store ptr %962, ptr %19, align 8
  %963 = extractvalue { ptr, i32 } %961, 1
  store i32 %963, ptr %20, align 4
  br label %968

964:                                              ; preds = %958
  %965 = landingpad { ptr, i32 }
          cleanup
  %966 = extractvalue { ptr, i32 } %965, 0
  store ptr %966, ptr %19, align 8
  %967 = extractvalue { ptr, i32 } %965, 1
  store i32 %967, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %968

968:                                              ; preds = %964, %960
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %970

969:                                              ; preds = %959, %939
  store i1 true, ptr %17, align 1
  store i32 1, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  br label %973

970:                                              ; preds = %968, %948, %908, %907, %895
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #8
  br label %971

971:                                              ; preds = %970, %891
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  br label %975

972:                                              ; No predecessors!
  store i8 0, ptr %71, align 1, !tbaa !16
  br label %826, !llvm.loop !39

973:                                              ; preds = %969, %830
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  %974 = load i32, ptr %28, align 4
  switch i32 %974, label %978 [
    i32 41, label %976
  ]

975:                                              ; preds = %971, %860, %859, %831
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  br label %985

976:                                              ; preds = %973
  br label %977

977:                                              ; preds = %976
  store i8 0, ptr %71, align 1, !tbaa !16
  br label %818, !llvm.loop !40

978:                                              ; preds = %973, %821
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #8
  %979 = load i32, ptr %28, align 4
  switch i32 %979, label %983 [
    i32 38, label %980
  ]

980:                                              ; preds = %978
  br label %981

981:                                              ; preds = %980, %816, %792, %522
  br label %982

982:                                              ; preds = %981
  store i8 0, ptr %38, align 1, !tbaa !16
  br label %478, !llvm.loop !41

983:                                              ; preds = %978, %790, %481
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  %984 = load i32, ptr %28, align 4
  switch i32 %984, label %988 [
    i32 14, label %986
  ]

985:                                              ; preds = %975, %807, %787, %517, %516, %486
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #8
  br label %997

986:                                              ; preds = %983
  br label %987

987:                                              ; preds = %986
  store i8 0, ptr %38, align 1, !tbaa !16
  br label %469, !llvm.loop !42

988:                                              ; preds = %983, %472
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #8
  %989 = load i32, ptr %28, align 4
  switch i32 %989, label %991 [
    i32 11, label %990
  ]

990:                                              ; preds = %988
  store i32 0, ptr %28, align 4
  br label %991

991:                                              ; preds = %990, %988
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  %992 = load i32, ptr %28, align 4
  switch i32 %992, label %998 [
    i32 0, label %993
  ]

993:                                              ; preds = %991
  br label %994

994:                                              ; preds = %993
  %995 = load i32, ptr %29, align 4, !tbaa !9
  %996 = add i32 %995, 1
  store i32 %996, ptr %29, align 4, !tbaa !9
  br label %323, !llvm.loop !43

997:                                              ; preds = %985, %425, %424, %407
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %1000

998:                                              ; preds = %991, %330
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  %999 = load i32, ptr %28, align 4
  switch i32 %999, label %2923 [
    i32 2, label %1001
  ]

1000:                                             ; preds = %997, %371, %359
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %2925

1001:                                             ; preds = %998
  %1002 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %7, i32 0, i32 1
  %1003 = load ptr, ptr %23, align 8, !tbaa !5
  %1004 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1003) #8
  %1005 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1004)
          to label %1006 unwind label %308

1006:                                             ; preds = %1001
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %1002, ptr noundef nonnull align 8 dereferenceable(8) %1005)
          to label %1007 unwind label %308

1007:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #8
  %1008 = load ptr, ptr %24, align 8, !tbaa !5
  %1009 = getelementptr inbounds %"class.HIR::Module", ptr %1008, i32 0, i32 2
  %1010 = load ptr, ptr %23, align 8, !tbaa !5
  %1011 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1010) #8
  %1012 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1011)
          to label %1013 unwind label %1042

1013:                                             ; preds = %1007
  %1014 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %1009, ptr noundef nonnull align 8 dereferenceable(8) %1012)
          to label %1015 unwind label %1042

1015:                                             ; preds = %1013
  %1016 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %87, i32 0, i32 0
  %1017 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %1016, i32 0, i32 0
  store ptr %1014, ptr %1017, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  %1018 = load ptr, ptr %24, align 8, !tbaa !5
  %1019 = getelementptr inbounds %"class.HIR::Module", ptr %1018, i32 0, i32 2
  %1020 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1019) #8
  %1021 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %88, i32 0, i32 0
  %1022 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %1021, i32 0, i32 0
  store ptr %1020, ptr %1022, align 8
  %1023 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  br i1 %1023, label %1024, label %1058

1024:                                             ; preds = %1015
  br label %1025

1025:                                             ; preds = %1024
  %1026 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1027 unwind label %1042

1027:                                             ; preds = %1025
  br i1 %1026, label %1028, label %1055

1028:                                             ; preds = %1027
  %1029 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1030 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1029, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1031 unwind label %1042

1031:                                             ; preds = %1028
  %1032 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1030, ptr noundef @.str.47)
          to label %1033 unwind label %1042

1033:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #8
  %1034 = getelementptr inbounds %class.anon.506, ptr %91, i32 0, i32 0
  store ptr %24, ptr %1034, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef %90)
          to label %1035 unwind label %1046

1035:                                             ; preds = %1033
  %1036 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %1032, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %1037 unwind label %1050

1037:                                             ; preds = %1035
  %1038 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1036, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1039 unwind label %1050

1039:                                             ; preds = %1037
  %1040 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1038, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1041 unwind label %1050

1041:                                             ; preds = %1039
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  br label %1055

1042:                                             ; preds = %1094, %1092, %1090, %1088, %1082, %1080, %1078, %1074, %1072, %1069, %1066, %1058, %1031, %1028, %1025, %1013, %1007
  %1043 = landingpad { ptr, i32 }
          cleanup
  %1044 = extractvalue { ptr, i32 } %1043, 0
  store ptr %1044, ptr %19, align 8
  %1045 = extractvalue { ptr, i32 } %1043, 1
  store i32 %1045, ptr %20, align 4
  br label %1649

1046:                                             ; preds = %1033
  %1047 = landingpad { ptr, i32 }
          cleanup
  %1048 = extractvalue { ptr, i32 } %1047, 0
  store ptr %1048, ptr %19, align 8
  %1049 = extractvalue { ptr, i32 } %1047, 1
  store i32 %1049, ptr %20, align 4
  br label %1054

1050:                                             ; preds = %1039, %1037, %1035
  %1051 = landingpad { ptr, i32 }
          cleanup
  %1052 = extractvalue { ptr, i32 } %1051, 0
  store ptr %1052, ptr %19, align 8
  %1053 = extractvalue { ptr, i32 } %1051, 1
  store i32 %1053, ptr %20, align 4
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %1054

1054:                                             ; preds = %1050, %1046
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  br label %1649

1055:                                             ; preds = %1041, %1027
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

1057:                                             ; preds = %1056
  br label %1614

1058:                                             ; preds = %1015
  %1059 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  %1060 = getelementptr inbounds %"struct.std::pair.414", ptr %1059, i32 0, i32 1
  %1061 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1060) #8
  %1062 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %1061, i32 0, i32 0
  %1063 = invoke noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %1062)
          to label %1064 unwind label %1042

1064:                                             ; preds = %1058
  br i1 %1063, label %1100, label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065
  %1067 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1068 unwind label %1042

1068:                                             ; preds = %1066
  br i1 %1067, label %1069, label %1097

1069:                                             ; preds = %1068
  %1070 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1071 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1070, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1072 unwind label %1042

1072:                                             ; preds = %1069
  %1073 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1071, ptr noundef @.str.48)
          to label %1074 unwind label %1042

1074:                                             ; preds = %1072
  %1075 = load ptr, ptr %23, align 8, !tbaa !5
  %1076 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1075) #8
  %1077 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1076)
          to label %1078 unwind label %1042

1078:                                             ; preds = %1074
  %1079 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1073, ptr noundef nonnull align 8 dereferenceable(8) %1077)
          to label %1080 unwind label %1042

1080:                                             ; preds = %1078
  %1081 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1079, ptr noundef @.str.31)
          to label %1082 unwind label %1042

1082:                                             ; preds = %1080
  %1083 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  %1084 = getelementptr inbounds %"struct.std::pair.414", ptr %1083, i32 0, i32 1
  %1085 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1084) #8
  %1086 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %1085, i32 0, i32 1
  %1087 = invoke noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408) %1086)
          to label %1088 unwind label %1042

1088:                                             ; preds = %1082
  %1089 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1081, ptr noundef %1087)
          to label %1090 unwind label %1042

1090:                                             ; preds = %1088
  %1091 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1089, ptr noundef @.str.49)
          to label %1092 unwind label %1042

1092:                                             ; preds = %1090
  %1093 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1091, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1094 unwind label %1042

1094:                                             ; preds = %1092
  %1095 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1093, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1096 unwind label %1042

1096:                                             ; preds = %1094
  br label %1097

1097:                                             ; preds = %1096, %1068
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  br label %1613

1100:                                             ; preds = %1064
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #8
  %1101 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  %1102 = getelementptr inbounds %"struct.std::pair.414", ptr %1101, i32 0, i32 1
  %1103 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1102) #8
  %1104 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %1103, i32 0, i32 1
  store ptr %1104, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1105 unwind label %1133

1105:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %1106 unwind label %1137

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  %1108 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1109 unwind label %1141

1109:                                             ; preds = %1107
  br i1 %1108, label %1110, label %1145

1110:                                             ; preds = %1109
  %1111 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1111, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1113 unwind label %1141

1113:                                             ; preds = %1110
  %1114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1112, ptr noundef @.str.48)
          to label %1115 unwind label %1141

1115:                                             ; preds = %1113
  %1116 = load ptr, ptr %23, align 8, !tbaa !5
  %1117 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1116) #8
  %1118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1117)
          to label %1119 unwind label %1141

1119:                                             ; preds = %1115
  %1120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1114, ptr noundef nonnull align 8 dereferenceable(8) %1118)
          to label %1121 unwind label %1141

1121:                                             ; preds = %1119
  %1122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1120, ptr noundef @.str.31)
          to label %1123 unwind label %1141

1123:                                             ; preds = %1121
  %1124 = load ptr, ptr %92, align 8, !tbaa !5
  %1125 = invoke noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408) %1124)
          to label %1126 unwind label %1141

1126:                                             ; preds = %1123
  %1127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1122, ptr noundef %1125)
          to label %1128 unwind label %1141

1128:                                             ; preds = %1126
  %1129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1127, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1130 unwind label %1141

1130:                                             ; preds = %1128
  %1131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1129, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1132 unwind label %1141

1132:                                             ; preds = %1130
  br label %1145

1133:                                             ; preds = %1100
  %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
  br label %1612

1137:                                             ; preds = %1105
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %19, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %20, align 4
  br label %1611

1141:                                             ; preds = %1330, %1326, %1147, %1130, %1128, %1126, %1123, %1121, %1119, %1115, %1113, %1110, %1107
  %1142 = landingpad { ptr, i32 }
          cleanup
  %1143 = extractvalue { ptr, i32 } %1142, 0
  store ptr %1143, ptr %19, align 8
  %1144 = extractvalue { ptr, i32 } %1142, 1
  store i32 %1144, ptr %20, align 4
  br label %1610

1145:                                             ; preds = %1132, %1109
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146
  %1148 = load ptr, ptr %92, align 8, !tbaa !5
  %1149 = invoke noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %1148)
          to label %1150 unwind label %1141

1150:                                             ; preds = %1147
  br i1 %1149, label %1151, label %1325

1151:                                             ; preds = %1150
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %1152 = load ptr, ptr %92, align 8, !tbaa !5
  %1153 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %1152)
          to label %1154 unwind label %1208

1154:                                             ; preds = %1151
  store ptr %1153, ptr %95, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #8
  %1155 = load ptr, ptr %95, align 8, !tbaa !5
  %1156 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1155, i32 0, i32 0
  %1157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1156)
          to label %1158 unwind label %1212

1158:                                             ; preds = %1154
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %1157)
          to label %1159 unwind label %1212

1159:                                             ; preds = %1158
  call void @llvm.lifetime.start.p0(i64 16, ptr %99) #8
  %1160 = load ptr, ptr %95, align 8, !tbaa !5
  %1161 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1160, i32 0, i32 0
  %1162 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1161)
          to label %1163 unwind label %1216

1163:                                             ; preds = %1159
  %1164 = getelementptr inbounds { ptr, i64 }, ptr %99, i32 0, i32 0
  %1165 = extractvalue { ptr, i64 } %1162, 0
  store ptr %1165, ptr %1164, align 8
  %1166 = getelementptr inbounds { ptr, i64 }, ptr %99, i32 0, i32 1
  %1167 = extractvalue { ptr, i64 } %1162, 1
  store i64 %1167, ptr %1166, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector.18") align 8 %98, ptr noundef nonnull align 8 dereferenceable(16) %99)
          to label %1168 unwind label %1216

1168:                                             ; preds = %1163
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef %97, ptr noundef %98)
          to label %1169 unwind label %1220

1169:                                             ; preds = %1168
  %1170 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %1171 unwind label %1224

1171:                                             ; preds = %1169
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #8
  %1172 = load ptr, ptr %11, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"class.AST::Crate", ptr %1172, i32 0, i32 4
  %1174 = load ptr, ptr %95, align 8, !tbaa !5
  %1175 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1174, i32 0, i32 0
  %1176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1175)
          to label %1177 unwind label %1231

1177:                                             ; preds = %1171
  %1178 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1173, ptr noundef nonnull align 8 dereferenceable(8) %1176)
          to label %1179 unwind label %1231

1179:                                             ; preds = %1177
  store ptr %1178, ptr %100, align 8, !tbaa !5
  %1180 = load ptr, ptr %95, align 8, !tbaa !5
  %1181 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1180, i32 0, i32 1
  %1182 = load i8, ptr %1181, align 8, !tbaa !44, !range !18, !noundef !19
  %1183 = trunc i8 %1182 to i1
  br i1 %1183, label %1184, label %1272

1184:                                             ; preds = %1179
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  %1185 = load ptr, ptr %95, align 8, !tbaa !5
  %1186 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1185, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %1186)
          to label %1187 unwind label %1235

1187:                                             ; preds = %1184
  invoke void @_ZN3HIR10SimplePath13pop_componentEv(ptr dead_on_unwind writable sret(%class.RcString) align 8 %102, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %1188 unwind label %1239

1188:                                             ; preds = %1187
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #8
  %1189 = load ptr, ptr %100, align 8, !tbaa !5
  %1190 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1189, i32 0, i32 3
  %1191 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1190)
          to label %1192 unwind label %1243

1192:                                             ; preds = %1188
  %1193 = load ptr, ptr %10, align 8, !tbaa !5
  %1194 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1191, ptr noundef nonnull align 8 dereferenceable(8) %1193, ptr noundef nonnull align 8 dereferenceable(8) %101, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1195 unwind label %1243

1195:                                             ; preds = %1192
  %1196 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %1194)
          to label %1197 unwind label %1243

1197:                                             ; preds = %1195
  store ptr %1196, ptr %103, align 8, !tbaa !5
  %1198 = load ptr, ptr %95, align 8, !tbaa !5
  %1199 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1198, i32 0, i32 2
  %1200 = load i32, ptr %1199, align 4, !tbaa !48
  %1201 = zext i32 %1200 to i64
  %1202 = load ptr, ptr %103, align 8, !tbaa !5
  %1203 = invoke noundef i64 @_ZNK3HIR4Enum12num_variantsEv(ptr noundef nonnull align 8 dereferenceable(200) %1202)
          to label %1204 unwind label %1243

1204:                                             ; preds = %1197
  %1205 = icmp ult i64 %1201, %1203
  br i1 %1205, label %1206, label %1207

1206:                                             ; preds = %1204
  br label %1248

1207:                                             ; preds = %1204
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.4, i32 noundef 910, ptr noundef @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

1208:                                             ; preds = %1151
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %19, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %20, align 4
  br label %1324

1212:                                             ; preds = %1158, %1154
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %19, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %20, align 4
  br label %1230

1216:                                             ; preds = %1163, %1159
  %1217 = landingpad { ptr, i32 }
          cleanup
  %1218 = extractvalue { ptr, i32 } %1217, 0
  store ptr %1218, ptr %19, align 8
  %1219 = extractvalue { ptr, i32 } %1217, 1
  store i32 %1219, ptr %20, align 4
  br label %1229

1220:                                             ; preds = %1168
  %1221 = landingpad { ptr, i32 }
          cleanup
  %1222 = extractvalue { ptr, i32 } %1221, 0
  store ptr %1222, ptr %19, align 8
  %1223 = extractvalue { ptr, i32 } %1221, 1
  store i32 %1223, ptr %20, align 4
  br label %1228

1224:                                             ; preds = %1169
  %1225 = landingpad { ptr, i32 }
          cleanup
  %1226 = extractvalue { ptr, i32 } %1225, 0
  store ptr %1226, ptr %19, align 8
  %1227 = extractvalue { ptr, i32 } %1225, 1
  store i32 %1227, ptr %20, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %1228

1228:                                             ; preds = %1224, %1220
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #8
  br label %1229

1229:                                             ; preds = %1228, %1216
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #8
  br label %1230

1230:                                             ; preds = %1229, %1212
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #8
  br label %1324

1231:                                             ; preds = %1315, %1311, %1283, %1177, %1171
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %19, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %20, align 4
  br label %1323

1235:                                             ; preds = %1184
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %19, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %20, align 4
  br label %1271

1239:                                             ; preds = %1187
  %1240 = landingpad { ptr, i32 }
          cleanup
  %1241 = extractvalue { ptr, i32 } %1240, 0
  store ptr %1241, ptr %19, align 8
  %1242 = extractvalue { ptr, i32 } %1240, 1
  store i32 %1242, ptr %20, align 4
  br label %1270

1243:                                             ; preds = %1248, %1197, %1195, %1192, %1188
  %1244 = landingpad { ptr, i32 }
          cleanup
  %1245 = extractvalue { ptr, i32 } %1244, 0
  store ptr %1245, ptr %19, align 8
  %1246 = extractvalue { ptr, i32 } %1244, 1
  store i32 %1246, ptr %20, align 4
  br label %1269

1247:                                             ; No predecessors!
  br label %1248

1248:                                             ; preds = %1247, %1206
  %1249 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1250 unwind label %1243

1250:                                             ; preds = %1248
  %1251 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %106, i32 0, i32 0
  store ptr null, ptr %1251, align 8, !tbaa !26
  %1252 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %106, i32 0, i32 1
  %1253 = load ptr, ptr %95, align 8, !tbaa !5
  %1254 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1253, i32 0, i32 2
  %1255 = load i32, ptr %1254, align 4, !tbaa !48
  store i32 %1255, ptr %1252, align 8, !tbaa !28
  %1256 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %106, i32 0, i32 2
  %1257 = load ptr, ptr %103, align 8, !tbaa !5
  store ptr %1257, ptr %1256, align 8, !tbaa !29
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %105, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %106)
          to label %1258 unwind label %1260

1258:                                             ; preds = %1250
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1249, ptr noundef %104, ptr noundef %105)
          to label %1259 unwind label %1264

1259:                                             ; preds = %1258
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  br label %1322

1260:                                             ; preds = %1250
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %19, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %20, align 4
  br label %1268

1264:                                             ; preds = %1258
  %1265 = landingpad { ptr, i32 }
          cleanup
  %1266 = extractvalue { ptr, i32 } %1265, 0
  store ptr %1266, ptr %19, align 8
  %1267 = extractvalue { ptr, i32 } %1265, 1
  store i32 %1267, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  br label %1268

1268:                                             ; preds = %1264, %1260
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  br label %1269

1269:                                             ; preds = %1268, %1243
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1270

1270:                                             ; preds = %1269, %1239
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  br label %1271

1271:                                             ; preds = %1270, %1235
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  br label %1323

1272:                                             ; preds = %1179
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #8
  %1273 = load ptr, ptr %95, align 8, !tbaa !5
  %1274 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1273, i32 0, i32 0
  %1275 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1274)
          to label %1276 unwind label %1298

1276:                                             ; preds = %1272
  %1277 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 0
  %1278 = extractvalue { ptr, i64 } %1275, 0
  store ptr %1278, ptr %1277, align 8
  %1279 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 1
  %1280 = extractvalue { ptr, i64 } %1275, 1
  store i64 %1280, ptr %1279, align 8
  %1281 = invoke noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %107)
          to label %1282 unwind label %1298

1282:                                             ; preds = %1276
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #8
  br i1 %1281, label %1283, label %1311

1283:                                             ; preds = %1282
  %1284 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1285 unwind label %1231

1285:                                             ; preds = %1283
  %1286 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %110, i32 0, i32 0
  store ptr null, ptr %1286, align 8, !tbaa !11
  %1287 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %110, i32 0, i32 1
  %1288 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1287, i32 0, i32 0
  %1289 = load ptr, ptr %100, align 8, !tbaa !5
  store ptr %1289, ptr %1288, align 8, !tbaa !14
  %1290 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1287, i32 0, i32 1
  %1291 = load ptr, ptr %100, align 8, !tbaa !5
  %1292 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1291, i32 0, i32 3
  %1293 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1292)
          to label %1294 unwind label %1302

1294:                                             ; preds = %1285
  %1295 = getelementptr inbounds %"class.HIR::Crate", ptr %1293, i32 0, i32 2
  store ptr %1295, ptr %1290, align 8, !tbaa !15
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %109, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %110)
          to label %1296 unwind label %1302

1296:                                             ; preds = %1294
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1284, ptr noundef %108, ptr noundef %109)
          to label %1297 unwind label %1306

1297:                                             ; preds = %1296
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %1321

1298:                                             ; preds = %1276, %1272
  %1299 = landingpad { ptr, i32 }
          cleanup
  %1300 = extractvalue { ptr, i32 } %1299, 0
  store ptr %1300, ptr %19, align 8
  %1301 = extractvalue { ptr, i32 } %1299, 1
  store i32 %1301, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #8
  br label %1323

1302:                                             ; preds = %1294, %1285
  %1303 = landingpad { ptr, i32 }
          cleanup
  %1304 = extractvalue { ptr, i32 } %1303, 0
  store ptr %1304, ptr %19, align 8
  %1305 = extractvalue { ptr, i32 } %1303, 1
  store i32 %1305, ptr %20, align 4
  br label %1310

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
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  br label %1310

1310:                                             ; preds = %1306, %1302
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %1323

1311:                                             ; preds = %1282
  %1312 = load ptr, ptr %100, align 8, !tbaa !5
  %1313 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1312, i32 0, i32 3
  %1314 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1313)
          to label %1315 unwind label %1231

1315:                                             ; preds = %1311
  %1316 = load ptr, ptr %10, align 8, !tbaa !5
  %1317 = load ptr, ptr %95, align 8, !tbaa !5
  %1318 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %1317, i32 0, i32 0
  %1319 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1314, ptr noundef nonnull align 8 dereferenceable(8) %1316, ptr noundef nonnull align 8 dereferenceable(8) %1318, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1320 unwind label %1231

1320:                                             ; preds = %1315
  store ptr %1319, ptr %92, align 8, !tbaa !5
  br label %1321

1321:                                             ; preds = %1320, %1297
  br label %1322

1322:                                             ; preds = %1321, %1259
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  br label %1326

1323:                                             ; preds = %1310, %1298, %1271, %1231
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  br label %1324

1324:                                             ; preds = %1323, %1230, %1208
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  br label %1610

1325:                                             ; preds = %1150
  br label %1326

1326:                                             ; preds = %1325, %1322
  %1327 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  %1328 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %1327)
          to label %1329 unwind label %1141

1329:                                             ; preds = %1326
  br i1 %1328, label %1330, label %1609

1330:                                             ; preds = %1329
  %1331 = load ptr, ptr %92, align 8, !tbaa !5
  %1332 = invoke noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %1331)
          to label %1333 unwind label %1141

1333:                                             ; preds = %1330
  switch i32 %1332, label %1608 [
    i32 0, label %1334
    i32 1, label %1335
    i32 2, label %1377
    i32 3, label %1406
    i32 5, label %1432
    i32 6, label %1458
    i32 7, label %1488
    i32 8, label %1518
    i32 9, label %1548
    i32 4, label %1578
  ]

1334:                                             ; preds = %1333
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 954, ptr noundef @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

1335:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #8
  %1336 = load ptr, ptr %92, align 8, !tbaa !5
  %1337 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %1336)
          to label %1338 unwind label %1352

1338:                                             ; preds = %1335
  store ptr %1337, ptr %111, align 8, !tbaa !5
  %1339 = load ptr, ptr %111, align 8, !tbaa !5
  br label %1340

1340:                                             ; preds = %1338
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #8
  %1341 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %1341)
          to label %1342 unwind label %1356

1342:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 24, ptr %114) #8
  %1343 = getelementptr inbounds %class.anon.606, ptr %114, i32 0, i32 0
  %1344 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %1344, ptr %1343, align 8, !tbaa !5
  %1345 = getelementptr inbounds %class.anon.606, ptr %114, i32 0, i32 1
  store ptr %87, ptr %1345, align 8, !tbaa !5
  %1346 = getelementptr inbounds %class.anon.606, ptr %114, i32 0, i32 2
  %1347 = load ptr, ptr %111, align 8, !tbaa !5
  store ptr %1347, ptr %1346, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(24) %114)
          to label %1348 unwind label %1360

1348:                                             ; preds = %1342
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef %113)
          to label %1349 unwind label %1364

1349:                                             ; preds = %1348
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %114) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #8
  %1350 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1350, ptr noundef @.str.5)
          to label %1351 unwind label %1370

1351:                                             ; preds = %1349
  invoke void @__cxa_throw(ptr %1350, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %1352

1352:                                             ; preds = %1351, %1335
  %1353 = landingpad { ptr, i32 }
          cleanup
  %1354 = extractvalue { ptr, i32 } %1353, 0
  store ptr %1354, ptr %19, align 8
  %1355 = extractvalue { ptr, i32 } %1353, 1
  store i32 %1355, ptr %20, align 4
  br label %1376

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

1360:                                             ; preds = %1342
  %1361 = landingpad { ptr, i32 }
          cleanup
  %1362 = extractvalue { ptr, i32 } %1361, 0
  store ptr %1362, ptr %19, align 8
  %1363 = extractvalue { ptr, i32 } %1361, 1
  store i32 %1363, ptr %20, align 4
  br label %1368

1364:                                             ; preds = %1348
  %1365 = landingpad { ptr, i32 }
          cleanup
  %1366 = extractvalue { ptr, i32 } %1365, 0
  store ptr %1366, ptr %19, align 8
  %1367 = extractvalue { ptr, i32 } %1365, 1
  store i32 %1367, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  br label %1368

1368:                                             ; preds = %1364, %1360
  call void @llvm.lifetime.end.p0(i64 24, ptr %114) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #8
  br label %1369

1369:                                             ; preds = %1368, %1356
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #8
  br label %1376

1370:                                             ; preds = %1349
  %1371 = landingpad { ptr, i32 }
          cleanup
  %1372 = extractvalue { ptr, i32 } %1371, 0
  store ptr %1372, ptr %19, align 8
  %1373 = extractvalue { ptr, i32 } %1371, 1
  store i32 %1373, ptr %20, align 4
  call void @__cxa_free_exception(ptr %1350) #8
  br label %1376

1374:                                             ; No predecessors!
  br label %1375

1375:                                             ; preds = %1374
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #8
  br label %1608

1376:                                             ; preds = %1370, %1369, %1352
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #8
  br label %1610

1377:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #8
  %1378 = load ptr, ptr %92, align 8, !tbaa !5
  %1379 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %1378)
          to label %1380 unwind label %1392

1380:                                             ; preds = %1377
  store ptr %1379, ptr %115, align 8, !tbaa !5
  %1381 = load ptr, ptr %115, align 8, !tbaa !5
  %1382 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1383 unwind label %1392

1383:                                             ; preds = %1380
  %1384 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %118, i32 0, i32 0
  store ptr null, ptr %1384, align 8, !tbaa !11
  %1385 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %118, i32 0, i32 1
  %1386 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1385, i32 0, i32 0
  %1387 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %1387, ptr %1386, align 8, !tbaa !14
  %1388 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %1385, i32 0, i32 1
  %1389 = load ptr, ptr %115, align 8, !tbaa !5
  store ptr %1389, ptr %1388, align 8, !tbaa !15
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %117, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %118)
          to label %1390 unwind label %1396

1390:                                             ; preds = %1383
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1382, ptr noundef %116, ptr noundef %117)
          to label %1391 unwind label %1400

1391:                                             ; preds = %1390
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  br label %1608

1392:                                             ; preds = %1380, %1377
  %1393 = landingpad { ptr, i32 }
          cleanup
  %1394 = extractvalue { ptr, i32 } %1393, 0
  store ptr %1394, ptr %19, align 8
  %1395 = extractvalue { ptr, i32 } %1393, 1
  store i32 %1395, ptr %20, align 4
  br label %1405

1396:                                             ; preds = %1383
  %1397 = landingpad { ptr, i32 }
          cleanup
  %1398 = extractvalue { ptr, i32 } %1397, 0
  store ptr %1398, ptr %19, align 8
  %1399 = extractvalue { ptr, i32 } %1397, 1
  store i32 %1399, ptr %20, align 4
  br label %1404

1400:                                             ; preds = %1390
  %1401 = landingpad { ptr, i32 }
          cleanup
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %19, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %1404

1404:                                             ; preds = %1400, %1396
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  br label %1405

1405:                                             ; preds = %1404, %1392
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  br label %1610

1406:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #8
  %1407 = load ptr, ptr %92, align 8, !tbaa !5
  %1408 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZNK3HIR8TypeItem12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %1407)
          to label %1409 unwind label %1418

1409:                                             ; preds = %1406
  store ptr %1408, ptr %119, align 8, !tbaa !5
  %1410 = load ptr, ptr %119, align 8, !tbaa !5
  %1411 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1412 unwind label %1418

1412:                                             ; preds = %1409
  %1413 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %122, i32 0, i32 0
  store ptr null, ptr %1413, align 8, !tbaa !49
  %1414 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %122, i32 0, i32 0
  %1415 = load ptr, ptr %1414, align 8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %121, ptr %1415)
          to label %1416 unwind label %1422

1416:                                             ; preds = %1412
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1411, ptr noundef %120, ptr noundef %121)
          to label %1417 unwind label %1426

1417:                                             ; preds = %1416
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #8
  br label %1608

1418:                                             ; preds = %1409, %1406
  %1419 = landingpad { ptr, i32 }
          cleanup
  %1420 = extractvalue { ptr, i32 } %1419, 0
  store ptr %1420, ptr %19, align 8
  %1421 = extractvalue { ptr, i32 } %1419, 1
  store i32 %1421, ptr %20, align 4
  br label %1431

1422:                                             ; preds = %1412
  %1423 = landingpad { ptr, i32 }
          cleanup
  %1424 = extractvalue { ptr, i32 } %1423, 0
  store ptr %1424, ptr %19, align 8
  %1425 = extractvalue { ptr, i32 } %1423, 1
  store i32 %1425, ptr %20, align 4
  br label %1430

1426:                                             ; preds = %1416
  %1427 = landingpad { ptr, i32 }
          cleanup
  %1428 = extractvalue { ptr, i32 } %1427, 0
  store ptr %1428, ptr %19, align 8
  %1429 = extractvalue { ptr, i32 } %1427, 1
  store i32 %1429, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  br label %1430

1430:                                             ; preds = %1426, %1422
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  br label %1431

1431:                                             ; preds = %1430, %1418
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #8
  br label %1610

1432:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #8
  %1433 = load ptr, ptr %92, align 8, !tbaa !5
  %1434 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3HIR8TypeItem13as_ExternTypeEv(ptr noundef nonnull align 8 dereferenceable(408) %1433)
          to label %1435 unwind label %1444

1435:                                             ; preds = %1432
  store ptr %1434, ptr %123, align 8, !tbaa !5
  %1436 = load ptr, ptr %123, align 8, !tbaa !5
  %1437 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1438 unwind label %1444

1438:                                             ; preds = %1435
  %1439 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %126, i32 0, i32 0
  store ptr null, ptr %1439, align 8, !tbaa !49
  %1440 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %126, i32 0, i32 0
  %1441 = load ptr, ptr %1440, align 8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %125, ptr %1441)
          to label %1442 unwind label %1448

1442:                                             ; preds = %1438
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1437, ptr noundef %124, ptr noundef %125)
          to label %1443 unwind label %1452

1443:                                             ; preds = %1442
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  br label %1608

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

1448:                                             ; preds = %1438
  %1449 = landingpad { ptr, i32 }
          cleanup
  %1450 = extractvalue { ptr, i32 } %1449, 0
  store ptr %1450, ptr %19, align 8
  %1451 = extractvalue { ptr, i32 } %1449, 1
  store i32 %1451, ptr %20, align 4
  br label %1456

1452:                                             ; preds = %1442
  %1453 = landingpad { ptr, i32 }
          cleanup
  %1454 = extractvalue { ptr, i32 } %1453, 0
  store ptr %1454, ptr %19, align 8
  %1455 = extractvalue { ptr, i32 } %1453, 1
  store i32 %1455, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  br label %1456

1456:                                             ; preds = %1452, %1448
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  br label %1457

1457:                                             ; preds = %1456, %1444
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  br label %1610

1458:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #8
  %1459 = load ptr, ptr %92, align 8, !tbaa !5
  %1460 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %1459)
          to label %1461 unwind label %1474

1461:                                             ; preds = %1458
  store ptr %1460, ptr %127, align 8, !tbaa !5
  %1462 = load ptr, ptr %127, align 8, !tbaa !5
  %1463 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1464 unwind label %1474

1464:                                             ; preds = %1461
  %1465 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %130, i32 0, i32 0
  store ptr null, ptr %1465, align 8, !tbaa !51
  %1466 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %130, i32 0, i32 1
  %1467 = load ptr, ptr %127, align 8, !tbaa !5
  store ptr %1467, ptr %1466, align 8, !tbaa !53
  %1468 = getelementptr inbounds { ptr, ptr }, ptr %130, i32 0, i32 0
  %1469 = load ptr, ptr %1468, align 8
  %1470 = getelementptr inbounds { ptr, ptr }, ptr %130, i32 0, i32 1
  %1471 = load ptr, ptr %1470, align 8
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %129, ptr %1469, ptr %1471)
          to label %1472 unwind label %1478

1472:                                             ; preds = %1464
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1463, ptr noundef %128, ptr noundef %129)
          to label %1473 unwind label %1482

1473:                                             ; preds = %1472
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  br label %1608

1474:                                             ; preds = %1461, %1458
  %1475 = landingpad { ptr, i32 }
          cleanup
  %1476 = extractvalue { ptr, i32 } %1475, 0
  store ptr %1476, ptr %19, align 8
  %1477 = extractvalue { ptr, i32 } %1475, 1
  store i32 %1477, ptr %20, align 4
  br label %1487

1478:                                             ; preds = %1464
  %1479 = landingpad { ptr, i32 }
          cleanup
  %1480 = extractvalue { ptr, i32 } %1479, 0
  store ptr %1480, ptr %19, align 8
  %1481 = extractvalue { ptr, i32 } %1479, 1
  store i32 %1481, ptr %20, align 4
  br label %1486

1482:                                             ; preds = %1472
  %1483 = landingpad { ptr, i32 }
          cleanup
  %1484 = extractvalue { ptr, i32 } %1483, 0
  store ptr %1484, ptr %19, align 8
  %1485 = extractvalue { ptr, i32 } %1483, 1
  store i32 %1485, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  br label %1486

1486:                                             ; preds = %1482, %1478
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  br label %1487

1487:                                             ; preds = %1486, %1474
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  br label %1610

1488:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #8
  %1489 = load ptr, ptr %92, align 8, !tbaa !5
  %1490 = invoke noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %1489)
          to label %1491 unwind label %1504

1491:                                             ; preds = %1488
  store ptr %1490, ptr %131, align 8, !tbaa !5
  %1492 = load ptr, ptr %131, align 8, !tbaa !5
  %1493 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1494 unwind label %1504

1494:                                             ; preds = %1491
  %1495 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %134, i32 0, i32 0
  store ptr null, ptr %1495, align 8, !tbaa !54
  %1496 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %134, i32 0, i32 1
  %1497 = load ptr, ptr %131, align 8, !tbaa !5
  store ptr %1497, ptr %1496, align 8, !tbaa !56
  %1498 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 0
  %1499 = load ptr, ptr %1498, align 8
  %1500 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 1
  %1501 = load ptr, ptr %1500, align 8
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %133, ptr %1499, ptr %1501)
          to label %1502 unwind label %1508

1502:                                             ; preds = %1494
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1493, ptr noundef %132, ptr noundef %133)
          to label %1503 unwind label %1512

1503:                                             ; preds = %1502
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #8
  br label %1608

1504:                                             ; preds = %1491, %1488
  %1505 = landingpad { ptr, i32 }
          cleanup
  %1506 = extractvalue { ptr, i32 } %1505, 0
  store ptr %1506, ptr %19, align 8
  %1507 = extractvalue { ptr, i32 } %1505, 1
  store i32 %1507, ptr %20, align 4
  br label %1517

1508:                                             ; preds = %1494
  %1509 = landingpad { ptr, i32 }
          cleanup
  %1510 = extractvalue { ptr, i32 } %1509, 0
  store ptr %1510, ptr %19, align 8
  %1511 = extractvalue { ptr, i32 } %1509, 1
  store i32 %1511, ptr %20, align 4
  br label %1516

1512:                                             ; preds = %1502
  %1513 = landingpad { ptr, i32 }
          cleanup
  %1514 = extractvalue { ptr, i32 } %1513, 0
  store ptr %1514, ptr %19, align 8
  %1515 = extractvalue { ptr, i32 } %1513, 1
  store i32 %1515, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %1516

1516:                                             ; preds = %1512, %1508
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  br label %1517

1517:                                             ; preds = %1516, %1504
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #8
  br label %1610

1518:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #8
  %1519 = load ptr, ptr %92, align 8, !tbaa !5
  %1520 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR8TypeItem8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(408) %1519)
          to label %1521 unwind label %1534

1521:                                             ; preds = %1518
  store ptr %1520, ptr %135, align 8, !tbaa !5
  %1522 = load ptr, ptr %135, align 8, !tbaa !5
  %1523 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1524 unwind label %1534

1524:                                             ; preds = %1521
  %1525 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %138, i32 0, i32 0
  store ptr null, ptr %1525, align 8, !tbaa !57
  %1526 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %138, i32 0, i32 1
  %1527 = load ptr, ptr %135, align 8, !tbaa !5
  store ptr %1527, ptr %1526, align 8, !tbaa !59
  %1528 = getelementptr inbounds { ptr, ptr }, ptr %138, i32 0, i32 0
  %1529 = load ptr, ptr %1528, align 8
  %1530 = getelementptr inbounds { ptr, ptr }, ptr %138, i32 0, i32 1
  %1531 = load ptr, ptr %1530, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %137, ptr %1529, ptr %1531)
          to label %1532 unwind label %1538

1532:                                             ; preds = %1524
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1523, ptr noundef %136, ptr noundef %137)
          to label %1533 unwind label %1542

1533:                                             ; preds = %1532
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  br label %1608

1534:                                             ; preds = %1521, %1518
  %1535 = landingpad { ptr, i32 }
          cleanup
  %1536 = extractvalue { ptr, i32 } %1535, 0
  store ptr %1536, ptr %19, align 8
  %1537 = extractvalue { ptr, i32 } %1535, 1
  store i32 %1537, ptr %20, align 4
  br label %1547

1538:                                             ; preds = %1524
  %1539 = landingpad { ptr, i32 }
          cleanup
  %1540 = extractvalue { ptr, i32 } %1539, 0
  store ptr %1540, ptr %19, align 8
  %1541 = extractvalue { ptr, i32 } %1539, 1
  store i32 %1541, ptr %20, align 4
  br label %1546

1542:                                             ; preds = %1532
  %1543 = landingpad { ptr, i32 }
          cleanup
  %1544 = extractvalue { ptr, i32 } %1543, 0
  store ptr %1544, ptr %19, align 8
  %1545 = extractvalue { ptr, i32 } %1543, 1
  store i32 %1545, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %1546

1546:                                             ; preds = %1542, %1538
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #8
  br label %1547

1547:                                             ; preds = %1546, %1534
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  br label %1610

1548:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #8
  %1549 = load ptr, ptr %92, align 8, !tbaa !5
  %1550 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR8TypeItem8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(408) %1549)
          to label %1551 unwind label %1564

1551:                                             ; preds = %1548
  store ptr %1550, ptr %139, align 8, !tbaa !5
  %1552 = load ptr, ptr %139, align 8, !tbaa !5
  %1553 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1554 unwind label %1564

1554:                                             ; preds = %1551
  %1555 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %142, i32 0, i32 0
  store ptr null, ptr %1555, align 8, !tbaa !60
  %1556 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %142, i32 0, i32 1
  %1557 = load ptr, ptr %139, align 8, !tbaa !5
  store ptr %1557, ptr %1556, align 8, !tbaa !62
  %1558 = getelementptr inbounds { ptr, ptr }, ptr %142, i32 0, i32 0
  %1559 = load ptr, ptr %1558, align 8
  %1560 = getelementptr inbounds { ptr, ptr }, ptr %142, i32 0, i32 1
  %1561 = load ptr, ptr %1560, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %141, ptr %1559, ptr %1561)
          to label %1562 unwind label %1568

1562:                                             ; preds = %1554
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1553, ptr noundef %140, ptr noundef %141)
          to label %1563 unwind label %1572

1563:                                             ; preds = %1562
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #8
  br label %1608

1564:                                             ; preds = %1551, %1548
  %1565 = landingpad { ptr, i32 }
          cleanup
  %1566 = extractvalue { ptr, i32 } %1565, 0
  store ptr %1566, ptr %19, align 8
  %1567 = extractvalue { ptr, i32 } %1565, 1
  store i32 %1567, ptr %20, align 4
  br label %1577

1568:                                             ; preds = %1554
  %1569 = landingpad { ptr, i32 }
          cleanup
  %1570 = extractvalue { ptr, i32 } %1569, 0
  store ptr %1570, ptr %19, align 8
  %1571 = extractvalue { ptr, i32 } %1569, 1
  store i32 %1571, ptr %20, align 4
  br label %1576

1572:                                             ; preds = %1562
  %1573 = landingpad { ptr, i32 }
          cleanup
  %1574 = extractvalue { ptr, i32 } %1573, 0
  store ptr %1574, ptr %19, align 8
  %1575 = extractvalue { ptr, i32 } %1573, 1
  store i32 %1575, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  br label %1576

1576:                                             ; preds = %1572, %1568
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #8
  br label %1577

1577:                                             ; preds = %1576, %1564
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #8
  br label %1610

1578:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #8
  %1579 = load ptr, ptr %92, align 8, !tbaa !5
  %1580 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZNK3HIR8TypeItem13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %1579)
          to label %1581 unwind label %1594

1581:                                             ; preds = %1578
  store ptr %1580, ptr %143, align 8, !tbaa !5
  %1582 = load ptr, ptr %143, align 8, !tbaa !5
  %1583 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1584 unwind label %1594

1584:                                             ; preds = %1581
  %1585 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %146, i32 0, i32 0
  store ptr null, ptr %1585, align 8, !tbaa !63
  %1586 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %146, i32 0, i32 1
  %1587 = load ptr, ptr %143, align 8, !tbaa !5
  store ptr %1587, ptr %1586, align 8, !tbaa !65
  %1588 = getelementptr inbounds { ptr, ptr }, ptr %146, i32 0, i32 0
  %1589 = load ptr, ptr %1588, align 8
  %1590 = getelementptr inbounds { ptr, ptr }, ptr %146, i32 0, i32 1
  %1591 = load ptr, ptr %1590, align 8
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %145, ptr %1589, ptr %1591)
          to label %1592 unwind label %1598

1592:                                             ; preds = %1584
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1583, ptr noundef %144, ptr noundef %145)
          to label %1593 unwind label %1602

1593:                                             ; preds = %1592
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #8
  br label %1608

1594:                                             ; preds = %1581, %1578
  %1595 = landingpad { ptr, i32 }
          cleanup
  %1596 = extractvalue { ptr, i32 } %1595, 0
  store ptr %1596, ptr %19, align 8
  %1597 = extractvalue { ptr, i32 } %1595, 1
  store i32 %1597, ptr %20, align 4
  br label %1607

1598:                                             ; preds = %1584
  %1599 = landingpad { ptr, i32 }
          cleanup
  %1600 = extractvalue { ptr, i32 } %1599, 0
  store ptr %1600, ptr %19, align 8
  %1601 = extractvalue { ptr, i32 } %1599, 1
  store i32 %1601, ptr %20, align 4
  br label %1606

1602:                                             ; preds = %1592
  %1603 = landingpad { ptr, i32 }
          cleanup
  %1604 = extractvalue { ptr, i32 } %1603, 0
  store ptr %1604, ptr %19, align 8
  %1605 = extractvalue { ptr, i32 } %1603, 1
  store i32 %1605, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  br label %1606

1606:                                             ; preds = %1602, %1598
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  br label %1607

1607:                                             ; preds = %1606, %1594
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #8
  br label %1610

1608:                                             ; preds = %1593, %1563, %1533, %1503, %1473, %1443, %1417, %1391, %1375, %1333
  br label %1609

1609:                                             ; preds = %1608, %1329
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #8
  br label %1613

1610:                                             ; preds = %1607, %1577, %1547, %1517, %1487, %1457, %1431, %1405, %1376, %1324, %1141
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  br label %1611

1611:                                             ; preds = %1610, %1137
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %1612

1612:                                             ; preds = %1611, %1133
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #8
  br label %1649

1613:                                             ; preds = %1609, %1099
  br label %1614

1614:                                             ; preds = %1613, %1057
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #8
  %1615 = load ptr, ptr %24, align 8, !tbaa !5
  %1616 = getelementptr inbounds %"class.HIR::Module", ptr %1615, i32 0, i32 1
  %1617 = load ptr, ptr %23, align 8, !tbaa !5
  %1618 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1617) #8
  %1619 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1618)
          to label %1620 unwind label %1650

1620:                                             ; preds = %1614
  %1621 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %1616, ptr noundef nonnull align 8 dereferenceable(8) %1619)
          to label %1622 unwind label %1650

1622:                                             ; preds = %1620
  %1623 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.607", ptr %147, i32 0, i32 0
  %1624 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.608", ptr %1623, i32 0, i32 0
  store ptr %1621, ptr %1624, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #8
  %1625 = load ptr, ptr %24, align 8, !tbaa !5
  %1626 = getelementptr inbounds %"class.HIR::Module", ptr %1625, i32 0, i32 1
  %1627 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1626) #8
  %1628 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.607", ptr %148, i32 0, i32 0
  %1629 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.608", ptr %1628, i32 0, i32 0
  store ptr %1627, ptr %1629, align 8
  %1630 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef nonnull align 8 dereferenceable(8) %148) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #8
  br i1 %1630, label %1631, label %1666

1631:                                             ; preds = %1622
  br label %1632

1632:                                             ; preds = %1631
  %1633 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1634 unwind label %1650

1634:                                             ; preds = %1632
  br i1 %1633, label %1635, label %1663

1635:                                             ; preds = %1634
  %1636 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1637 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1636, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1638 unwind label %1650

1638:                                             ; preds = %1635
  %1639 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1637, ptr noundef @.str.51)
          to label %1640 unwind label %1650

1640:                                             ; preds = %1638
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #8
  %1641 = getelementptr inbounds %class.anon.609, ptr %151, i32 0, i32 0
  store ptr %24, ptr %1641, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull align 8 dereferenceable(8) %151) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef %150)
          to label %1642 unwind label %1654

1642:                                             ; preds = %1640
  %1643 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %1639, ptr noundef nonnull align 8 dereferenceable(32) %149)
          to label %1644 unwind label %1658

1644:                                             ; preds = %1642
  %1645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1643, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1646 unwind label %1658

1646:                                             ; preds = %1644
  %1647 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1645, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1648 unwind label %1658

1648:                                             ; preds = %1646
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %1663

1649:                                             ; preds = %1612, %1054, %1042
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  br label %2925

1650:                                             ; preds = %1702, %1700, %1698, %1696, %1690, %1688, %1686, %1682, %1680, %1677, %1674, %1666, %1638, %1635, %1632, %1620, %1614
  %1651 = landingpad { ptr, i32 }
          cleanup
  %1652 = extractvalue { ptr, i32 } %1651, 0
  store ptr %1652, ptr %19, align 8
  %1653 = extractvalue { ptr, i32 } %1651, 1
  store i32 %1653, ptr %20, align 4
  br label %2335

1654:                                             ; preds = %1640
  %1655 = landingpad { ptr, i32 }
          cleanup
  %1656 = extractvalue { ptr, i32 } %1655, 0
  store ptr %1656, ptr %19, align 8
  %1657 = extractvalue { ptr, i32 } %1655, 1
  store i32 %1657, ptr %20, align 4
  br label %1662

1658:                                             ; preds = %1646, %1644, %1642
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %19, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %20, align 4
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  br label %1662

1662:                                             ; preds = %1658, %1654
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %2335

1663:                                             ; preds = %1648, %1634
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664
  br label %2300

1666:                                             ; preds = %1622
  %1667 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %147) #8
  %1668 = getelementptr inbounds %"struct.std::pair.610", ptr %1667, i32 0, i32 1
  %1669 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1668) #8
  %1670 = getelementptr inbounds %"struct.HIR::VisEnt.620", ptr %1669, i32 0, i32 0
  %1671 = invoke noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %1670)
          to label %1672 unwind label %1650

1672:                                             ; preds = %1666
  br i1 %1671, label %1708, label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673
  %1675 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1676 unwind label %1650

1676:                                             ; preds = %1674
  br i1 %1675, label %1677, label %1705

1677:                                             ; preds = %1676
  %1678 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1678, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1680 unwind label %1650

1680:                                             ; preds = %1677
  %1681 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1679, ptr noundef @.str.52)
          to label %1682 unwind label %1650

1682:                                             ; preds = %1680
  %1683 = load ptr, ptr %23, align 8, !tbaa !5
  %1684 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1683) #8
  %1685 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1684)
          to label %1686 unwind label %1650

1686:                                             ; preds = %1682
  %1687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1681, ptr noundef nonnull align 8 dereferenceable(8) %1685)
          to label %1688 unwind label %1650

1688:                                             ; preds = %1686
  %1689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1687, ptr noundef @.str.31)
          to label %1690 unwind label %1650

1690:                                             ; preds = %1688
  %1691 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %147) #8
  %1692 = getelementptr inbounds %"struct.std::pair.610", ptr %1691, i32 0, i32 1
  %1693 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1692) #8
  %1694 = getelementptr inbounds %"struct.HIR::VisEnt.620", ptr %1693, i32 0, i32 1
  %1695 = invoke noundef ptr @_ZNK3HIR9ValueItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(368) %1694)
          to label %1696 unwind label %1650

1696:                                             ; preds = %1690
  %1697 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1689, ptr noundef %1695)
          to label %1698 unwind label %1650

1698:                                             ; preds = %1696
  %1699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1697, ptr noundef @.str.49)
          to label %1700 unwind label %1650

1700:                                             ; preds = %1698
  %1701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1699, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1702 unwind label %1650

1702:                                             ; preds = %1700
  %1703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1701, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1704 unwind label %1650

1704:                                             ; preds = %1702
  br label %1705

1705:                                             ; preds = %1704, %1676
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

1707:                                             ; preds = %1706
  br label %2299

1708:                                             ; preds = %1672
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #8
  %1709 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %147) #8
  %1710 = getelementptr inbounds %"struct.std::pair.610", ptr %1709, i32 0, i32 1
  %1711 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1710) #8
  %1712 = getelementptr inbounds %"struct.HIR::VisEnt.620", ptr %1711, i32 0, i32 1
  store ptr %1712, ptr %152, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %153) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1713 unwind label %1741

1713:                                             ; preds = %1708
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 8 dereferenceable(32) %153)
          to label %1714 unwind label %1745

1714:                                             ; preds = %1713
  br label %1715

1715:                                             ; preds = %1714
  %1716 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1717 unwind label %1749

1717:                                             ; preds = %1715
  br i1 %1716, label %1718, label %1753

1718:                                             ; preds = %1717
  %1719 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1720 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1719, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1721 unwind label %1749

1721:                                             ; preds = %1718
  %1722 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1720, ptr noundef @.str.52)
          to label %1723 unwind label %1749

1723:                                             ; preds = %1721
  %1724 = load ptr, ptr %23, align 8, !tbaa !5
  %1725 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %1724) #8
  %1726 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1725)
          to label %1727 unwind label %1749

1727:                                             ; preds = %1723
  %1728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1722, ptr noundef nonnull align 8 dereferenceable(8) %1726)
          to label %1729 unwind label %1749

1729:                                             ; preds = %1727
  %1730 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1728, ptr noundef @.str.31)
          to label %1731 unwind label %1749

1731:                                             ; preds = %1729
  %1732 = load ptr, ptr %152, align 8, !tbaa !5
  %1733 = invoke noundef ptr @_ZNK3HIR9ValueItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(368) %1732)
          to label %1734 unwind label %1749

1734:                                             ; preds = %1731
  %1735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1730, ptr noundef %1733)
          to label %1736 unwind label %1749

1736:                                             ; preds = %1734
  %1737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1735, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1738 unwind label %1749

1738:                                             ; preds = %1736
  %1739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1737, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1740 unwind label %1749

1740:                                             ; preds = %1738
  br label %1753

1741:                                             ; preds = %1708
  %1742 = landingpad { ptr, i32 }
          cleanup
  %1743 = extractvalue { ptr, i32 } %1742, 0
  store ptr %1743, ptr %19, align 8
  %1744 = extractvalue { ptr, i32 } %1742, 1
  store i32 %1744, ptr %20, align 4
  br label %2298

1745:                                             ; preds = %1713
  %1746 = landingpad { ptr, i32 }
          cleanup
  %1747 = extractvalue { ptr, i32 } %1746, 0
  store ptr %1747, ptr %19, align 8
  %1748 = extractvalue { ptr, i32 } %1746, 1
  store i32 %1748, ptr %20, align 4
  br label %2297

1749:                                             ; preds = %1893, %1755, %1738, %1736, %1734, %1731, %1729, %1727, %1723, %1721, %1718, %1715
  %1750 = landingpad { ptr, i32 }
          cleanup
  %1751 = extractvalue { ptr, i32 } %1750, 0
  store ptr %1751, ptr %19, align 8
  %1752 = extractvalue { ptr, i32 } %1750, 1
  store i32 %1752, ptr %20, align 4
  br label %2296

1753:                                             ; preds = %1740, %1717
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754
  %1756 = load ptr, ptr %152, align 8, !tbaa !5
  %1757 = invoke noundef zeroext i1 @_ZNK3HIR9ValueItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %1756)
          to label %1758 unwind label %1749

1758:                                             ; preds = %1755
  br i1 %1757, label %1759, label %1893

1759:                                             ; preds = %1758
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #8
  %1760 = load ptr, ptr %152, align 8, !tbaa !5
  %1761 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %1760)
          to label %1762 unwind label %1816

1762:                                             ; preds = %1759
  store ptr %1761, ptr %155, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %156) #8
  %1763 = load ptr, ptr %155, align 8, !tbaa !5
  %1764 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1763, i32 0, i32 0
  %1765 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1764)
          to label %1766 unwind label %1820

1766:                                             ; preds = %1762
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %157, ptr noundef nonnull align 8 dereferenceable(8) %1765)
          to label %1767 unwind label %1820

1767:                                             ; preds = %1766
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #8
  %1768 = load ptr, ptr %155, align 8, !tbaa !5
  %1769 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1768, i32 0, i32 0
  %1770 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1769)
          to label %1771 unwind label %1824

1771:                                             ; preds = %1767
  %1772 = getelementptr inbounds { ptr, i64 }, ptr %159, i32 0, i32 0
  %1773 = extractvalue { ptr, i64 } %1770, 0
  store ptr %1773, ptr %1772, align 8
  %1774 = getelementptr inbounds { ptr, i64 }, ptr %159, i32 0, i32 1
  %1775 = extractvalue { ptr, i64 } %1770, 1
  store i64 %1775, ptr %1774, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector.18") align 8 %158, ptr noundef nonnull align 8 dereferenceable(16) %159)
          to label %1776 unwind label %1824

1776:                                             ; preds = %1771
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef %157, ptr noundef %158)
          to label %1777 unwind label %1828

1777:                                             ; preds = %1776
  %1778 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 8 dereferenceable(32) %156)
          to label %1779 unwind label %1832

1779:                                             ; preds = %1777
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %158) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %157) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #8
  %1780 = load ptr, ptr %11, align 8, !tbaa !5
  %1781 = getelementptr inbounds %"class.AST::Crate", ptr %1780, i32 0, i32 4
  %1782 = load ptr, ptr %155, align 8, !tbaa !5
  %1783 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1782, i32 0, i32 0
  %1784 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1783)
          to label %1785 unwind label %1839

1785:                                             ; preds = %1779
  %1786 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1781, ptr noundef nonnull align 8 dereferenceable(8) %1784)
          to label %1787 unwind label %1839

1787:                                             ; preds = %1785
  store ptr %1786, ptr %160, align 8, !tbaa !5
  %1788 = load ptr, ptr %155, align 8, !tbaa !5
  %1789 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1788, i32 0, i32 1
  %1790 = load i8, ptr %1789, align 8, !tbaa !66, !range !18, !noundef !19
  %1791 = trunc i8 %1790 to i1
  br i1 %1791, label %1792, label %1880

1792:                                             ; preds = %1787
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #8
  %1793 = load ptr, ptr %155, align 8, !tbaa !5
  %1794 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1793, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %161, ptr noundef nonnull align 8 dereferenceable(8) %1794)
          to label %1795 unwind label %1843

1795:                                             ; preds = %1792
  invoke void @_ZN3HIR10SimplePath13pop_componentEv(ptr dead_on_unwind writable sret(%class.RcString) align 8 %162, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %1796 unwind label %1847

1796:                                             ; preds = %1795
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #8
  %1797 = load ptr, ptr %160, align 8, !tbaa !5
  %1798 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1797, i32 0, i32 3
  %1799 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1798)
          to label %1800 unwind label %1851

1800:                                             ; preds = %1796
  %1801 = load ptr, ptr %10, align 8, !tbaa !5
  %1802 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1799, ptr noundef nonnull align 8 dereferenceable(8) %1801, ptr noundef nonnull align 8 dereferenceable(8) %161, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1803 unwind label %1851

1803:                                             ; preds = %1800
  %1804 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %1802)
          to label %1805 unwind label %1851

1805:                                             ; preds = %1803
  store ptr %1804, ptr %163, align 8, !tbaa !5
  %1806 = load ptr, ptr %155, align 8, !tbaa !5
  %1807 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1806, i32 0, i32 2
  %1808 = load i32, ptr %1807, align 4, !tbaa !68
  %1809 = zext i32 %1808 to i64
  %1810 = load ptr, ptr %163, align 8, !tbaa !5
  %1811 = invoke noundef i64 @_ZNK3HIR4Enum12num_variantsEv(ptr noundef nonnull align 8 dereferenceable(200) %1810)
          to label %1812 unwind label %1851

1812:                                             ; preds = %1805
  %1813 = icmp ult i64 %1809, %1811
  br i1 %1813, label %1814, label %1815

1814:                                             ; preds = %1812
  br label %1856

1815:                                             ; preds = %1812
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.4, i32 noundef 984, ptr noundef @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

1816:                                             ; preds = %1759
  %1817 = landingpad { ptr, i32 }
          cleanup
  %1818 = extractvalue { ptr, i32 } %1817, 0
  store ptr %1818, ptr %19, align 8
  %1819 = extractvalue { ptr, i32 } %1817, 1
  store i32 %1819, ptr %20, align 4
  br label %1892

1820:                                             ; preds = %1766, %1762
  %1821 = landingpad { ptr, i32 }
          cleanup
  %1822 = extractvalue { ptr, i32 } %1821, 0
  store ptr %1822, ptr %19, align 8
  %1823 = extractvalue { ptr, i32 } %1821, 1
  store i32 %1823, ptr %20, align 4
  br label %1838

1824:                                             ; preds = %1771, %1767
  %1825 = landingpad { ptr, i32 }
          cleanup
  %1826 = extractvalue { ptr, i32 } %1825, 0
  store ptr %1826, ptr %19, align 8
  %1827 = extractvalue { ptr, i32 } %1825, 1
  store i32 %1827, ptr %20, align 4
  br label %1837

1828:                                             ; preds = %1776
  %1829 = landingpad { ptr, i32 }
          cleanup
  %1830 = extractvalue { ptr, i32 } %1829, 0
  store ptr %1830, ptr %19, align 8
  %1831 = extractvalue { ptr, i32 } %1829, 1
  store i32 %1831, ptr %20, align 4
  br label %1836

1832:                                             ; preds = %1777
  %1833 = landingpad { ptr, i32 }
          cleanup
  %1834 = extractvalue { ptr, i32 } %1833, 0
  store ptr %1834, ptr %19, align 8
  %1835 = extractvalue { ptr, i32 } %1833, 1
  store i32 %1835, ptr %20, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  br label %1836

1836:                                             ; preds = %1832, %1828
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %158) #8
  br label %1837

1837:                                             ; preds = %1836, %1824
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %157) #8
  br label %1838

1838:                                             ; preds = %1837, %1820
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #8
  br label %1892

1839:                                             ; preds = %1884, %1880, %1785, %1779
  %1840 = landingpad { ptr, i32 }
          cleanup
  %1841 = extractvalue { ptr, i32 } %1840, 0
  store ptr %1841, ptr %19, align 8
  %1842 = extractvalue { ptr, i32 } %1840, 1
  store i32 %1842, ptr %20, align 4
  br label %1891

1843:                                             ; preds = %1792
  %1844 = landingpad { ptr, i32 }
          cleanup
  %1845 = extractvalue { ptr, i32 } %1844, 0
  store ptr %1845, ptr %19, align 8
  %1846 = extractvalue { ptr, i32 } %1844, 1
  store i32 %1846, ptr %20, align 4
  br label %1879

1847:                                             ; preds = %1795
  %1848 = landingpad { ptr, i32 }
          cleanup
  %1849 = extractvalue { ptr, i32 } %1848, 0
  store ptr %1849, ptr %19, align 8
  %1850 = extractvalue { ptr, i32 } %1848, 1
  store i32 %1850, ptr %20, align 4
  br label %1878

1851:                                             ; preds = %1856, %1805, %1803, %1800, %1796
  %1852 = landingpad { ptr, i32 }
          cleanup
  %1853 = extractvalue { ptr, i32 } %1852, 0
  store ptr %1853, ptr %19, align 8
  %1854 = extractvalue { ptr, i32 } %1852, 1
  store i32 %1854, ptr %20, align 4
  br label %1877

1855:                                             ; No predecessors!
  br label %1856

1856:                                             ; preds = %1855, %1814
  %1857 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %1858 unwind label %1851

1858:                                             ; preds = %1856
  %1859 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %166, i32 0, i32 0
  store ptr null, ptr %1859, align 8, !tbaa !30
  %1860 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %166, i32 0, i32 1
  %1861 = load ptr, ptr %155, align 8, !tbaa !5
  %1862 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1861, i32 0, i32 2
  %1863 = load i32, ptr %1862, align 4, !tbaa !68
  store i32 %1863, ptr %1860, align 8, !tbaa !32
  %1864 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %166, i32 0, i32 2
  %1865 = load ptr, ptr %163, align 8, !tbaa !5
  store ptr %1865, ptr %1864, align 8, !tbaa !33
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %165, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %166)
          to label %1866 unwind label %1868

1866:                                             ; preds = %1858
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1857, ptr noundef %164, ptr noundef %165)
          to label %1867 unwind label %1872

1867:                                             ; preds = %1866
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #8
  br label %1890

1868:                                             ; preds = %1858
  %1869 = landingpad { ptr, i32 }
          cleanup
  %1870 = extractvalue { ptr, i32 } %1869, 0
  store ptr %1870, ptr %19, align 8
  %1871 = extractvalue { ptr, i32 } %1869, 1
  store i32 %1871, ptr %20, align 4
  br label %1876

1872:                                             ; preds = %1866
  %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
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  br label %1876

1876:                                             ; preds = %1872, %1868
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #8
  br label %1877

1877:                                             ; preds = %1876, %1851
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #8
  br label %1878

1878:                                             ; preds = %1877, %1847
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #8
  br label %1879

1879:                                             ; preds = %1878, %1843
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #8
  br label %1891

1880:                                             ; preds = %1787
  %1881 = load ptr, ptr %160, align 8, !tbaa !5
  %1882 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1881, i32 0, i32 3
  %1883 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1882)
          to label %1884 unwind label %1839

1884:                                             ; preds = %1880
  %1885 = load ptr, ptr %10, align 8, !tbaa !5
  %1886 = load ptr, ptr %155, align 8, !tbaa !5
  %1887 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1886, i32 0, i32 0
  %1888 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3HIR5Crate19get_valitem_by_pathERK4SpanRKNS_10SimplePathEb(ptr noundef nonnull align 8 dereferenceable(944) %1883, ptr noundef nonnull align 8 dereferenceable(8) %1885, ptr noundef nonnull align 8 dereferenceable(8) %1887, i1 noundef zeroext true)
          to label %1889 unwind label %1839

1889:                                             ; preds = %1884
  store ptr %1888, ptr %152, align 8, !tbaa !5
  br label %1890

1890:                                             ; preds = %1889, %1867
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  br label %1893

1891:                                             ; preds = %1879, %1839
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #8
  br label %1892

1892:                                             ; preds = %1891, %1838, %1816
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  br label %2296

1893:                                             ; preds = %1890, %1758
  %1894 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  %1895 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_ValueEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %1894)
          to label %1896 unwind label %1749

1896:                                             ; preds = %1893
  br i1 %1895, label %1897, label %2295

1897:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #8
  store i8 1, ptr %167, align 1, !tbaa !16
  br label %1898

1898:                                             ; preds = %2293, %1897
  %1899 = load i8, ptr %167, align 1, !tbaa !16, !range !18, !noundef !19
  %1900 = trunc i8 %1899 to i1
  br i1 %1900, label %1902, label %1901

1901:                                             ; preds = %1898
  store i32 63, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #8
  br label %2294

1902:                                             ; preds = %1898
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #8
  %1903 = load ptr, ptr %152, align 8, !tbaa !5
  store ptr %1903, ptr %168, align 8, !tbaa !5
  br label %1904

1904:                                             ; preds = %2290, %1902
  %1905 = load i8, ptr %167, align 1, !tbaa !16, !range !18, !noundef !19
  %1906 = trunc i8 %1905 to i1
  br i1 %1906, label %1908, label %1907

1907:                                             ; preds = %1904
  store i32 66, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #8
  br label %2292

1908:                                             ; preds = %1904
  %1909 = load ptr, ptr %168, align 8, !tbaa !5
  %1910 = invoke noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368) %1909)
          to label %1911 unwind label %1912

1911:                                             ; preds = %1908
  switch i32 %1910, label %2289 [
    i32 0, label %1916
    i32 1, label %1917
    i32 2, label %1973
    i32 3, label %2016
    i32 4, label %2059
    i32 6, label %2154
    i32 5, label %2249
  ]

1912:                                             ; preds = %1908
  %1913 = landingpad { ptr, i32 }
          cleanup
  %1914 = extractvalue { ptr, i32 } %1913, 0
  store ptr %1914, ptr %19, align 8
  %1915 = extractvalue { ptr, i32 } %1913, 1
  store i32 %1915, ptr %20, align 4
  br label %2291

1916:                                             ; preds = %1911
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 994, ptr noundef @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

1917:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #8
  store i8 1, ptr %169, align 1, !tbaa !16
  br label %1918

1918:                                             ; preds = %1971, %1917
  %1919 = load i8, ptr %169, align 1, !tbaa !16, !range !18, !noundef !19
  %1920 = trunc i8 %1919 to i1
  br i1 %1920, label %1922, label %1921

1921:                                             ; preds = %1918
  store i32 70, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  br label %1972

1922:                                             ; preds = %1918
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #8
  %1923 = load ptr, ptr %168, align 8, !tbaa !5
  %1924 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %1923)
          to label %1925 unwind label %1931

1925:                                             ; preds = %1922
  store ptr %1924, ptr %170, align 8, !tbaa !5
  br label %1926

1926:                                             ; preds = %1968, %1925
  %1927 = load ptr, ptr %170, align 8, !tbaa !5
  %1928 = load i8, ptr %169, align 1, !tbaa !16, !range !18, !noundef !19
  %1929 = trunc i8 %1928 to i1
  br i1 %1929, label %1935, label %1930

1930:                                             ; preds = %1926
  store i32 73, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #8
  br label %1970

1931:                                             ; preds = %1947, %1922
  %1932 = landingpad { ptr, i32 }
          cleanup
  %1933 = extractvalue { ptr, i32 } %1932, 0
  store ptr %1933, ptr %19, align 8
  %1934 = extractvalue { ptr, i32 } %1932, 1
  store i32 %1934, ptr %20, align 4
  br label %1969

1935:                                             ; preds = %1926
  br label %1936

1936:                                             ; preds = %1935
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #8
  %1937 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef nonnull align 8 dereferenceable(8) %1937)
          to label %1938 unwind label %1948

1938:                                             ; preds = %1936
  call void @llvm.lifetime.start.p0(i64 24, ptr %173) #8
  %1939 = getelementptr inbounds %class.anon.647, ptr %173, i32 0, i32 0
  %1940 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %1940, ptr %1939, align 8, !tbaa !5
  %1941 = getelementptr inbounds %class.anon.647, ptr %173, i32 0, i32 1
  store ptr %147, ptr %1941, align 8, !tbaa !5
  %1942 = getelementptr inbounds %class.anon.647, ptr %173, i32 0, i32 2
  %1943 = load ptr, ptr %170, align 8, !tbaa !5
  store ptr %1943, ptr %1942, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(24) %173)
          to label %1944 unwind label %1952

1944:                                             ; preds = %1938
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef %172)
          to label %1945 unwind label %1956

1945:                                             ; preds = %1944
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %173) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #8
  %1946 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1946, ptr noundef @.str.5)
          to label %1947 unwind label %1962

1947:                                             ; preds = %1945
  invoke void @__cxa_throw(ptr %1946, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %1931

1948:                                             ; preds = %1936
  %1949 = landingpad { ptr, i32 }
          cleanup
  %1950 = extractvalue { ptr, i32 } %1949, 0
  store ptr %1950, ptr %19, align 8
  %1951 = extractvalue { ptr, i32 } %1949, 1
  store i32 %1951, ptr %20, align 4
  br label %1961

1952:                                             ; preds = %1938
  %1953 = landingpad { ptr, i32 }
          cleanup
  %1954 = extractvalue { ptr, i32 } %1953, 0
  store ptr %1954, ptr %19, align 8
  %1955 = extractvalue { ptr, i32 } %1953, 1
  store i32 %1955, ptr %20, align 4
  br label %1960

1956:                                             ; preds = %1944
  %1957 = landingpad { ptr, i32 }
          cleanup
  %1958 = extractvalue { ptr, i32 } %1957, 0
  store ptr %1958, ptr %19, align 8
  %1959 = extractvalue { ptr, i32 } %1957, 1
  store i32 %1959, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #8
  br label %1960

1960:                                             ; preds = %1956, %1952
  call void @llvm.lifetime.end.p0(i64 24, ptr %173) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #8
  br label %1961

1961:                                             ; preds = %1960, %1948
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #8
  br label %1969

1962:                                             ; preds = %1945
  %1963 = landingpad { ptr, i32 }
          cleanup
  %1964 = extractvalue { ptr, i32 } %1963, 0
  store ptr %1964, ptr %19, align 8
  %1965 = extractvalue { ptr, i32 } %1963, 1
  store i32 %1965, ptr %20, align 4
  call void @__cxa_free_exception(ptr %1946) #8
  br label %1969

1966:                                             ; No predecessors!
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

1968:                                             ; preds = %1967
  store i8 0, ptr %169, align 1, !tbaa !16
  br label %1926, !llvm.loop !69

1969:                                             ; preds = %1962, %1961, %1931
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  br label %2291

1970:                                             ; preds = %1930
  br label %1971

1971:                                             ; preds = %1970
  store i8 0, ptr %169, align 1, !tbaa !16
  br label %1918, !llvm.loop !70

1972:                                             ; preds = %1921
  br label %2289

1973:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 1, ptr %174) #8
  store i8 1, ptr %174, align 1, !tbaa !16
  br label %1974

1974:                                             ; preds = %2014, %1973
  %1975 = load i8, ptr %174, align 1, !tbaa !16, !range !18, !noundef !19
  %1976 = trunc i8 %1975 to i1
  br i1 %1976, label %1978, label %1977

1977:                                             ; preds = %1974
  store i32 78, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #8
  br label %2015

1978:                                             ; preds = %1974
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #8
  %1979 = load ptr, ptr %168, align 8, !tbaa !5
  %1980 = invoke noundef nonnull align 8 dereferenceable(280) ptr @_ZNK3HIR9ValueItem11as_ConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %1979)
          to label %1981 unwind label %1987

1981:                                             ; preds = %1978
  store ptr %1980, ptr %175, align 8, !tbaa !5
  br label %1982

1982:                                             ; preds = %2002, %1981
  %1983 = load ptr, ptr %175, align 8, !tbaa !5
  %1984 = load i8, ptr %174, align 1, !tbaa !16, !range !18, !noundef !19
  %1985 = trunc i8 %1984 to i1
  br i1 %1985, label %1991, label %1986

1986:                                             ; preds = %1982
  store i32 81, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #8
  br label %2013

1987:                                             ; preds = %1991, %1978
  %1988 = landingpad { ptr, i32 }
          cleanup
  %1989 = extractvalue { ptr, i32 } %1988, 0
  store ptr %1989, ptr %19, align 8
  %1990 = extractvalue { ptr, i32 } %1988, 1
  store i32 %1990, ptr %20, align 4
  br label %2012

1991:                                             ; preds = %1982
  %1992 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %1993 unwind label %1987

1993:                                             ; preds = %1991
  %1994 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %178, i32 0, i32 0
  store ptr null, ptr %1994, align 8, !tbaa !71
  %1995 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %178, i32 0, i32 1
  store ptr null, ptr %1995, align 8, !tbaa !73
  %1996 = getelementptr inbounds { ptr, ptr }, ptr %178, i32 0, i32 0
  %1997 = load ptr, ptr %1996, align 8
  %1998 = getelementptr inbounds { ptr, ptr }, ptr %178, i32 0, i32 1
  %1999 = load ptr, ptr %1998, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %177, ptr %1997, ptr %1999)
          to label %2000 unwind label %2003

2000:                                             ; preds = %1993
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1992, ptr noundef %176, ptr noundef %177)
          to label %2001 unwind label %2007

2001:                                             ; preds = %2000
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  br label %2002

2002:                                             ; preds = %2001
  store i8 0, ptr %174, align 1, !tbaa !16
  br label %1982, !llvm.loop !74

2003:                                             ; preds = %1993
  %2004 = landingpad { ptr, i32 }
          cleanup
  %2005 = extractvalue { ptr, i32 } %2004, 0
  store ptr %2005, ptr %19, align 8
  %2006 = extractvalue { ptr, i32 } %2004, 1
  store i32 %2006, ptr %20, align 4
  br label %2011

2007:                                             ; preds = %2000
  %2008 = landingpad { ptr, i32 }
          cleanup
  %2009 = extractvalue { ptr, i32 } %2008, 0
  store ptr %2009, ptr %19, align 8
  %2010 = extractvalue { ptr, i32 } %2008, 1
  store i32 %2010, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  br label %2011

2011:                                             ; preds = %2007, %2003
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  br label %2012

2012:                                             ; preds = %2011, %1987
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #8
  br label %2291

2013:                                             ; preds = %1986
  br label %2014

2014:                                             ; preds = %2013
  store i8 0, ptr %174, align 1, !tbaa !16
  br label %1974, !llvm.loop !75

2015:                                             ; preds = %1977
  br label %2289

2016:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #8
  store i8 1, ptr %179, align 1, !tbaa !16
  br label %2017

2017:                                             ; preds = %2057, %2016
  %2018 = load i8, ptr %179, align 1, !tbaa !16, !range !18, !noundef !19
  %2019 = trunc i8 %2018 to i1
  br i1 %2019, label %2021, label %2020

2020:                                             ; preds = %2017
  store i32 84, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #8
  br label %2058

2021:                                             ; preds = %2017
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #8
  %2022 = load ptr, ptr %168, align 8, !tbaa !5
  %2023 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZNK3HIR9ValueItem9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(368) %2022)
          to label %2024 unwind label %2030

2024:                                             ; preds = %2021
  store ptr %2023, ptr %180, align 8, !tbaa !5
  br label %2025

2025:                                             ; preds = %2045, %2024
  %2026 = load ptr, ptr %180, align 8, !tbaa !5
  %2027 = load i8, ptr %179, align 1, !tbaa !16, !range !18, !noundef !19
  %2028 = trunc i8 %2027 to i1
  br i1 %2028, label %2034, label %2029

2029:                                             ; preds = %2025
  store i32 87, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  br label %2056

2030:                                             ; preds = %2034, %2021
  %2031 = landingpad { ptr, i32 }
          cleanup
  %2032 = extractvalue { ptr, i32 } %2031, 0
  store ptr %2032, ptr %19, align 8
  %2033 = extractvalue { ptr, i32 } %2031, 1
  store i32 %2033, ptr %20, align 4
  br label %2055

2034:                                             ; preds = %2025
  %2035 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %2036 unwind label %2030

2036:                                             ; preds = %2034
  %2037 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %183, i32 0, i32 0
  store ptr null, ptr %2037, align 8, !tbaa !71
  %2038 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %183, i32 0, i32 1
  store ptr null, ptr %2038, align 8, !tbaa !73
  %2039 = getelementptr inbounds { ptr, ptr }, ptr %183, i32 0, i32 0
  %2040 = load ptr, ptr %2039, align 8
  %2041 = getelementptr inbounds { ptr, ptr }, ptr %183, i32 0, i32 1
  %2042 = load ptr, ptr %2041, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %182, ptr %2040, ptr %2042)
          to label %2043 unwind label %2046

2043:                                             ; preds = %2036
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %2035, ptr noundef %181, ptr noundef %182)
          to label %2044 unwind label %2050

2044:                                             ; preds = %2043
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  br label %2045

2045:                                             ; preds = %2044
  store i8 0, ptr %179, align 1, !tbaa !16
  br label %2025, !llvm.loop !76

2046:                                             ; preds = %2036
  %2047 = landingpad { ptr, i32 }
          cleanup
  %2048 = extractvalue { ptr, i32 } %2047, 0
  store ptr %2048, ptr %19, align 8
  %2049 = extractvalue { ptr, i32 } %2047, 1
  store i32 %2049, ptr %20, align 4
  br label %2054

2050:                                             ; preds = %2043
  %2051 = landingpad { ptr, i32 }
          cleanup
  %2052 = extractvalue { ptr, i32 } %2051, 0
  store ptr %2052, ptr %19, align 8
  %2053 = extractvalue { ptr, i32 } %2051, 1
  store i32 %2053, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  br label %2054

2054:                                             ; preds = %2050, %2046
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  br label %2055

2055:                                             ; preds = %2054, %2030
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #8
  br label %2291

2056:                                             ; preds = %2029
  br label %2057

2057:                                             ; preds = %2056
  store i8 0, ptr %179, align 1, !tbaa !16
  br label %2017, !llvm.loop !77

2058:                                             ; preds = %2020
  br label %2289

2059:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #8
  store i8 1, ptr %184, align 1, !tbaa !16
  br label %2060

2060:                                             ; preds = %2152, %2059
  %2061 = load i8, ptr %184, align 1, !tbaa !16, !range !18, !noundef !19
  %2062 = trunc i8 %2061 to i1
  br i1 %2062, label %2064, label %2063

2063:                                             ; preds = %2060
  store i32 90, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #8
  br label %2153

2064:                                             ; preds = %2060
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #8
  %2065 = load ptr, ptr %168, align 8, !tbaa !5
  %2066 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem17as_StructConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %2065)
          to label %2067 unwind label %2073

2067:                                             ; preds = %2064
  store ptr %2066, ptr %185, align 8, !tbaa !5
  br label %2068

2068:                                             ; preds = %2140, %2067
  %2069 = load ptr, ptr %185, align 8, !tbaa !5
  %2070 = load i8, ptr %184, align 1, !tbaa !16, !range !18, !noundef !19
  %2071 = trunc i8 %2070 to i1
  br i1 %2071, label %2077, label %2072

2072:                                             ; preds = %2068
  store i32 93, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #8
  br label %2151

2073:                                             ; preds = %2111, %2095, %2084, %2078, %2064
  %2074 = landingpad { ptr, i32 }
          cleanup
  %2075 = extractvalue { ptr, i32 } %2074, 0
  store ptr %2075, ptr %19, align 8
  %2076 = extractvalue { ptr, i32 } %2074, 1
  store i32 %2076, ptr %20, align 4
  br label %2150

2077:                                             ; preds = %2068
  br label %2078

2078:                                             ; preds = %2077
  %2079 = load ptr, ptr %11, align 8, !tbaa !5
  %2080 = getelementptr inbounds %"class.AST::Crate", ptr %2079, i32 0, i32 4
  %2081 = load ptr, ptr %185, align 8, !tbaa !5
  %2082 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstant", ptr %2081, i32 0, i32 0
  %2083 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2082)
          to label %2084 unwind label %2073

2084:                                             ; preds = %2078
  %2085 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2080, ptr noundef nonnull align 8 dereferenceable(8) %2083)
          to label %2086 unwind label %2073

2086:                                             ; preds = %2084
  %2087 = icmp ne i64 %2085, 0
  br i1 %2087, label %2109, label %2088

2088:                                             ; preds = %2086
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #8
  %2089 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %186, ptr noundef nonnull align 8 dereferenceable(8) %2089)
          to label %2090 unwind label %2096

2090:                                             ; preds = %2088
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #8
  %2091 = getelementptr inbounds %class.anon.648, ptr %188, i32 0, i32 0
  %2092 = load ptr, ptr %185, align 8, !tbaa !5
  store ptr %2092, ptr %2091, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_13vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull align 8 dereferenceable(8) %188) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %186, ptr noundef %187)
          to label %2093 unwind label %2100

2093:                                             ; preds = %2090
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #8
  %2094 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2094, ptr noundef @.str.5)
          to label %2095 unwind label %2105

2095:                                             ; preds = %2093
  invoke void @__cxa_throw(ptr %2094, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %2073

2096:                                             ; preds = %2088
  %2097 = landingpad { ptr, i32 }
          cleanup
  %2098 = extractvalue { ptr, i32 } %2097, 0
  store ptr %2098, ptr %19, align 8
  %2099 = extractvalue { ptr, i32 } %2097, 1
  store i32 %2099, ptr %20, align 4
  br label %2104

2100:                                             ; preds = %2090
  %2101 = landingpad { ptr, i32 }
          cleanup
  %2102 = extractvalue { ptr, i32 } %2101, 0
  store ptr %2102, ptr %19, align 8
  %2103 = extractvalue { ptr, i32 } %2101, 1
  store i32 %2103, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #8
  br label %2104

2104:                                             ; preds = %2100, %2096
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #8
  br label %2150

2105:                                             ; preds = %2093
  %2106 = landingpad { ptr, i32 }
          cleanup
  %2107 = extractvalue { ptr, i32 } %2106, 0
  store ptr %2107, ptr %19, align 8
  %2108 = extractvalue { ptr, i32 } %2106, 1
  store i32 %2108, ptr %20, align 4
  call void @__cxa_free_exception(ptr %2094) #8
  br label %2150

2109:                                             ; preds = %2086
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110
  %2112 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %2113 unwind label %2073

2113:                                             ; preds = %2111
  %2114 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %191, i32 0, i32 0
  store ptr null, ptr %2114, align 8, !tbaa !78
  %2115 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %191, i32 0, i32 1
  %2116 = load ptr, ptr %11, align 8, !tbaa !5
  %2117 = getelementptr inbounds %"class.AST::Crate", ptr %2116, i32 0, i32 4
  %2118 = load ptr, ptr %185, align 8, !tbaa !5
  %2119 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstant", ptr %2118, i32 0, i32 0
  %2120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2119)
          to label %2121 unwind label %2141

2121:                                             ; preds = %2113
  %2122 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2117, ptr noundef nonnull align 8 dereferenceable(8) %2120)
          to label %2123 unwind label %2141

2123:                                             ; preds = %2121
  %2124 = getelementptr inbounds %"class.AST::ExternCrate", ptr %2122, i32 0, i32 3
  %2125 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %2124)
          to label %2126 unwind label %2141

2126:                                             ; preds = %2123
  %2127 = load ptr, ptr %10, align 8, !tbaa !5
  %2128 = load ptr, ptr %185, align 8, !tbaa !5
  %2129 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstant", ptr %2128, i32 0, i32 0
  %2130 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %2125, ptr noundef nonnull align 8 dereferenceable(8) %2127, ptr noundef nonnull align 8 dereferenceable(8) %2129, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %2131 unwind label %2141

2131:                                             ; preds = %2126
  %2132 = invoke noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %2130)
          to label %2133 unwind label %2141

2133:                                             ; preds = %2131
  store ptr %2132, ptr %2115, align 8, !tbaa !80
  %2134 = getelementptr inbounds { ptr, ptr }, ptr %191, i32 0, i32 0
  %2135 = load ptr, ptr %2134, align 8
  %2136 = getelementptr inbounds { ptr, ptr }, ptr %191, i32 0, i32 1
  %2137 = load ptr, ptr %2136, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %190, ptr %2135, ptr %2137)
          to label %2138 unwind label %2141

2138:                                             ; preds = %2133
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %2112, ptr noundef %189, ptr noundef %190)
          to label %2139 unwind label %2145

2139:                                             ; preds = %2138
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #8
  br label %2140

2140:                                             ; preds = %2139
  store i8 0, ptr %184, align 1, !tbaa !16
  br label %2068, !llvm.loop !81

2141:                                             ; preds = %2133, %2131, %2126, %2123, %2121, %2113
  %2142 = landingpad { ptr, i32 }
          cleanup
  %2143 = extractvalue { ptr, i32 } %2142, 0
  store ptr %2143, ptr %19, align 8
  %2144 = extractvalue { ptr, i32 } %2142, 1
  store i32 %2144, ptr %20, align 4
  br label %2149

2145:                                             ; preds = %2138
  %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
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #8
  br label %2149

2149:                                             ; preds = %2145, %2141
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #8
  br label %2150

2150:                                             ; preds = %2149, %2105, %2104, %2073
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #8
  br label %2291

2151:                                             ; preds = %2072
  br label %2152

2152:                                             ; preds = %2151
  store i8 0, ptr %184, align 1, !tbaa !16
  br label %2060, !llvm.loop !82

2153:                                             ; preds = %2063
  br label %2289

2154:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 1, ptr %192) #8
  store i8 1, ptr %192, align 1, !tbaa !16
  br label %2155

2155:                                             ; preds = %2247, %2154
  %2156 = load i8, ptr %192, align 1, !tbaa !16, !range !18, !noundef !19
  %2157 = trunc i8 %2156 to i1
  br i1 %2157, label %2159, label %2158

2158:                                             ; preds = %2155
  store i32 98, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #8
  br label %2248

2159:                                             ; preds = %2155
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #8
  %2160 = load ptr, ptr %168, align 8, !tbaa !5
  %2161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368) %2160)
          to label %2162 unwind label %2168

2162:                                             ; preds = %2159
  store ptr %2161, ptr %193, align 8, !tbaa !5
  br label %2163

2163:                                             ; preds = %2235, %2162
  %2164 = load ptr, ptr %193, align 8, !tbaa !5
  %2165 = load i8, ptr %192, align 1, !tbaa !16, !range !18, !noundef !19
  %2166 = trunc i8 %2165 to i1
  br i1 %2166, label %2172, label %2167

2167:                                             ; preds = %2163
  store i32 101, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #8
  br label %2246

2168:                                             ; preds = %2206, %2190, %2179, %2173, %2159
  %2169 = landingpad { ptr, i32 }
          cleanup
  %2170 = extractvalue { ptr, i32 } %2169, 0
  store ptr %2170, ptr %19, align 8
  %2171 = extractvalue { ptr, i32 } %2169, 1
  store i32 %2171, ptr %20, align 4
  br label %2245

2172:                                             ; preds = %2163
  br label %2173

2173:                                             ; preds = %2172
  %2174 = load ptr, ptr %11, align 8, !tbaa !5
  %2175 = getelementptr inbounds %"class.AST::Crate", ptr %2174, i32 0, i32 4
  %2176 = load ptr, ptr %193, align 8, !tbaa !5
  %2177 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstructor", ptr %2176, i32 0, i32 0
  %2178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2177)
          to label %2179 unwind label %2168

2179:                                             ; preds = %2173
  %2180 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2175, ptr noundef nonnull align 8 dereferenceable(8) %2178)
          to label %2181 unwind label %2168

2181:                                             ; preds = %2179
  %2182 = icmp ne i64 %2180, 0
  br i1 %2182, label %2204, label %2183

2183:                                             ; preds = %2181
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #8
  %2184 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull align 8 dereferenceable(8) %2184)
          to label %2185 unwind label %2191

2185:                                             ; preds = %2183
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #8
  %2186 = getelementptr inbounds %class.anon.649, ptr %196, i32 0, i32 0
  %2187 = load ptr, ptr %193, align 8, !tbaa !5
  store ptr %2187, ptr %2186, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_14vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull align 8 dereferenceable(8) %196) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef %195)
          to label %2188 unwind label %2195

2188:                                             ; preds = %2185
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #8
  %2189 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2189, ptr noundef @.str.5)
          to label %2190 unwind label %2200

2190:                                             ; preds = %2188
  invoke void @__cxa_throw(ptr %2189, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %2168

2191:                                             ; preds = %2183
  %2192 = landingpad { ptr, i32 }
          cleanup
  %2193 = extractvalue { ptr, i32 } %2192, 0
  store ptr %2193, ptr %19, align 8
  %2194 = extractvalue { ptr, i32 } %2192, 1
  store i32 %2194, ptr %20, align 4
  br label %2199

2195:                                             ; preds = %2185
  %2196 = landingpad { ptr, i32 }
          cleanup
  %2197 = extractvalue { ptr, i32 } %2196, 0
  store ptr %2197, ptr %19, align 8
  %2198 = extractvalue { ptr, i32 } %2196, 1
  store i32 %2198, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #8
  br label %2199

2199:                                             ; preds = %2195, %2191
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #8
  br label %2245

2200:                                             ; preds = %2188
  %2201 = landingpad { ptr, i32 }
          cleanup
  %2202 = extractvalue { ptr, i32 } %2201, 0
  store ptr %2202, ptr %19, align 8
  %2203 = extractvalue { ptr, i32 } %2201, 1
  store i32 %2203, ptr %20, align 4
  call void @__cxa_free_exception(ptr %2189) #8
  br label %2245

2204:                                             ; preds = %2181
  br label %2205

2205:                                             ; preds = %2204
  br label %2206

2206:                                             ; preds = %2205
  %2207 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %2208 unwind label %2168

2208:                                             ; preds = %2206
  %2209 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %199, i32 0, i32 0
  store ptr null, ptr %2209, align 8, !tbaa !78
  %2210 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %199, i32 0, i32 1
  %2211 = load ptr, ptr %11, align 8, !tbaa !5
  %2212 = getelementptr inbounds %"class.AST::Crate", ptr %2211, i32 0, i32 4
  %2213 = load ptr, ptr %193, align 8, !tbaa !5
  %2214 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstructor", ptr %2213, i32 0, i32 0
  %2215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2214)
          to label %2216 unwind label %2236

2216:                                             ; preds = %2208
  %2217 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2212, ptr noundef nonnull align 8 dereferenceable(8) %2215)
          to label %2218 unwind label %2236

2218:                                             ; preds = %2216
  %2219 = getelementptr inbounds %"class.AST::ExternCrate", ptr %2217, i32 0, i32 3
  %2220 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %2219)
          to label %2221 unwind label %2236

2221:                                             ; preds = %2218
  %2222 = load ptr, ptr %10, align 8, !tbaa !5
  %2223 = load ptr, ptr %193, align 8, !tbaa !5
  %2224 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstructor", ptr %2223, i32 0, i32 0
  %2225 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %2220, ptr noundef nonnull align 8 dereferenceable(8) %2222, ptr noundef nonnull align 8 dereferenceable(8) %2224, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %2226 unwind label %2236

2226:                                             ; preds = %2221
  %2227 = invoke noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %2225)
          to label %2228 unwind label %2236

2228:                                             ; preds = %2226
  store ptr %2227, ptr %2210, align 8, !tbaa !80
  %2229 = getelementptr inbounds { ptr, ptr }, ptr %199, i32 0, i32 0
  %2230 = load ptr, ptr %2229, align 8
  %2231 = getelementptr inbounds { ptr, ptr }, ptr %199, i32 0, i32 1
  %2232 = load ptr, ptr %2231, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %198, ptr %2230, ptr %2232)
          to label %2233 unwind label %2236

2233:                                             ; preds = %2228
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %2207, ptr noundef %197, ptr noundef %198)
          to label %2234 unwind label %2240

2234:                                             ; preds = %2233
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #8
  br label %2235

2235:                                             ; preds = %2234
  store i8 0, ptr %192, align 1, !tbaa !16
  br label %2163, !llvm.loop !83

2236:                                             ; preds = %2228, %2226, %2221, %2218, %2216, %2208
  %2237 = landingpad { ptr, i32 }
          cleanup
  %2238 = extractvalue { ptr, i32 } %2237, 0
  store ptr %2238, ptr %19, align 8
  %2239 = extractvalue { ptr, i32 } %2237, 1
  store i32 %2239, ptr %20, align 4
  br label %2244

2240:                                             ; preds = %2233
  %2241 = landingpad { ptr, i32 }
          cleanup
  %2242 = extractvalue { ptr, i32 } %2241, 0
  store ptr %2242, ptr %19, align 8
  %2243 = extractvalue { ptr, i32 } %2241, 1
  store i32 %2243, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #8
  br label %2244

2244:                                             ; preds = %2240, %2236
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #8
  br label %2245

2245:                                             ; preds = %2244, %2200, %2199, %2168
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %192) #8
  br label %2291

2246:                                             ; preds = %2167
  br label %2247

2247:                                             ; preds = %2246
  store i8 0, ptr %192, align 1, !tbaa !16
  br label %2155, !llvm.loop !84

2248:                                             ; preds = %2158
  br label %2289

2249:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 1, ptr %200) #8
  store i8 1, ptr %200, align 1, !tbaa !16
  br label %2250

2250:                                             ; preds = %2287, %2249
  %2251 = load i8, ptr %200, align 1, !tbaa !16, !range !18, !noundef !19
  %2252 = trunc i8 %2251 to i1
  br i1 %2252, label %2254, label %2253

2253:                                             ; preds = %2250
  store i32 106, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #8
  br label %2288

2254:                                             ; preds = %2250
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #8
  %2255 = load ptr, ptr %168, align 8, !tbaa !5
  %2256 = invoke noundef nonnull align 8 dereferenceable(352) ptr @_ZNK3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %2255)
          to label %2257 unwind label %2263

2257:                                             ; preds = %2254
  store ptr %2256, ptr %201, align 8, !tbaa !5
  br label %2258

2258:                                             ; preds = %2275, %2257
  %2259 = load ptr, ptr %201, align 8, !tbaa !5
  %2260 = load i8, ptr %200, align 1, !tbaa !16, !range !18, !noundef !19
  %2261 = trunc i8 %2260 to i1
  br i1 %2261, label %2267, label %2262

2262:                                             ; preds = %2258
  store i32 109, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #8
  br label %2286

2263:                                             ; preds = %2267, %2254
  %2264 = landingpad { ptr, i32 }
          cleanup
  %2265 = extractvalue { ptr, i32 } %2264, 0
  store ptr %2265, ptr %19, align 8
  %2266 = extractvalue { ptr, i32 } %2264, 1
  store i32 %2266, ptr %20, align 4
  br label %2285

2267:                                             ; preds = %2258
  %2268 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %2269 unwind label %2263

2269:                                             ; preds = %2267
  %2270 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %204, i32 0, i32 0
  store ptr null, ptr %2270, align 8, !tbaa !85
  %2271 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %204, i32 0, i32 0
  %2272 = load ptr, ptr %2271, align 8
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %203, ptr %2272)
          to label %2273 unwind label %2276

2273:                                             ; preds = %2269
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %2268, ptr noundef %202, ptr noundef %203)
          to label %2274 unwind label %2280

2274:                                             ; preds = %2273
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #8
  br label %2275

2275:                                             ; preds = %2274
  store i8 0, ptr %200, align 1, !tbaa !16
  br label %2258, !llvm.loop !87

2276:                                             ; preds = %2269
  %2277 = landingpad { ptr, i32 }
          cleanup
  %2278 = extractvalue { ptr, i32 } %2277, 0
  store ptr %2278, ptr %19, align 8
  %2279 = extractvalue { ptr, i32 } %2277, 1
  store i32 %2279, ptr %20, align 4
  br label %2284

2280:                                             ; preds = %2273
  %2281 = landingpad { ptr, i32 }
          cleanup
  %2282 = extractvalue { ptr, i32 } %2281, 0
  store ptr %2282, ptr %19, align 8
  %2283 = extractvalue { ptr, i32 } %2281, 1
  store i32 %2283, ptr %20, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #8
  br label %2284

2284:                                             ; preds = %2280, %2276
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #8
  br label %2285

2285:                                             ; preds = %2284, %2263
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #8
  br label %2291

2286:                                             ; preds = %2262
  br label %2287

2287:                                             ; preds = %2286
  store i8 0, ptr %200, align 1, !tbaa !16
  br label %2250, !llvm.loop !88

2288:                                             ; preds = %2253
  br label %2289

2289:                                             ; preds = %2288, %2248, %2153, %2058, %2015, %1972, %1911
  br label %2290

2290:                                             ; preds = %2289
  store i8 0, ptr %167, align 1, !tbaa !16
  br label %1904, !llvm.loop !89

2291:                                             ; preds = %2285, %2245, %2150, %2055, %2012, %1969, %1912
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #8
  br label %2296

2292:                                             ; preds = %1907
  br label %2293

2293:                                             ; preds = %2292
  store i8 0, ptr %167, align 1, !tbaa !16
  br label %1898, !llvm.loop !90

2294:                                             ; preds = %1901
  br label %2295

2295:                                             ; preds = %2294, %1896
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #8
  br label %2299

2296:                                             ; preds = %2291, %1892, %1749
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  br label %2297

2297:                                             ; preds = %2296, %1745
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #8
  br label %2298

2298:                                             ; preds = %2297, %1741
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #8
  br label %2335

2299:                                             ; preds = %2295, %1707
  br label %2300

2300:                                             ; preds = %2299, %1665
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #8
  %2301 = load ptr, ptr %24, align 8, !tbaa !5
  %2302 = getelementptr inbounds %"class.HIR::Module", ptr %2301, i32 0, i32 3
  %2303 = load ptr, ptr %23, align 8, !tbaa !5
  %2304 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %2303) #8
  %2305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %2304)
          to label %2306 unwind label %2336

2306:                                             ; preds = %2300
  %2307 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %2302, ptr noundef nonnull align 8 dereferenceable(8) %2305)
          to label %2308 unwind label %2336

2308:                                             ; preds = %2306
  %2309 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.650", ptr %205, i32 0, i32 0
  %2310 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.651", ptr %2309, i32 0, i32 0
  store ptr %2307, ptr %2310, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #8
  %2311 = load ptr, ptr %24, align 8, !tbaa !5
  %2312 = getelementptr inbounds %"class.HIR::Module", ptr %2311, i32 0, i32 3
  %2313 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %2312) #8
  %2314 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.650", ptr %206, i32 0, i32 0
  %2315 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.651", ptr %2314, i32 0, i32 0
  store ptr %2313, ptr %2315, align 8
  %2316 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull align 8 dereferenceable(8) %206) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #8
  br i1 %2316, label %2317, label %2352

2317:                                             ; preds = %2308
  br label %2318

2318:                                             ; preds = %2317
  %2319 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2320 unwind label %2336

2320:                                             ; preds = %2318
  br i1 %2319, label %2321, label %2349

2321:                                             ; preds = %2320
  %2322 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2322, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %2324 unwind label %2336

2324:                                             ; preds = %2321
  %2325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2323, ptr noundef @.str.53)
          to label %2326 unwind label %2336

2326:                                             ; preds = %2324
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #8
  %2327 = getelementptr inbounds %class.anon.652, ptr %209, i32 0, i32 0
  store ptr %24, ptr %2327, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_15vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull align 8 dereferenceable(8) %209) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef %208)
          to label %2328 unwind label %2340

2328:                                             ; preds = %2326
  %2329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %2325, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %2330 unwind label %2344

2330:                                             ; preds = %2328
  %2331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2329, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2332 unwind label %2344

2332:                                             ; preds = %2330
  %2333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2331, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2334 unwind label %2344

2334:                                             ; preds = %2332
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #8
  br label %2349

2335:                                             ; preds = %2298, %1662, %1650
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #8
  br label %2925

2336:                                             ; preds = %2388, %2386, %2384, %2382, %2376, %2374, %2372, %2368, %2366, %2363, %2360, %2352, %2324, %2321, %2318, %2306, %2300
  %2337 = landingpad { ptr, i32 }
          cleanup
  %2338 = extractvalue { ptr, i32 } %2337, 0
  store ptr %2338, ptr %19, align 8
  %2339 = extractvalue { ptr, i32 } %2337, 1
  store i32 %2339, ptr %20, align 4
  br label %2894

2340:                                             ; preds = %2326
  %2341 = landingpad { ptr, i32 }
          cleanup
  %2342 = extractvalue { ptr, i32 } %2341, 0
  store ptr %2342, ptr %19, align 8
  %2343 = extractvalue { ptr, i32 } %2341, 1
  store i32 %2343, ptr %20, align 4
  br label %2348

2344:                                             ; preds = %2332, %2330, %2328
  %2345 = landingpad { ptr, i32 }
          cleanup
  %2346 = extractvalue { ptr, i32 } %2345, 0
  store ptr %2346, ptr %19, align 8
  %2347 = extractvalue { ptr, i32 } %2345, 1
  store i32 %2347, ptr %20, align 4
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  br label %2348

2348:                                             ; preds = %2344, %2340
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #8
  br label %2894

2349:                                             ; preds = %2334, %2320
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

2351:                                             ; preds = %2350
  br label %2865

2352:                                             ; preds = %2308
  %2353 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %205) #8
  %2354 = getelementptr inbounds %"struct.std::pair.653", ptr %2353, i32 0, i32 1
  %2355 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2354) #8
  %2356 = getelementptr inbounds %"struct.HIR::VisEnt.663", ptr %2355, i32 0, i32 0
  %2357 = invoke noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %2356)
          to label %2358 unwind label %2336

2358:                                             ; preds = %2352
  br i1 %2357, label %2394, label %2359

2359:                                             ; preds = %2358
  br label %2360

2360:                                             ; preds = %2359
  %2361 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2362 unwind label %2336

2362:                                             ; preds = %2360
  br i1 %2361, label %2363, label %2391

2363:                                             ; preds = %2362
  %2364 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2365 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2364, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %2366 unwind label %2336

2366:                                             ; preds = %2363
  %2367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2365, ptr noundef @.str.54)
          to label %2368 unwind label %2336

2368:                                             ; preds = %2366
  %2369 = load ptr, ptr %23, align 8, !tbaa !5
  %2370 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %2369) #8
  %2371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %2370)
          to label %2372 unwind label %2336

2372:                                             ; preds = %2368
  %2373 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2367, ptr noundef nonnull align 8 dereferenceable(8) %2371)
          to label %2374 unwind label %2336

2374:                                             ; preds = %2372
  %2375 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2373, ptr noundef @.str.31)
          to label %2376 unwind label %2336

2376:                                             ; preds = %2374
  %2377 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %205) #8
  %2378 = getelementptr inbounds %"struct.std::pair.653", ptr %2377, i32 0, i32 1
  %2379 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2378) #8
  %2380 = getelementptr inbounds %"struct.HIR::VisEnt.663", ptr %2379, i32 0, i32 1
  %2381 = invoke noundef ptr @_ZNK3HIR9MacroItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(56) %2380)
          to label %2382 unwind label %2336

2382:                                             ; preds = %2376
  %2383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2375, ptr noundef %2381)
          to label %2384 unwind label %2336

2384:                                             ; preds = %2382
  %2385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2383, ptr noundef @.str.49)
          to label %2386 unwind label %2336

2386:                                             ; preds = %2384
  %2387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2385, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2388 unwind label %2336

2388:                                             ; preds = %2386
  %2389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2387, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2390 unwind label %2336

2390:                                             ; preds = %2388
  br label %2391

2391:                                             ; preds = %2390, %2362
  br label %2392

2392:                                             ; preds = %2391
  br label %2393

2393:                                             ; preds = %2392
  br label %2864

2394:                                             ; preds = %2358
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #8
  %2395 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %205) #8
  %2396 = getelementptr inbounds %"struct.std::pair.653", ptr %2395, i32 0, i32 1
  %2397 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2396) #8
  %2398 = getelementptr inbounds %"struct.HIR::VisEnt.663", ptr %2397, i32 0, i32 1
  store ptr %2398, ptr %210, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %211) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2399 unwind label %2427

2399:                                             ; preds = %2394
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %211)
          to label %2400 unwind label %2431

2400:                                             ; preds = %2399
  br label %2401

2401:                                             ; preds = %2400
  %2402 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2403 unwind label %2435

2403:                                             ; preds = %2401
  br i1 %2402, label %2404, label %2439

2404:                                             ; preds = %2403
  %2405 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2405, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %2407 unwind label %2435

2407:                                             ; preds = %2404
  %2408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2406, ptr noundef @.str.54)
          to label %2409 unwind label %2435

2409:                                             ; preds = %2407
  %2410 = load ptr, ptr %23, align 8, !tbaa !5
  %2411 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %2410) #8
  %2412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %2411)
          to label %2413 unwind label %2435

2413:                                             ; preds = %2409
  %2414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2408, ptr noundef nonnull align 8 dereferenceable(8) %2412)
          to label %2415 unwind label %2435

2415:                                             ; preds = %2413
  %2416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2414, ptr noundef @.str.31)
          to label %2417 unwind label %2435

2417:                                             ; preds = %2415
  %2418 = load ptr, ptr %210, align 8, !tbaa !5
  %2419 = invoke noundef ptr @_ZNK3HIR9MacroItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(56) %2418)
          to label %2420 unwind label %2435

2420:                                             ; preds = %2417
  %2421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2416, ptr noundef %2419)
          to label %2422 unwind label %2435

2422:                                             ; preds = %2420
  %2423 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2421, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2424 unwind label %2435

2424:                                             ; preds = %2422
  %2425 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2423, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2426 unwind label %2435

2426:                                             ; preds = %2424
  br label %2439

2427:                                             ; preds = %2394
  %2428 = landingpad { ptr, i32 }
          cleanup
  %2429 = extractvalue { ptr, i32 } %2428, 0
  store ptr %2429, ptr %19, align 8
  %2430 = extractvalue { ptr, i32 } %2428, 1
  store i32 %2430, ptr %20, align 4
  br label %2863

2431:                                             ; preds = %2399
  %2432 = landingpad { ptr, i32 }
          cleanup
  %2433 = extractvalue { ptr, i32 } %2432, 0
  store ptr %2433, ptr %19, align 8
  %2434 = extractvalue { ptr, i32 } %2432, 1
  store i32 %2434, ptr %20, align 4
  br label %2862

2435:                                             ; preds = %2648, %2424, %2422, %2420, %2417, %2415, %2413, %2409, %2407, %2404, %2401
  %2436 = landingpad { ptr, i32 }
          cleanup
  %2437 = extractvalue { ptr, i32 } %2436, 0
  store ptr %2437, ptr %19, align 8
  %2438 = extractvalue { ptr, i32 } %2436, 1
  store i32 %2438, ptr %20, align 4
  br label %2861

2439:                                             ; preds = %2426, %2403
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #8
  %2442 = load ptr, ptr %210, align 8, !tbaa !5
  %2443 = invoke noundef ptr @_ZNK3HIR9MacroItem10opt_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %2442)
          to label %2444 unwind label %2485

2444:                                             ; preds = %2441
  store ptr %2443, ptr %213, align 8, !tbaa !5
  %2445 = load ptr, ptr %213, align 8, !tbaa !5
  %2446 = icmp ne ptr %2445, null
  br i1 %2446, label %2447, label %2644

2447:                                             ; preds = %2444
  %2448 = load ptr, ptr %213, align 8, !tbaa !5
  %2449 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2448, i32 0, i32 0
  %2450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2449)
          to label %2451 unwind label %2485

2451:                                             ; preds = %2447
  %2452 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %2450, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
          to label %2453 unwind label %2485

2453:                                             ; preds = %2451
  br i1 %2452, label %2454, label %2527

2454:                                             ; preds = %2453
  %2455 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 2
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
          to label %2456 unwind label %2485

2456:                                             ; preds = %2454
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #8
  store ptr %218, ptr %219, align 8
  %2457 = load ptr, ptr %23, align 8, !tbaa !5
  %2458 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %2457) #8
  %2459 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %2458)
          to label %2460 unwind label %2489

2460:                                             ; preds = %2456
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef nonnull align 8 dereferenceable(8) %2459)
          to label %2461 unwind label %2489

2461:                                             ; preds = %2460
  %2462 = getelementptr inbounds %"class.std::initializer_list", ptr %217, i32 0, i32 0
  store ptr %218, ptr %2462, align 8, !tbaa !91
  %2463 = getelementptr inbounds %"class.std::initializer_list", ptr %217, i32 0, i32 1
  store i64 1, ptr %2463, align 8, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 1, ptr %220) #8
  call void @_ZNSaI8RcStringEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #8
  %2464 = getelementptr inbounds { ptr, i64 }, ptr %217, i32 0, i32 0
  %2465 = load ptr, ptr %2464, align 8
  %2466 = getelementptr inbounds { ptr, i64 }, ptr %217, i32 0, i32 1
  %2467 = load i64, ptr %2466, align 8
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %216, ptr %2465, i64 %2467, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %2468 unwind label %2500

2468:                                             ; preds = %2461
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef %215, ptr noundef %216)
          to label %2469 unwind label %2504

2469:                                             ; preds = %2468
  %2470 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %222, i32 0, i32 0
  store ptr null, ptr %2470, align 8, !tbaa !94
  %2471 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %222, i32 0, i32 1
  store ptr null, ptr %2471, align 8, !tbaa !96
  %2472 = getelementptr inbounds { ptr, ptr }, ptr %222, i32 0, i32 0
  %2473 = load ptr, ptr %2472, align 8
  %2474 = getelementptr inbounds { ptr, ptr }, ptr %222, i32 0, i32 1
  %2475 = load ptr, ptr %2474, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %221, ptr %2473, ptr %2475)
          to label %2476 unwind label %2508

2476:                                             ; preds = %2469
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %2455, ptr noundef %214, ptr noundef %221)
          to label %2477 unwind label %2512

2477:                                             ; preds = %2476
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %221) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %216) #8
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %220) #8
  %2478 = getelementptr inbounds [1 x %class.RcString], ptr %218, i32 0, i32 0
  %2479 = getelementptr inbounds %class.RcString, ptr %2478, i64 1
  br label %2480

2480:                                             ; preds = %2480, %2477
  %2481 = phi ptr [ %2479, %2477 ], [ %2482, %2480 ]
  %2482 = getelementptr inbounds %class.RcString, ptr %2481, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %2482) #8
  %2483 = icmp eq ptr %2482, %2478
  br i1 %2483, label %2484, label %2480

2484:                                             ; preds = %2480
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #8
  store i1 true, ptr %17, align 1
  store i32 1, ptr %28, align 4
  br label %2646

2485:                                             ; preds = %2544, %2534, %2528, %2454, %2451, %2447, %2441
  %2486 = landingpad { ptr, i32 }
          cleanup
  %2487 = extractvalue { ptr, i32 } %2486, 0
  store ptr %2487, ptr %19, align 8
  %2488 = extractvalue { ptr, i32 } %2486, 1
  store i32 %2488, ptr %20, align 4
  br label %2657

2489:                                             ; preds = %2460, %2456
  %2490 = landingpad { ptr, i32 }
          cleanup
  %2491 = extractvalue { ptr, i32 } %2490, 0
  store ptr %2491, ptr %19, align 8
  %2492 = extractvalue { ptr, i32 } %2490, 1
  store i32 %2492, ptr %20, align 4
  %2493 = load ptr, ptr %219, align 8
  %2494 = icmp eq ptr %218, %2493
  br i1 %2494, label %2499, label %2495

2495:                                             ; preds = %2495, %2489
  %2496 = phi ptr [ %2493, %2489 ], [ %2497, %2495 ]
  %2497 = getelementptr inbounds %class.RcString, ptr %2496, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %2497) #8
  %2498 = icmp eq ptr %2497, %218
  br i1 %2498, label %2499, label %2495

2499:                                             ; preds = %2495, %2489
  br label %2526

2500:                                             ; preds = %2461
  %2501 = landingpad { ptr, i32 }
          cleanup
  %2502 = extractvalue { ptr, i32 } %2501, 0
  store ptr %2502, ptr %19, align 8
  %2503 = extractvalue { ptr, i32 } %2501, 1
  store i32 %2503, ptr %20, align 4
  br label %2518

2504:                                             ; preds = %2468
  %2505 = landingpad { ptr, i32 }
          cleanup
  %2506 = extractvalue { ptr, i32 } %2505, 0
  store ptr %2506, ptr %19, align 8
  %2507 = extractvalue { ptr, i32 } %2505, 1
  store i32 %2507, ptr %20, align 4
  br label %2517

2508:                                             ; preds = %2469
  %2509 = landingpad { ptr, i32 }
          cleanup
  %2510 = extractvalue { ptr, i32 } %2509, 0
  store ptr %2510, ptr %19, align 8
  %2511 = extractvalue { ptr, i32 } %2509, 1
  store i32 %2511, ptr %20, align 4
  br label %2516

2512:                                             ; preds = %2476
  %2513 = landingpad { ptr, i32 }
          cleanup
  %2514 = extractvalue { ptr, i32 } %2513, 0
  store ptr %2514, ptr %19, align 8
  %2515 = extractvalue { ptr, i32 } %2513, 1
  store i32 %2515, ptr %20, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %221) #8
  br label %2516

2516:                                             ; preds = %2512, %2508
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #8
  br label %2517

2517:                                             ; preds = %2516, %2504
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %216) #8
  br label %2518

2518:                                             ; preds = %2517, %2500
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %220) #8
  %2519 = getelementptr inbounds [1 x %class.RcString], ptr %218, i32 0, i32 0
  %2520 = getelementptr inbounds %class.RcString, ptr %2519, i64 1
  br label %2521

2521:                                             ; preds = %2521, %2518
  %2522 = phi ptr [ %2520, %2518 ], [ %2523, %2521 ]
  %2523 = getelementptr inbounds %class.RcString, ptr %2522, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %2523) #8
  %2524 = icmp eq ptr %2523, %2519
  br i1 %2524, label %2525, label %2521

2525:                                             ; preds = %2521
  br label %2526

2526:                                             ; preds = %2525, %2499
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #8
  br label %2657

2527:                                             ; preds = %2453
  br label %2528

2528:                                             ; preds = %2527
  %2529 = load ptr, ptr %11, align 8, !tbaa !5
  %2530 = getelementptr inbounds %"class.AST::Crate", ptr %2529, i32 0, i32 4
  %2531 = load ptr, ptr %213, align 8, !tbaa !5
  %2532 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2531, i32 0, i32 0
  %2533 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2532)
          to label %2534 unwind label %2485

2534:                                             ; preds = %2528
  %2535 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2530, ptr noundef nonnull align 8 dereferenceable(8) %2533)
          to label %2536 unwind label %2485

2536:                                             ; preds = %2534
  %2537 = icmp ugt i64 %2535, 0
  br i1 %2537, label %2558, label %2538

2538:                                             ; preds = %2536
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #8
  %2539 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull align 8 dereferenceable(8) %2539)
          to label %2540 unwind label %2545

2540:                                             ; preds = %2538
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #8
  %2541 = getelementptr inbounds %class.anon.664, ptr %225, i32 0, i32 0
  store ptr %213, ptr %2541, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_16vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull align 8 dereferenceable(8) %225) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef %224)
          to label %2542 unwind label %2549

2542:                                             ; preds = %2540
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #8
  %2543 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2543, ptr noundef @.str.5)
          to label %2544 unwind label %2554

2544:                                             ; preds = %2542
  invoke void @__cxa_throw(ptr %2543, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %2485

2545:                                             ; preds = %2538
  %2546 = landingpad { ptr, i32 }
          cleanup
  %2547 = extractvalue { ptr, i32 } %2546, 0
  store ptr %2547, ptr %19, align 8
  %2548 = extractvalue { ptr, i32 } %2546, 1
  store i32 %2548, ptr %20, align 4
  br label %2553

2549:                                             ; preds = %2540
  %2550 = landingpad { ptr, i32 }
          cleanup
  %2551 = extractvalue { ptr, i32 } %2550, 0
  store ptr %2551, ptr %19, align 8
  %2552 = extractvalue { ptr, i32 } %2550, 1
  store i32 %2552, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #8
  br label %2553

2553:                                             ; preds = %2549, %2545
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #8
  br label %2657

2554:                                             ; preds = %2542
  %2555 = landingpad { ptr, i32 }
          cleanup
  %2556 = extractvalue { ptr, i32 } %2555, 0
  store ptr %2556, ptr %19, align 8
  %2557 = extractvalue { ptr, i32 } %2555, 1
  store i32 %2557, ptr %20, align 4
  call void @__cxa_free_exception(ptr %2543) #8
  br label %2657

2558:                                             ; preds = %2536
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #8
  %2561 = load ptr, ptr %11, align 8, !tbaa !5
  %2562 = getelementptr inbounds %"class.AST::Crate", ptr %2561, i32 0, i32 4
  %2563 = load ptr, ptr %213, align 8, !tbaa !5
  %2564 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2563, i32 0, i32 0
  %2565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2564)
          to label %2566 unwind label %2611

2566:                                             ; preds = %2560
  %2567 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2562, ptr noundef nonnull align 8 dereferenceable(8) %2565)
          to label %2568 unwind label %2611

2568:                                             ; preds = %2566
  %2569 = getelementptr inbounds %"class.AST::ExternCrate", ptr %2567, i32 0, i32 3
  %2570 = invoke noundef nonnull align 8 dereferenceable(944) ptr @_ZNK3HIR8CratePtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %2569)
          to label %2571 unwind label %2611

2571:                                             ; preds = %2568
  store ptr %2570, ptr %226, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #8
  %2572 = load ptr, ptr %226, align 8, !tbaa !5
  %2573 = load ptr, ptr %10, align 8, !tbaa !5
  %2574 = load ptr, ptr %213, align 8, !tbaa !5
  %2575 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2574, i32 0, i32 0
  %2576 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR5Crate15get_mod_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %2572, ptr noundef nonnull align 8 dereferenceable(8) %2573, ptr noundef nonnull align 8 dereferenceable(8) %2575, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %2577 unwind label %2615

2577:                                             ; preds = %2571
  store ptr %2576, ptr %227, align 8, !tbaa !5
  %2578 = load ptr, ptr %227, align 8, !tbaa !5
  %2579 = getelementptr inbounds %"class.HIR::Module", ptr %2578, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 16, ptr %228) #8
  %2580 = load ptr, ptr %213, align 8, !tbaa !5
  %2581 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2580, i32 0, i32 0
  %2582 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %2581)
          to label %2583 unwind label %2619

2583:                                             ; preds = %2577
  %2584 = getelementptr inbounds { ptr, i64 }, ptr %228, i32 0, i32 0
  %2585 = extractvalue { ptr, i64 } %2582, 0
  store ptr %2585, ptr %2584, align 8
  %2586 = getelementptr inbounds { ptr, i64 }, ptr %228, i32 0, i32 1
  %2587 = extractvalue { ptr, i64 } %2582, 1
  store i64 %2587, ptr %2586, align 8
  %2588 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %228)
          to label %2589 unwind label %2619

2589:                                             ; preds = %2583
  %2590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %2579, ptr noundef nonnull align 8 dereferenceable(8) %2588)
          to label %2591 unwind label %2619

2591:                                             ; preds = %2589
  %2592 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2590) #8
  %2593 = getelementptr inbounds %"struct.HIR::VisEnt.663", ptr %2592, i32 0, i32 1
  store ptr %2593, ptr %210, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 16, ptr %228) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #8
  %2594 = load ptr, ptr %213, align 8, !tbaa !5
  %2595 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2594, i32 0, i32 0
  %2596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2595)
          to label %2597 unwind label %2623

2597:                                             ; preds = %2591
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull align 8 dereferenceable(8) %2596)
          to label %2598 unwind label %2623

2598:                                             ; preds = %2597
  call void @llvm.lifetime.start.p0(i64 16, ptr %232) #8
  %2599 = load ptr, ptr %213, align 8, !tbaa !5
  %2600 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2599, i32 0, i32 0
  %2601 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %2600)
          to label %2602 unwind label %2627

2602:                                             ; preds = %2598
  %2603 = getelementptr inbounds { ptr, i64 }, ptr %232, i32 0, i32 0
  %2604 = extractvalue { ptr, i64 } %2601, 0
  store ptr %2604, ptr %2603, align 8
  %2605 = getelementptr inbounds { ptr, i64 }, ptr %232, i32 0, i32 1
  %2606 = extractvalue { ptr, i64 } %2601, 1
  store i64 %2606, ptr %2605, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector.18") align 8 %231, ptr noundef nonnull align 8 dereferenceable(16) %232)
          to label %2607 unwind label %2627

2607:                                             ; preds = %2602
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef %230, ptr noundef %231)
          to label %2608 unwind label %2631

2608:                                             ; preds = %2607
  %2609 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %229)
          to label %2610 unwind label %2635

2610:                                             ; preds = %2608
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %231) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %230) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #8
  br label %2645

2611:                                             ; preds = %2568, %2566, %2560
  %2612 = landingpad { ptr, i32 }
          cleanup
  %2613 = extractvalue { ptr, i32 } %2612, 0
  store ptr %2613, ptr %19, align 8
  %2614 = extractvalue { ptr, i32 } %2612, 1
  store i32 %2614, ptr %20, align 4
  br label %2643

2615:                                             ; preds = %2571
  %2616 = landingpad { ptr, i32 }
          cleanup
  %2617 = extractvalue { ptr, i32 } %2616, 0
  store ptr %2617, ptr %19, align 8
  %2618 = extractvalue { ptr, i32 } %2616, 1
  store i32 %2618, ptr %20, align 4
  br label %2642

2619:                                             ; preds = %2589, %2583, %2577
  %2620 = landingpad { ptr, i32 }
          cleanup
  %2621 = extractvalue { ptr, i32 } %2620, 0
  store ptr %2621, ptr %19, align 8
  %2622 = extractvalue { ptr, i32 } %2620, 1
  store i32 %2622, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %228) #8
  br label %2642

2623:                                             ; preds = %2597, %2591
  %2624 = landingpad { ptr, i32 }
          cleanup
  %2625 = extractvalue { ptr, i32 } %2624, 0
  store ptr %2625, ptr %19, align 8
  %2626 = extractvalue { ptr, i32 } %2624, 1
  store i32 %2626, ptr %20, align 4
  br label %2641

2627:                                             ; preds = %2602, %2598
  %2628 = landingpad { ptr, i32 }
          cleanup
  %2629 = extractvalue { ptr, i32 } %2628, 0
  store ptr %2629, ptr %19, align 8
  %2630 = extractvalue { ptr, i32 } %2628, 1
  store i32 %2630, ptr %20, align 4
  br label %2640

2631:                                             ; preds = %2607
  %2632 = landingpad { ptr, i32 }
          cleanup
  %2633 = extractvalue { ptr, i32 } %2632, 0
  store ptr %2633, ptr %19, align 8
  %2634 = extractvalue { ptr, i32 } %2632, 1
  store i32 %2634, ptr %20, align 4
  br label %2639

2635:                                             ; preds = %2608
  %2636 = landingpad { ptr, i32 }
          cleanup
  %2637 = extractvalue { ptr, i32 } %2636, 0
  store ptr %2637, ptr %19, align 8
  %2638 = extractvalue { ptr, i32 } %2636, 1
  store i32 %2638, ptr %20, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #8
  br label %2639

2639:                                             ; preds = %2635, %2631
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %231) #8
  br label %2640

2640:                                             ; preds = %2639, %2627
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %230) #8
  br label %2641

2641:                                             ; preds = %2640, %2623
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #8
  br label %2642

2642:                                             ; preds = %2641, %2619, %2615
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #8
  br label %2643

2643:                                             ; preds = %2642, %2611
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #8
  br label %2657

2644:                                             ; preds = %2444
  br label %2645

2645:                                             ; preds = %2644, %2610
  store i32 0, ptr %28, align 4
  br label %2646

2646:                                             ; preds = %2645, %2484
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  %2647 = load i32, ptr %28, align 4
  switch i32 %2647, label %2858 [
    i32 0, label %2648
  ]

2648:                                             ; preds = %2646
  %2649 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 2
  %2650 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %2649)
          to label %2651 unwind label %2435

2651:                                             ; preds = %2648
  br i1 %2650, label %2652, label %2857

2652:                                             ; preds = %2651
  call void @llvm.lifetime.start.p0(i64 1, ptr %233) #8
  store i8 1, ptr %233, align 1, !tbaa !16
  br label %2653

2653:                                             ; preds = %2855, %2652
  %2654 = load i8, ptr %233, align 1, !tbaa !16, !range !18, !noundef !19
  %2655 = trunc i8 %2654 to i1
  br i1 %2655, label %2658, label %2656

2656:                                             ; preds = %2653
  store i32 120, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %233) #8
  br label %2856

2657:                                             ; preds = %2643, %2554, %2553, %2526, %2485
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  br label %2861

2658:                                             ; preds = %2653
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #8
  %2659 = load ptr, ptr %210, align 8, !tbaa !5
  store ptr %2659, ptr %234, align 8, !tbaa !5
  br label %2660

2660:                                             ; preds = %2852, %2658
  %2661 = load i8, ptr %233, align 1, !tbaa !16, !range !18, !noundef !19
  %2662 = trunc i8 %2661 to i1
  br i1 %2662, label %2664, label %2663

2663:                                             ; preds = %2660
  store i32 123, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  br label %2854

2664:                                             ; preds = %2660
  %2665 = load ptr, ptr %234, align 8, !tbaa !5
  %2666 = invoke noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56) %2665)
          to label %2667 unwind label %2668

2667:                                             ; preds = %2664
  switch i32 %2666, label %2851 [
    i32 0, label %2672
    i32 1, label %2673
    i32 3, label %2757
    i32 2, label %2805
  ]

2668:                                             ; preds = %2664
  %2669 = landingpad { ptr, i32 }
          cleanup
  %2670 = extractvalue { ptr, i32 } %2669, 0
  store ptr %2670, ptr %19, align 8
  %2671 = extractvalue { ptr, i32 } %2669, 1
  store i32 %2671, ptr %20, align 4
  br label %2853

2672:                                             ; preds = %2667
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 1054, ptr noundef @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

2673:                                             ; preds = %2667
  call void @llvm.lifetime.start.p0(i64 1, ptr %235) #8
  store i8 1, ptr %235, align 1, !tbaa !16
  br label %2674

2674:                                             ; preds = %2755, %2673
  %2675 = load i8, ptr %235, align 1, !tbaa !16, !range !18, !noundef !19
  %2676 = trunc i8 %2675 to i1
  br i1 %2676, label %2678, label %2677

2677:                                             ; preds = %2674
  store i32 127, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #8
  br label %2756

2678:                                             ; preds = %2674
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #8
  %2679 = load ptr, ptr %234, align 8, !tbaa !5
  %2680 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %2679)
          to label %2681 unwind label %2687

2681:                                             ; preds = %2678
  store ptr %2680, ptr %236, align 8, !tbaa !5
  br label %2682

2682:                                             ; preds = %2743, %2681
  %2683 = load ptr, ptr %236, align 8, !tbaa !5
  %2684 = load i8, ptr %235, align 1, !tbaa !16, !range !18, !noundef !19
  %2685 = trunc i8 %2684 to i1
  br i1 %2685, label %2691, label %2686

2686:                                             ; preds = %2682
  store i32 130, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  br label %2754

2687:                                             ; preds = %2732, %2711, %2695, %2691, %2678
  %2688 = landingpad { ptr, i32 }
          cleanup
  %2689 = extractvalue { ptr, i32 } %2688, 0
  store ptr %2689, ptr %19, align 8
  %2690 = extractvalue { ptr, i32 } %2688, 1
  store i32 %2690, ptr %20, align 4
  br label %2753

2691:                                             ; preds = %2682
  %2692 = load ptr, ptr %236, align 8, !tbaa !5
  %2693 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %2692, i32 0, i32 0
  %2694 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %2693)
          to label %2695 unwind label %2687

2695:                                             ; preds = %2691
  %2696 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %2694, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
          to label %2697 unwind label %2687

2697:                                             ; preds = %2695
  br i1 %2696, label %2698, label %2699

2698:                                             ; preds = %2697
  br label %2732

2699:                                             ; preds = %2697
  br label %2700

2700:                                             ; preds = %2699
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #8
  %2701 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %237, ptr noundef nonnull align 8 dereferenceable(8) %2701)
          to label %2702 unwind label %2712

2702:                                             ; preds = %2700
  call void @llvm.lifetime.start.p0(i64 24, ptr %239) #8
  %2703 = getelementptr inbounds %class.anon.665, ptr %239, i32 0, i32 0
  %2704 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %2704, ptr %2703, align 8, !tbaa !5
  %2705 = getelementptr inbounds %class.anon.665, ptr %239, i32 0, i32 1
  store ptr %205, ptr %2705, align 8, !tbaa !5
  %2706 = getelementptr inbounds %class.anon.665, ptr %239, i32 0, i32 2
  %2707 = load ptr, ptr %236, align 8, !tbaa !5
  store ptr %2707, ptr %2706, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_17vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull align 8 dereferenceable(24) %239)
          to label %2708 unwind label %2716

2708:                                             ; preds = %2702
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %237, ptr noundef %238)
          to label %2709 unwind label %2720

2709:                                             ; preds = %2708
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %239) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #8
  %2710 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2710, ptr noundef @.str.5)
          to label %2711 unwind label %2726

2711:                                             ; preds = %2709
  invoke void @__cxa_throw(ptr %2710, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %2935 unwind label %2687

2712:                                             ; preds = %2700
  %2713 = landingpad { ptr, i32 }
          cleanup
  %2714 = extractvalue { ptr, i32 } %2713, 0
  store ptr %2714, ptr %19, align 8
  %2715 = extractvalue { ptr, i32 } %2713, 1
  store i32 %2715, ptr %20, align 4
  br label %2725

2716:                                             ; preds = %2702
  %2717 = landingpad { ptr, i32 }
          cleanup
  %2718 = extractvalue { ptr, i32 } %2717, 0
  store ptr %2718, ptr %19, align 8
  %2719 = extractvalue { ptr, i32 } %2717, 1
  store i32 %2719, ptr %20, align 4
  br label %2724

2720:                                             ; preds = %2708
  %2721 = landingpad { ptr, i32 }
          cleanup
  %2722 = extractvalue { ptr, i32 } %2721, 0
  store ptr %2722, ptr %19, align 8
  %2723 = extractvalue { ptr, i32 } %2721, 1
  store i32 %2723, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #8
  br label %2724

2724:                                             ; preds = %2720, %2716
  call void @llvm.lifetime.end.p0(i64 24, ptr %239) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #8
  br label %2725

2725:                                             ; preds = %2724, %2712
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #8
  br label %2753

2726:                                             ; preds = %2709
  %2727 = landingpad { ptr, i32 }
          cleanup
  %2728 = extractvalue { ptr, i32 } %2727, 0
  store ptr %2728, ptr %19, align 8
  %2729 = extractvalue { ptr, i32 } %2727, 1
  store i32 %2729, ptr %20, align 4
  call void @__cxa_free_exception(ptr %2710) #8
  br label %2753

2730:                                             ; No predecessors!
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731, %2698
  %2733 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 2
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef nonnull align 8 dereferenceable(32) %212)
          to label %2734 unwind label %2687

2734:                                             ; preds = %2732
  %2735 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %242, i32 0, i32 0
  store ptr null, ptr %2735, align 8, !tbaa !94
  %2736 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %242, i32 0, i32 1
  store ptr null, ptr %2736, align 8, !tbaa !96
  %2737 = getelementptr inbounds { ptr, ptr }, ptr %242, i32 0, i32 0
  %2738 = load ptr, ptr %2737, align 8
  %2739 = getelementptr inbounds { ptr, ptr }, ptr %242, i32 0, i32 1
  %2740 = load ptr, ptr %2739, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %241, ptr %2738, ptr %2740)
          to label %2741 unwind label %2744

2741:                                             ; preds = %2734
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %2733, ptr noundef %240, ptr noundef %241)
          to label %2742 unwind label %2748

2742:                                             ; preds = %2741
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %241) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #8
  br label %2743

2743:                                             ; preds = %2742
  store i8 0, ptr %235, align 1, !tbaa !16
  br label %2682, !llvm.loop !97

2744:                                             ; preds = %2734
  %2745 = landingpad { ptr, i32 }
          cleanup
  %2746 = extractvalue { ptr, i32 } %2745, 0
  store ptr %2746, ptr %19, align 8
  %2747 = extractvalue { ptr, i32 } %2745, 1
  store i32 %2747, ptr %20, align 4
  br label %2752

2748:                                             ; preds = %2741
  %2749 = landingpad { ptr, i32 }
          cleanup
  %2750 = extractvalue { ptr, i32 } %2749, 0
  store ptr %2750, ptr %19, align 8
  %2751 = extractvalue { ptr, i32 } %2749, 1
  store i32 %2751, ptr %20, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %241) #8
  br label %2752

2752:                                             ; preds = %2748, %2744
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #8
  br label %2753

2753:                                             ; preds = %2752, %2726, %2725, %2687
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #8
  br label %2853

2754:                                             ; preds = %2686
  br label %2755

2755:                                             ; preds = %2754
  store i8 0, ptr %235, align 1, !tbaa !16
  br label %2674, !llvm.loop !98

2756:                                             ; preds = %2677
  br label %2851

2757:                                             ; preds = %2667
  call void @llvm.lifetime.start.p0(i64 1, ptr %243) #8
  store i8 1, ptr %243, align 1, !tbaa !16
  br label %2758

2758:                                             ; preds = %2803, %2757
  %2759 = load i8, ptr %243, align 1, !tbaa !16, !range !18, !noundef !19
  %2760 = trunc i8 %2759 to i1
  br i1 %2760, label %2762, label %2761

2761:                                             ; preds = %2758
  store i32 135, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #8
  br label %2804

2762:                                             ; preds = %2758
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #8
  %2763 = load ptr, ptr %234, align 8, !tbaa !5
  %2764 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3HIR9MacroItem12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(56) %2763)
          to label %2765 unwind label %2771

2765:                                             ; preds = %2762
  store ptr %2764, ptr %244, align 8, !tbaa !5
  br label %2766

2766:                                             ; preds = %2786, %2765
  %2767 = load ptr, ptr %244, align 8, !tbaa !5
  %2768 = load i8, ptr %243, align 1, !tbaa !16, !range !18, !noundef !19
  %2769 = trunc i8 %2768 to i1
  br i1 %2769, label %2775, label %2770

2770:                                             ; preds = %2766
  store i32 138, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #8
  br label %2802

2771:                                             ; preds = %2775, %2762
  %2772 = landingpad { ptr, i32 }
          cleanup
  %2773 = extractvalue { ptr, i32 } %2772, 0
  store ptr %2773, ptr %19, align 8
  %2774 = extractvalue { ptr, i32 } %2772, 1
  store i32 %2774, ptr %20, align 4
  br label %2801

2775:                                             ; preds = %2766
  %2776 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 2
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 8 dereferenceable(32) %212)
          to label %2777 unwind label %2771

2777:                                             ; preds = %2775
  %2778 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_ProcMacro", ptr %247, i32 0, i32 0
  %2779 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %2779, ptr %2778, align 8, !tbaa !99
  %2780 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_ProcMacro", ptr %247, i32 0, i32 1
  %2781 = load ptr, ptr %244, align 8, !tbaa !5
  %2782 = getelementptr inbounds %"class.HIR::ProcMacro", ptr %2781, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %2780, ptr noundef nonnull align 8 dereferenceable(8) %2782)
          to label %2783 unwind label %2787

2783:                                             ; preds = %2777
  invoke void @_ZN3AST17PathBinding_Macro14make_ProcMacroENS0_14Data_ProcMacroE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %246, ptr noundef %247)
          to label %2784 unwind label %2791

2784:                                             ; preds = %2783
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %2776, ptr noundef %245, ptr noundef %246)
          to label %2785 unwind label %2795

2785:                                             ; preds = %2784
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %246) #8
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %247) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #8
  br label %2786

2786:                                             ; preds = %2785
  store i8 0, ptr %243, align 1, !tbaa !16
  br label %2766, !llvm.loop !101

2787:                                             ; preds = %2777
  %2788 = landingpad { ptr, i32 }
          cleanup
  %2789 = extractvalue { ptr, i32 } %2788, 0
  store ptr %2789, ptr %19, align 8
  %2790 = extractvalue { ptr, i32 } %2788, 1
  store i32 %2790, ptr %20, align 4
  br label %2800

2791:                                             ; preds = %2783
  %2792 = landingpad { ptr, i32 }
          cleanup
  %2793 = extractvalue { ptr, i32 } %2792, 0
  store ptr %2793, ptr %19, align 8
  %2794 = extractvalue { ptr, i32 } %2792, 1
  store i32 %2794, ptr %20, align 4
  br label %2799

2795:                                             ; preds = %2784
  %2796 = landingpad { ptr, i32 }
          cleanup
  %2797 = extractvalue { ptr, i32 } %2796, 0
  store ptr %2797, ptr %19, align 8
  %2798 = extractvalue { ptr, i32 } %2796, 1
  store i32 %2798, ptr %20, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %246) #8
  br label %2799

2799:                                             ; preds = %2795, %2791
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %247) #8
  br label %2800

2800:                                             ; preds = %2799, %2787
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #8
  br label %2801

2801:                                             ; preds = %2800, %2771
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #8
  br label %2853

2802:                                             ; preds = %2770
  br label %2803

2803:                                             ; preds = %2802
  store i8 0, ptr %243, align 1, !tbaa !16
  br label %2758, !llvm.loop !102

2804:                                             ; preds = %2761
  br label %2851

2805:                                             ; preds = %2667
  call void @llvm.lifetime.start.p0(i64 1, ptr %248) #8
  store i8 1, ptr %248, align 1, !tbaa !16
  br label %2806

2806:                                             ; preds = %2849, %2805
  %2807 = load i8, ptr %248, align 1, !tbaa !16, !range !18, !noundef !19
  %2808 = trunc i8 %2807 to i1
  br i1 %2808, label %2810, label %2809

2809:                                             ; preds = %2806
  store i32 141, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %248) #8
  br label %2850

2810:                                             ; preds = %2806
  call void @llvm.lifetime.start.p0(i64 8, ptr %249) #8
  %2811 = load ptr, ptr %234, align 8, !tbaa !5
  %2812 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %2811)
          to label %2813 unwind label %2819

2813:                                             ; preds = %2810
  store ptr %2812, ptr %249, align 8, !tbaa !5
  br label %2814

2814:                                             ; preds = %2837, %2813
  %2815 = load ptr, ptr %249, align 8, !tbaa !5
  %2816 = load i8, ptr %248, align 1, !tbaa !16, !range !18, !noundef !19
  %2817 = trunc i8 %2816 to i1
  br i1 %2817, label %2823, label %2818

2818:                                             ; preds = %2814
  store i32 144, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #8
  br label %2848

2819:                                             ; preds = %2823, %2810
  %2820 = landingpad { ptr, i32 }
          cleanup
  %2821 = extractvalue { ptr, i32 } %2820, 0
  store ptr %2821, ptr %19, align 8
  %2822 = extractvalue { ptr, i32 } %2820, 1
  store i32 %2822, ptr %20, align 4
  br label %2847

2823:                                             ; preds = %2814
  %2824 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 2
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull align 8 dereferenceable(32) %212)
          to label %2825 unwind label %2819

2825:                                             ; preds = %2823
  %2826 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %252, i32 0, i32 0
  store ptr null, ptr %2826, align 8, !tbaa !94
  %2827 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %252, i32 0, i32 1
  %2828 = load ptr, ptr %249, align 8, !tbaa !5
  %2829 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %2828)
          to label %2830 unwind label %2838

2830:                                             ; preds = %2825
  store ptr %2829, ptr %2827, align 8, !tbaa !96
  %2831 = getelementptr inbounds { ptr, ptr }, ptr %252, i32 0, i32 0
  %2832 = load ptr, ptr %2831, align 8
  %2833 = getelementptr inbounds { ptr, ptr }, ptr %252, i32 0, i32 1
  %2834 = load ptr, ptr %2833, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %251, ptr %2832, ptr %2834)
          to label %2835 unwind label %2838

2835:                                             ; preds = %2830
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %2824, ptr noundef %250, ptr noundef %251)
          to label %2836 unwind label %2842

2836:                                             ; preds = %2835
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %251) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  br label %2837

2837:                                             ; preds = %2836
  store i8 0, ptr %248, align 1, !tbaa !16
  br label %2814, !llvm.loop !103

2838:                                             ; preds = %2830, %2825
  %2839 = landingpad { ptr, i32 }
          cleanup
  %2840 = extractvalue { ptr, i32 } %2839, 0
  store ptr %2840, ptr %19, align 8
  %2841 = extractvalue { ptr, i32 } %2839, 1
  store i32 %2841, ptr %20, align 4
  br label %2846

2842:                                             ; preds = %2835
  %2843 = landingpad { ptr, i32 }
          cleanup
  %2844 = extractvalue { ptr, i32 } %2843, 0
  store ptr %2844, ptr %19, align 8
  %2845 = extractvalue { ptr, i32 } %2843, 1
  store i32 %2845, ptr %20, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %251) #8
  br label %2846

2846:                                             ; preds = %2842, %2838
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #8
  br label %2847

2847:                                             ; preds = %2846, %2819
  call void @llvm.lifetime.end.p0(i64 8, ptr %249) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %248) #8
  br label %2853

2848:                                             ; preds = %2818
  br label %2849

2849:                                             ; preds = %2848
  store i8 0, ptr %248, align 1, !tbaa !16
  br label %2806, !llvm.loop !104

2850:                                             ; preds = %2809
  br label %2851

2851:                                             ; preds = %2850, %2804, %2756, %2667
  br label %2852

2852:                                             ; preds = %2851
  store i8 0, ptr %233, align 1, !tbaa !16
  br label %2660, !llvm.loop !105

2853:                                             ; preds = %2847, %2801, %2753, %2668
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %233) #8
  br label %2861

2854:                                             ; preds = %2663
  br label %2855

2855:                                             ; preds = %2854
  store i8 0, ptr %233, align 1, !tbaa !16
  br label %2653, !llvm.loop !106

2856:                                             ; preds = %2656
  br label %2857

2857:                                             ; preds = %2856, %2651
  store i32 0, ptr %28, align 4
  br label %2858

2858:                                             ; preds = %2857, %2646
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #8
  %2859 = load i32, ptr %28, align 4
  switch i32 %2859, label %2866 [
    i32 0, label %2860
  ]

2860:                                             ; preds = %2858
  br label %2864

2861:                                             ; preds = %2853, %2657, %2435
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #8
  br label %2862

2862:                                             ; preds = %2861, %2431
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #8
  br label %2863

2863:                                             ; preds = %2862, %2427
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #8
  br label %2894

2864:                                             ; preds = %2860, %2393
  br label %2865

2865:                                             ; preds = %2864, %2351
  store i32 0, ptr %28, align 4
  br label %2866

2866:                                             ; preds = %2865, %2858
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #8
  %2867 = load i32, ptr %28, align 4
  switch i32 %2867, label %2923 [
    i32 0, label %2868
  ]

2868:                                             ; preds = %2866
  %2869 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  %2870 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %2869)
          to label %2871 unwind label %308

2871:                                             ; preds = %2868
  br i1 %2870, label %2872, label %2898

2872:                                             ; preds = %2871
  %2873 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  %2874 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_ValueEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %2873)
          to label %2875 unwind label %308

2875:                                             ; preds = %2872
  br i1 %2874, label %2876, label %2898

2876:                                             ; preds = %2875
  %2877 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 2
  %2878 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %2877)
          to label %2879 unwind label %308

2879:                                             ; preds = %2876
  br i1 %2878, label %2880, label %2898

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  %2882 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2883 unwind label %308

2883:                                             ; preds = %2881
  br i1 %2882, label %2884, label %2895

2884:                                             ; preds = %2883
  %2885 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2886 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2885, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %2887 unwind label %308

2887:                                             ; preds = %2884
  %2888 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2886, ptr noundef @.str.55)
          to label %2889 unwind label %308

2889:                                             ; preds = %2887
  %2890 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2888, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2891 unwind label %308

2891:                                             ; preds = %2889
  %2892 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2890, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2893 unwind label %308

2893:                                             ; preds = %2891
  br label %2895

2894:                                             ; preds = %2863, %2348, %2336
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #8
  br label %2925

2895:                                             ; preds = %2893, %2883
  br label %2896

2896:                                             ; preds = %2895
  br label %2897

2897:                                             ; preds = %2896
  br label %2922

2898:                                             ; preds = %2879, %2875, %2871
  br label %2899

2899:                                             ; preds = %2898
  %2900 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2901 unwind label %308

2901:                                             ; preds = %2899
  br i1 %2900, label %2902, label %2919

2902:                                             ; preds = %2901
  %2903 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2904 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2903, ptr noundef @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %2905 unwind label %308

2905:                                             ; preds = %2902
  %2906 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 1
  %2907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(8) %2904, ptr noundef nonnull align 8 dereferenceable(64) %2906)
          to label %2908 unwind label %308

2908:                                             ; preds = %2905
  %2909 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 0
  %2910 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(8) %2907, ptr noundef nonnull align 8 dereferenceable(64) %2909)
          to label %2911 unwind label %308

2911:                                             ; preds = %2908
  %2912 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %0, i32 0, i32 2
  %2913 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(8) %2910, ptr noundef nonnull align 8 dereferenceable(56) %2912)
          to label %2914 unwind label %308

2914:                                             ; preds = %2911
  %2915 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2913, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2916 unwind label %308

2916:                                             ; preds = %2914
  %2917 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2915, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2918 unwind label %308

2918:                                             ; preds = %2916
  br label %2919

2919:                                             ; preds = %2918, %2901
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

2922:                                             ; preds = %2921, %2897
  store i1 true, ptr %17, align 1
  store i32 1, ptr %28, align 4
  br label %2923

2923:                                             ; preds = %2922, %2866, %998, %290
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #8
  %2924 = load i1, ptr %17, align 1
  br i1 %2924, label %2929, label %2928

2925:                                             ; preds = %2894, %2335, %1649, %1000, %320, %308
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %2926

2926:                                             ; preds = %2925, %304
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #8
  br label %2927

2927:                                             ; preds = %2926, %303, %291
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #8
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0) #8
  br label %2930

2928:                                             ; preds = %2923
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0) #8
  br label %2929

2929:                                             ; preds = %2928, %2923
  ret void

2930:                                             ; preds = %2927
  %2931 = load ptr, ptr %19, align 8
  %2932 = load i32, ptr %20, align 4
  %2933 = insertvalue { ptr, i32 } poison, ptr %2931, 0
  %2934 = insertvalue { ptr, i32 } %2933, i32 %2932, 1
  resume { ptr, i32 } %2934

2935:                                             ; preds = %2711, %2544, %2190, %2095, %1947, %1351, %890, %850, %647, %606, %562, %502, %406
  unreachable
}

; 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) #6 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) #6 align 2

declare noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(8)) #3

; 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 uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408)) #6 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_123get_hir_modenum_by_pathERK4SpanRKN3AST5CrateERKN3HIR10SimplePathERb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) #6

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_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 hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.18") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #6 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_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 hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_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 noundef nonnull align 8 dereferenceable(24) ptr @_ZN3HIR4Enum5Class7as_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 @_ZNSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_9vEEOT_"(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 zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

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

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

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

declare void @_ZN3HIR10SimplePath13pop_componentEv(ptr dead_on_unwind writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(8)) #3

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

declare noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext, i1 noundef zeroext) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3HIR4Enum12num_variantsEv(ptr noundef nonnull align 8 dereferenceable(200)) #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_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 dso_local noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3HIR9ValueItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(368)) #6 align 2

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

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

declare noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3HIR5Crate19get_valitem_by_pathERK4SpanRKNS_10SimplePathEb(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) #3

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_13vEEOT_"(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 @_ZNK3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_14vEEOT_"(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(352) ptr @_ZNK3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368)) #4 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_15vEEOT_"(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 ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3HIR9MacroItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(56)) #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_16vEEOT_"(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(944) ptr @_ZNK3HIR8CratePtrdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

declare noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR5Crate15get_mod_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext, i1 noundef zeroext) #3

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_17vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Macro14make_ProcMacroENS0_14Data_ProcMacroE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Macro") align 8, ptr noundef) #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56)) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) #6

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress 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 #8 = { nounwind }
attributes #9 = { noreturn }
attributes #10 = { 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 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !6, i64 0, !13, i64 8}
!13 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!14 = !{!13, !6, i64 0}
!15 = !{!13, !6, i64 8}
!16 = !{!17, !17, i64 0}
!17 = !{!"bool", !7, i64 0}
!18 = !{i8 0, i8 2}
!19 = !{}
!20 = !{!21, !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!23, !17, i64 8}
!23 = !{!"_ZTSN3HIR4Enum11DataVariantE", !24, i64 0, !17, i64 8, !25, i64 16}
!24 = !{!"_ZTS8RcString", !6, i64 0}
!25 = !{!"_ZTSN3HIR7TypeRefE", !6, i64 0}
!26 = !{!27, !6, i64 0}
!27 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}
!28 = !{!27, !10, i64 8}
!29 = !{!27, !6, i64 16}
!30 = !{!31, !6, i64 0}
!31 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}
!32 = !{!31, !10, i64 8}
!33 = !{!31, !6, i64 16}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.mustprogress"}
!36 = distinct !{!36, !35}
!37 = distinct !{!37, !35}
!38 = distinct !{!38, !35}
!39 = distinct !{!39, !35}
!40 = distinct !{!40, !35}
!41 = distinct !{!41, !35}
!42 = distinct !{!42, !35}
!43 = distinct !{!43, !35}
!44 = !{!45, !17, i64 8}
!45 = !{!"_ZTSN3HIR8TypeItem11Data_ImportE", !46, i64 0, !17, i64 8, !10, i64 12}
!46 = !{!"_ZTSN3HIR10SimplePathE", !47, i64 0}
!47 = !{!"_ZTS10ThinVectorI8RcStringE", !6, i64 0}
!48 = !{!45, !10, i64 12}
!49 = !{!50, !6, i64 0}
!50 = !{!"_ZTSN3AST16PathBinding_Type14Data_TypeAliasE", !6, i64 0}
!51 = !{!52, !6, i64 0}
!52 = !{!"_ZTSN3AST16PathBinding_Type9Data_EnumE", !6, i64 0, !6, i64 8}
!53 = !{!52, !6, i64 8}
!54 = !{!55, !6, i64 0}
!55 = !{!"_ZTSN3AST16PathBinding_Type11Data_StructE", !6, i64 0, !6, i64 8}
!56 = !{!55, !6, i64 8}
!57 = !{!58, !6, i64 0}
!58 = !{!"_ZTSN3AST16PathBinding_Type10Data_UnionE", !6, i64 0, !6, i64 8}
!59 = !{!58, !6, i64 8}
!60 = !{!61, !6, i64 0}
!61 = !{!"_ZTSN3AST16PathBinding_Type10Data_TraitE", !6, i64 0, !6, i64 8}
!62 = !{!61, !6, i64 8}
!63 = !{!64, !6, i64 0}
!64 = !{!"_ZTSN3AST16PathBinding_Type15Data_TraitAliasE", !6, i64 0, !6, i64 8}
!65 = !{!64, !6, i64 8}
!66 = !{!67, !17, i64 8}
!67 = !{!"_ZTSN3HIR9ValueItem11Data_ImportE", !46, i64 0, !17, i64 8, !10, i64 12}
!68 = !{!67, !10, i64 12}
!69 = distinct !{!69, !35}
!70 = distinct !{!70, !35}
!71 = !{!72, !6, i64 0}
!72 = !{!"_ZTSN3AST17PathBinding_Value11Data_StaticE", !6, i64 0, !6, i64 8}
!73 = !{!72, !6, i64 8}
!74 = distinct !{!74, !35}
!75 = distinct !{!75, !35}
!76 = distinct !{!76, !35}
!77 = distinct !{!77, !35}
!78 = !{!79, !6, i64 0}
!79 = !{!"_ZTSN3AST17PathBinding_Value11Data_StructE", !6, i64 0, !6, i64 8}
!80 = !{!79, !6, i64 8}
!81 = distinct !{!81, !35}
!82 = distinct !{!82, !35}
!83 = distinct !{!83, !35}
!84 = distinct !{!84, !35}
!85 = !{!86, !6, i64 0}
!86 = !{!"_ZTSN3AST17PathBinding_Value13Data_FunctionE", !6, i64 0}
!87 = distinct !{!87, !35}
!88 = distinct !{!88, !35}
!89 = distinct !{!89, !35}
!90 = distinct !{!90, !35}
!91 = !{!92, !6, i64 0}
!92 = !{!"_ZTSSt16initializer_listI8RcStringE", !6, i64 0, !21, i64 8}
!93 = !{!92, !21, i64 8}
!94 = !{!95, !6, i64 0}
!95 = !{!"_ZTSN3AST17PathBinding_Macro15Data_MacroRulesE", !6, i64 0, !6, i64 8}
!96 = !{!95, !6, i64 8}
!97 = distinct !{!97, !35}
!98 = distinct !{!98, !35}
!99 = !{!100, !6, i64 0}
!100 = !{!"_ZTSN3AST17PathBinding_Macro14Data_ProcMacroE", !6, i64 0, !24, i64 8}
!101 = distinct !{!101, !35}
!102 = distinct !{!102, !35}
!103 = distinct !{!103, !35}
!104 = distinct !{!104, !35}
!105 = distinct !{!105, !35}
!106 = distinct !{!106, !35}


; 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.RcString = type { ptr }
%"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 }
%"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 }
%"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 }
%"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.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 }
%"struct.AST::PathBinding.23" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"struct.AST::PathBinding.24" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%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.411 = type { ptr, ptr, ptr }
%struct.FmtLambda = type { %"class.std::function" }
%class.anon.412 = type { ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%struct.Span = type { ptr }
%class.anon.413 = type { ptr, ptr, ptr, ptr }
%class.anon.497 = type { ptr, ptr, ptr }
%class.anon.498 = type { ptr, ptr, ptr }
%class.anon.499 = type { i8 }
%class.anon.501 = type { ptr }
%"class.std::span.502" = type { ptr, i64 }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%class.anon.503 = type { i8 }
%class.anon.505 = type { ptr }
%class.anon.506 = type { ptr }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%class.anon.606 = type { ptr, ptr, ptr }
%"struct.std::__detail::_Node_const_iterator.607" = type { %"struct.std::__detail::_Node_iterator_base.608" }
%"struct.std::__detail::_Node_iterator_base.608" = type { ptr }
%class.anon.609 = type { ptr }
%class.anon.647 = type { ptr, ptr, ptr }
%class.anon.648 = type { ptr }
%class.anon.649 = type { ptr }
%"struct.std::__detail::_Node_const_iterator.650" = type { %"struct.std::__detail::_Node_iterator_base.651" }
%"struct.std::__detail::_Node_iterator_base.651" = type { ptr }
%class.anon.652 = type { ptr }
%"class.std::allocator.20" = type { i8 }
%class.anon.664 = type { ptr }
%class.anon.665 = type { ptr, ptr, ptr }
%"struct.AST::PathBinding_Macro::Data_ProcMacro" = type { ptr, %class.RcString }

@_ZN12_GLOBAL__N_123rcstring_crate_builtinsE = external hidden global %class.RcString, align 8
@.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.14 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE = external hidden unnamed_addr constant [28 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [4 x i8], align 1
@__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE = external hidden unnamed_addr constant [189 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [9 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; 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) #1

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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 #0

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #3

; 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 #5

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

; 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 #6 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)) #5

; 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 #6 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)) #5

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

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 #3

; 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 i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) 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 nounwind uwtable
declare dso_local void @_ZNSaI8RcStringEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #6 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 #6 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 #7 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 @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_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(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_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 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #7 align 2

declare void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef) local_unnamed_addr #3

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

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #3

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

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184)) unnamed_addr #5 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 #5 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 #6 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 #6 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 #6 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 #6 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 #6 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 #6 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 #6 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 #6 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 #6 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 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 #6 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 #6 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 #6 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 #6 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 #6 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 #6 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 #6 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 uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE(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(56) %3, ptr noundef nonnull align 8 dereferenceable(216) %4, ptr noundef nonnull align 8 dereferenceable(240) %5, i32 noundef %6, ptr noundef nonnull %7) local_unnamed_addr #6 personality ptr @__gxx_personality_v0 {
  %9 = alloca i32, align 4
  %10 = alloca %class.TraceLog, align 8
  %11 = alloca %"class.std::function", align 8
  %12 = alloca %class.anon.411, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %"struct.AST::AbsolutePath", align 8
  %15 = alloca %"class.AST::PathBinding_Type", align 8
  %16 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %17 = alloca i32, align 4
  %18 = alloca %struct.FmtLambda, align 8
  %19 = alloca %"class.std::function", align 8
  %20 = alloca %class.anon.412, align 8
  %21 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %22 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %23 = alloca %struct.Span, align 8
  %24 = alloca %"class.std::function", align 8
  %25 = alloca %class.anon.413, align 8
  %26 = alloca %struct.Span, align 8
  %27 = alloca %"class.std::function", align 8
  %28 = alloca %class.anon.497, align 8
  %29 = alloca i8, align 1
  %30 = alloca %struct.Span, align 8
  %31 = alloca %"class.std::function", align 8
  %32 = alloca %class.anon.498, align 8
  %33 = alloca %struct.Span, align 8
  %34 = alloca %"class.std::function", align 8
  %35 = alloca %class.anon.499, align 1
  %36 = alloca %struct.Span, align 8
  %37 = alloca %"class.std::function", align 8
  %38 = alloca %class.anon.501, align 8
  %39 = alloca %"class.std::vector.18", align 8
  %40 = alloca %"class.std::span.502", align 8
  %41 = alloca %"struct.AST::AbsolutePath", align 8
  %42 = alloca %"class.AST::PathBinding_Type", align 8
  %43 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %44 = alloca %"struct.AST::AbsolutePath", align 8
  %45 = alloca %"class.AST::PathBinding_Value", align 8
  %46 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %47 = alloca %"class.std::vector.18", align 8
  %48 = alloca %"class.std::span.502", align 8
  %49 = alloca %struct.Span, align 8
  %50 = alloca %"class.std::function", align 8
  %51 = alloca %class.anon.503, align 1
  %52 = alloca %struct.Span, align 8
  %53 = alloca %"class.std::function", align 8
  %54 = alloca %class.anon.505, align 8
  %55 = alloca %"struct.AST::AbsolutePath", align 8
  %56 = alloca %"class.AST::PathBinding_Type", align 8
  %57 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %58 = alloca %"struct.AST::AbsolutePath", align 8
  %59 = alloca %"class.AST::PathBinding_Value", align 8
  %60 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %61 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %62 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %63 = alloca %struct.FmtLambda, align 8
  %64 = alloca %"class.std::function", align 8
  %65 = alloca %class.anon.506, align 8
  %66 = alloca %"struct.AST::AbsolutePath", align 8
  %67 = alloca %"struct.AST::AbsolutePath", align 8
  %68 = alloca %"struct.AST::AbsolutePath", align 8
  %69 = alloca %class.RcString, align 8
  %70 = alloca %"class.std::vector.18", align 8
  %71 = alloca %"class.std::span.502", align 8
  %72 = alloca %"struct.HIR::SimplePath", align 8
  %73 = alloca %class.RcString, align 8
  %74 = alloca %"struct.AST::AbsolutePath", align 8
  %75 = alloca %"class.AST::PathBinding_Type", align 8
  %76 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %77 = alloca %"class.std::span.502", align 8
  %78 = alloca %"struct.AST::AbsolutePath", align 8
  %79 = alloca %"class.AST::PathBinding_Type", align 8
  %80 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %81 = alloca %struct.Span, align 8
  %82 = alloca %"class.std::function", align 8
  %83 = alloca %class.anon.606, align 8
  %84 = alloca %"struct.AST::AbsolutePath", align 8
  %85 = alloca %"class.AST::PathBinding_Type", align 8
  %86 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %87 = alloca %"struct.AST::AbsolutePath", align 8
  %88 = alloca %"class.AST::PathBinding_Type", align 8
  %89 = alloca %"struct.AST::AbsolutePath", align 8
  %90 = alloca %"class.AST::PathBinding_Type", align 8
  %91 = alloca %"struct.AST::AbsolutePath", align 8
  %92 = alloca %"class.AST::PathBinding_Type", align 8
  %93 = alloca %"struct.AST::AbsolutePath", align 8
  %94 = alloca %"class.AST::PathBinding_Type", align 8
  %95 = alloca %"struct.AST::AbsolutePath", align 8
  %96 = alloca %"class.AST::PathBinding_Type", align 8
  %97 = alloca %"struct.AST::AbsolutePath", align 8
  %98 = alloca %"class.AST::PathBinding_Type", align 8
  %99 = alloca %"struct.AST::AbsolutePath", align 8
  %100 = alloca %"class.AST::PathBinding_Type", align 8
  %101 = alloca %"struct.std::__detail::_Node_const_iterator.607", align 8
  %102 = alloca %"struct.std::__detail::_Node_const_iterator.607", align 8
  %103 = alloca %struct.FmtLambda, align 8
  %104 = alloca %"class.std::function", align 8
  %105 = alloca %class.anon.609, align 8
  %106 = alloca %"struct.AST::AbsolutePath", align 8
  %107 = alloca %"struct.AST::AbsolutePath", align 8
  %108 = alloca %"struct.AST::AbsolutePath", align 8
  %109 = alloca %class.RcString, align 8
  %110 = alloca %"class.std::vector.18", align 8
  %111 = alloca %"class.std::span.502", align 8
  %112 = alloca %"struct.HIR::SimplePath", align 8
  %113 = alloca %class.RcString, align 8
  %114 = alloca %"struct.AST::AbsolutePath", align 8
  %115 = alloca %"class.AST::PathBinding_Value", align 8
  %116 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %117 = alloca %struct.Span, align 8
  %118 = alloca %"class.std::function", align 8
  %119 = alloca %class.anon.647, align 8
  %120 = alloca %"struct.AST::AbsolutePath", align 8
  %121 = alloca %"class.AST::PathBinding_Value", align 8
  %122 = alloca %"struct.AST::AbsolutePath", align 8
  %123 = alloca %"class.AST::PathBinding_Value", align 8
  %124 = alloca %struct.Span, align 8
  %125 = alloca %"class.std::function", align 8
  %126 = alloca %class.anon.648, align 8
  %127 = alloca %"struct.AST::AbsolutePath", align 8
  %128 = alloca %"class.AST::PathBinding_Value", align 8
  %129 = alloca %struct.Span, align 8
  %130 = alloca %"class.std::function", align 8
  %131 = alloca %class.anon.649, align 8
  %132 = alloca %"struct.AST::AbsolutePath", align 8
  %133 = alloca %"class.AST::PathBinding_Value", align 8
  %134 = alloca %"struct.AST::AbsolutePath", align 8
  %135 = alloca %"class.AST::PathBinding_Value", align 8
  %136 = alloca %"struct.std::__detail::_Node_const_iterator.650", align 8
  %137 = alloca %"struct.std::__detail::_Node_const_iterator.650", align 8
  %138 = alloca %struct.FmtLambda, align 8
  %139 = alloca %"class.std::function", align 8
  %140 = alloca %class.anon.652, align 8
  %141 = alloca %"struct.AST::AbsolutePath", align 8
  %142 = alloca %"struct.AST::AbsolutePath", align 8
  %143 = alloca ptr, align 8
  %144 = alloca %"struct.AST::AbsolutePath", align 8
  %145 = alloca %class.RcString, align 8
  %146 = alloca %"class.std::vector.18", align 8
  %147 = alloca [1 x %class.RcString], align 8
  %148 = alloca %"class.std::allocator.20", align 1
  %149 = alloca %"class.AST::PathBinding_Macro", align 8
  %150 = alloca %struct.Span, align 8
  %151 = alloca %"class.std::function", align 8
  %152 = alloca %class.anon.664, align 8
  %153 = alloca %"class.std::span.502", align 8
  %154 = alloca %"struct.AST::AbsolutePath", align 8
  %155 = alloca %class.RcString, align 8
  %156 = alloca %"class.std::vector.18", align 8
  %157 = alloca %"class.std::span.502", align 8
  %158 = alloca %struct.Span, align 8
  %159 = alloca %"class.std::function", align 8
  %160 = alloca %class.anon.665, align 8
  %161 = alloca %"struct.AST::AbsolutePath", align 8
  %162 = alloca %"class.AST::PathBinding_Macro", align 8
  %163 = alloca %"struct.AST::AbsolutePath", align 8
  %164 = alloca %"class.AST::PathBinding_Macro", align 8
  %165 = alloca %"struct.AST::PathBinding_Macro::Data_ProcMacro", align 8
  %166 = alloca %"struct.AST::AbsolutePath", align 8
  %167 = alloca %"class.AST::PathBinding_Macro", align 8
  store i32 %6, ptr %9, align 4, !tbaa !5
  %168 = tail call noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @.str.2)
  br i1 %168, label %169, label %171

169:                                              ; preds = %8
  %170 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %3)
  br label %171

171:                                              ; preds = %169, %8
  tail call void @_ZN3AST4Path8BindingsC2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #8
  %172 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %173 unwind label %192

173:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #8
  store ptr %5, ptr %12, align 8, !tbaa !9
  %174 = getelementptr inbounds i8, ptr %12, i64 8
  store ptr %9, ptr %174, align 8, !tbaa !9
  %175 = getelementptr inbounds i8, ptr %12, i64 16
  store ptr %7, ptr %175, align 8, !tbaa !9
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %176 unwind label %194

176:                                              ; preds = %173
  %177 = select i1 %172, ptr @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE, ptr null
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef %177, ptr noundef nonnull %11)
          to label %178 unwind label %196

178:                                              ; preds = %176
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  %179 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %5)
          to label %180 unwind label %199

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  store ptr %4, ptr %13, align 8, !tbaa !9
  %181 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %182 = load i32, ptr %9, align 4, !tbaa !5
  %183 = zext i32 %182 to i64
  %184 = icmp eq i64 %181, %183
  br i1 %184, label %185, label %.split924

185:                                              ; preds = %180
  %186 = getelementptr inbounds i8, ptr %0, i64 64
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %187 unwind label %201

187:                                              ; preds = %185
  store ptr null, ptr %16, align 8, !tbaa !11
  %188 = getelementptr inbounds i8, ptr %16, i64 8
  store ptr %3, ptr %188, align 8, !tbaa !14
  %189 = getelementptr inbounds i8, ptr %16, i64 16
  %190 = load ptr, ptr %13, align 8, !tbaa !9
  store ptr %190, ptr %189, align 8, !tbaa !15
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %15, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %16)
          to label %191 unwind label %203

191:                                              ; preds = %187
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %186, ptr noundef nonnull %14, ptr noundef nonnull %15)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %.critedge614

192:                                              ; preds = %171
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %1393

194:                                              ; preds = %173
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %198

196:                                              ; preds = %176
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  br label %198

198:                                              ; preds = %196, %194
  %.pn = phi { ptr, i32 } [ %197, %196 ], [ %195, %194 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  br label %1393

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

201:                                              ; preds = %.invoke1161, %.invoke, %1384, %1382, %1380, %1377, %1374, %1371, %1368, %1365, %1361, %1358, %1354, %._crit_edge, %185
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %1391

203:                                              ; preds = %187
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %1391

.split924:                                        ; preds = %180
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #8
  store i32 %182, ptr %17, align 4, !tbaa !5
  %205 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %206 = add i64 %205, -1
  %207 = icmp ugt i64 %206, %183
  br i1 %207, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.split924
  %208 = getelementptr inbounds i8, ptr %7, i64 8
  %209 = getelementptr inbounds i8, ptr %48, i64 8
  br label %210

210:                                              ; preds = %.lr.ph, %.thread619
  %211 = load i32, ptr %17, align 4, !tbaa !5
  %212 = zext i32 %211 to i64
  %213 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %212) #8
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %213)
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %208, ptr noundef nonnull align 8 dereferenceable(8) %214)
          to label %215 unwind label %233

215:                                              ; preds = %210
  %216 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %217 unwind label %233

217:                                              ; preds = %215
  br i1 %216, label %218, label %240

218:                                              ; preds = %217
  %219 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %219, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %221 unwind label %233

221:                                              ; preds = %218
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef nonnull @.str.44)
          to label %223 unwind label %233

223:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  store ptr %13, ptr %20, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull %19)
          to label %224 unwind label %235

224:                                              ; preds = %223
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %226 unwind label %237

226:                                              ; preds = %224
  %227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull @.str.45)
          to label %228 unwind label %237

228:                                              ; preds = %226
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %230 unwind label %237

230:                                              ; preds = %228
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %232 unwind label %237

232:                                              ; preds = %230
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br label %240

233:                                              ; preds = %221, %218, %215, %210
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %530

235:                                              ; preds = %223
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %239

237:                                              ; preds = %230, %228, %226, %224
  %238 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %239

239:                                              ; preds = %237, %235
  %.pn457 = phi { ptr, i32 } [ %238, %237 ], [ %236, %235 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br label %530

240:                                              ; preds = %232, %217
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  %241 = load ptr, ptr %13, align 8, !tbaa !9
  %242 = getelementptr inbounds i8, ptr %241, i64 80
  %243 = load i32, ptr %17, align 4, !tbaa !5
  %244 = zext i32 %243 to i64
  %245 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %244) #8
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %245)
  %247 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %242, ptr noundef nonnull align 8 dereferenceable(8) %246)
          to label %248 unwind label %.loopexit703

248:                                              ; preds = %240
  store ptr %247, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  %249 = load ptr, ptr %13, align 8, !tbaa !9
  %250 = getelementptr inbounds i8, ptr %249, i64 80
  %251 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %250) #8
  store ptr %251, ptr %22, align 8
  %252 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br i1 %252, label %253, label %272

253:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %254 unwind label %262

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  store ptr %179, ptr %25, align 8, !tbaa !9
  %255 = getelementptr inbounds i8, ptr %25, i64 8
  store ptr %17, ptr %255, align 8, !tbaa !9
  %256 = getelementptr inbounds i8, ptr %25, i64 16
  store ptr %5, ptr %256, align 8, !tbaa !9
  %257 = getelementptr inbounds i8, ptr %25, i64 24
  store ptr %7, ptr %257, align 8, !tbaa !9
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %258 unwind label %264

258:                                              ; preds = %254
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %23, i32 noundef 0, ptr noundef nonnull %24)
          to label %259 unwind label %266

259:                                              ; preds = %258
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  %260 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %260, ptr noundef nonnull @.str.14)
          to label %261 unwind label %270

261:                                              ; preds = %259
  invoke void @__cxa_throw(ptr nonnull %260, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %.loopexit.split-lp704

.loopexit703:                                     ; preds = %240, %272, %275, %278, %281, %283, %289, %291, %297, %299, %301
  %lpad.loopexit705 = landingpad { ptr, i32 }
          cleanup
  br label %528

.loopexit.split-lp704:                            ; preds = %261
  %lpad.loopexit.split-lp706 = landingpad { ptr, i32 }
          cleanup
  br label %528

262:                                              ; preds = %253
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %269

264:                                              ; preds = %254
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %268

266:                                              ; preds = %258
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %268

268:                                              ; preds = %266, %264
  %.pn603 = phi { ptr, i32 } [ %267, %266 ], [ %265, %264 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  br label %269

269:                                              ; preds = %268, %262
  %.pn603.pn = phi { ptr, i32 } [ %.pn603, %268 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %528

270:                                              ; preds = %259
  %271 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %260) #8
  br label %528

272:                                              ; preds = %248
  %273 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %274 unwind label %.loopexit703

274:                                              ; preds = %272
  br i1 %273, label %275, label %.split878

275:                                              ; preds = %274
  %276 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %276, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %278 unwind label %.loopexit703

278:                                              ; preds = %275
  %279 = load i32, ptr %17, align 4, !tbaa !5
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %277, i32 noundef %279)
          to label %281 unwind label %.loopexit703

281:                                              ; preds = %278
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull @.str.46)
          to label %283 unwind label %.loopexit703

283:                                              ; preds = %281
  %284 = load i32, ptr %17, align 4, !tbaa !5
  %285 = zext i32 %284 to i64
  %286 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %285) #8
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %286)
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull align 8 dereferenceable(8) %287)
          to label %289 unwind label %.loopexit703

289:                                              ; preds = %283
  %290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %288, ptr noundef nonnull @.str.31)
          to label %291 unwind label %.loopexit703

291:                                              ; preds = %289
  %292 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %293 = getelementptr inbounds i8, ptr %292, i64 8
  %294 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %293) #8
  %295 = getelementptr inbounds i8, ptr %294, i64 16
  %296 = invoke noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408) %295)
          to label %297 unwind label %.loopexit703

297:                                              ; preds = %291
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef %296)
          to label %299 unwind label %.loopexit703

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %301 unwind label %.loopexit703

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.split878 unwind label %.loopexit703

.split878:                                        ; preds = %301, %274
  %303 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %304 = getelementptr inbounds i8, ptr %303, i64 8
  %305 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %304) #8
  %306 = getelementptr inbounds i8, ptr %305, i64 16
  %307 = call noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %306)
  switch i32 %307, label %.split827 [
    i32 0, label %.split829
    i32 1, label %.preheader699
    i32 2, label %.preheader700
    i32 6, label %.split831
  ]

.preheader700:                                    ; preds = %.split878
  %308 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %306)
  store ptr %308, ptr %13, align 8, !tbaa !9
  br label %.thread619

.preheader699:                                    ; preds = %.split878
  %309 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %306)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #8
  store i8 0, ptr %29, align 1, !tbaa !16
  %310 = invoke noundef ptr @_ZN12_GLOBAL__N_123get_hir_modenum_by_pathERK4SpanRKN3AST5CrateERKN3HIR10SimplePathERb(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %330 unwind label %.loopexit693.split.split.split.split

311:                                              ; preds = %319
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %528

.split829:                                        ; preds = %.split878
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 819, ptr noundef nonnull @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

.split827:                                        ; preds = %.split878
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %313 unwind label %320

313:                                              ; preds = %.split827
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #8
  store ptr %5, ptr %28, align 8, !tbaa !9
  %314 = getelementptr inbounds i8, ptr %28, i64 8
  store ptr %17, ptr %314, align 8, !tbaa !9
  %315 = getelementptr inbounds i8, ptr %28, i64 16
  store ptr %21, ptr %315, align 8, !tbaa !9
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %316 unwind label %322

316:                                              ; preds = %313
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %26, i32 noundef 0, ptr noundef nonnull %27)
          to label %317 unwind label %324

317:                                              ; preds = %316
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  %318 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %318, ptr noundef nonnull @.str.14)
          to label %319 unwind label %328

319:                                              ; preds = %317
  invoke void @__cxa_throw(ptr nonnull %318, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %311

320:                                              ; preds = %.split827
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %327

322:                                              ; preds = %313
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %326

324:                                              ; preds = %316
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %326

326:                                              ; preds = %324, %322
  %.pn598 = phi { ptr, i32 } [ %325, %324 ], [ %323, %322 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  br label %327

327:                                              ; preds = %326, %320
  %.pn598.pn = phi { ptr, i32 } [ %.pn598, %326 ], [ %321, %320 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  br label %528

328:                                              ; preds = %317
  %329 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %318) #8
  br label %528

330:                                              ; preds = %.preheader699
  %.not470 = icmp eq ptr %310, null
  br i1 %.not470, label %.split, label %348

.split:                                           ; preds = %330
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %331 unwind label %338

331:                                              ; preds = %.split
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #8
  store ptr %179, ptr %32, align 8, !tbaa !9
  %332 = getelementptr inbounds i8, ptr %32, i64 8
  store ptr %17, ptr %332, align 8, !tbaa !9
  %333 = getelementptr inbounds i8, ptr %32, i64 16
  store ptr %5, ptr %333, align 8, !tbaa !9
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %334 unwind label %340

334:                                              ; preds = %331
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull %31)
          to label %335 unwind label %342

335:                                              ; preds = %334
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  %336 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %336, ptr noundef nonnull @.str.5)
          to label %337 unwind label %346

337:                                              ; preds = %335
  invoke void @__cxa_throw(ptr nonnull %336, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %.loopexit.split-lp694

.loopexit693.split.split.split.split:             ; preds = %.preheader699, %435
  %lpad.loopexit695 = landingpad { ptr, i32 }
          cleanup
  br label %445

.loopexit.split-lp694:                            ; preds = %337
  %lpad.loopexit.split-lp696 = landingpad { ptr, i32 }
          cleanup
  br label %445

338:                                              ; preds = %.split
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %345

340:                                              ; preds = %331
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %344

342:                                              ; preds = %334
  %343 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %344

344:                                              ; preds = %342, %340
  %.pn471 = phi { ptr, i32 } [ %343, %342 ], [ %341, %340 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  br label %345

345:                                              ; preds = %344, %338
  %.pn471.pn = phi { ptr, i32 } [ %.pn471, %344 ], [ %339, %338 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  br label %445

346:                                              ; preds = %335
  %347 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %336) #8
  br label %445

348:                                              ; preds = %330
  %349 = load i8, ptr %29, align 1, !tbaa !16, !range !18, !noundef !19
  %350 = trunc nuw i8 %349 to i1
  br i1 %350, label %.split750, label %435

.split750:                                        ; preds = %348
  %351 = load i32, ptr %17, align 4, !tbaa !5
  %352 = add i32 %351, 1
  store i32 %352, ptr %17, align 4, !tbaa !5
  %353 = zext i32 %352 to i64
  %354 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %355 = add i64 %354, -1
  %.not474 = icmp eq i64 %355, %353
  br i1 %.not474, label %370, label %356

356:                                              ; preds = %.split750
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %357 unwind label %361

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %33, i32 noundef 0, ptr noundef nonnull %34)
          to label %358 unwind label %363

358:                                              ; preds = %357
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  %359 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %359, ptr noundef nonnull @.str.14)
          to label %360 unwind label %366

360:                                              ; preds = %358
  invoke void @__cxa_throw(ptr nonnull %359, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %368

361:                                              ; preds = %356
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %365

363:                                              ; preds = %357
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  br label %365

365:                                              ; preds = %363, %361
  %.pn593 = phi { ptr, i32 } [ %364, %363 ], [ %362, %361 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  br label %445

366:                                              ; preds = %358
  %367 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %359) #8
  br label %445

368:                                              ; preds = %360
  %369 = landingpad { ptr, i32 }
          cleanup
  br label %445

370:                                              ; preds = %.split750
  %371 = load i32, ptr %17, align 4, !tbaa !5
  %372 = zext i32 %371 to i64
  %373 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %372) #8
  %374 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %373)
  %375 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %310, ptr noundef nonnull align 8 dereferenceable(8) %374)
          to label %376 unwind label %383

376:                                              ; preds = %370
  %377 = icmp eq i64 %375, -1
  br i1 %377, label %378, label %392

378:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %379 unwind label %385

379:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  store ptr %5, ptr %38, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %36, i32 noundef 0, ptr noundef nonnull %37)
          to label %380 unwind label %387

380:                                              ; preds = %379
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  %381 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %381, ptr noundef nonnull @.str.14)
          to label %382 unwind label %390

382:                                              ; preds = %380
  invoke void @__cxa_throw(ptr nonnull %381, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %383

383:                                              ; preds = %423, %412, %401, %392, %382, %370
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %445

385:                                              ; preds = %378
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %389

387:                                              ; preds = %379
  %388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br label %389

389:                                              ; preds = %387, %385
  %.pn589 = phi { ptr, i32 } [ %388, %387 ], [ %386, %385 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  br label %445

390:                                              ; preds = %380
  %391 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %381) #8
  br label %445

392:                                              ; preds = %376
  %393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %394 unwind label %383

394:                                              ; preds = %392
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %393)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #8
  %396 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %397 unwind label %419

397:                                              ; preds = %394
  %398 = extractvalue { ptr, i64 } %396, 0
  store ptr %398, ptr %40, align 8
  %399 = getelementptr inbounds i8, ptr %40, i64 8
  %400 = extractvalue { ptr, i64 } %396, 1
  store i64 %400, ptr %399, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.18") align 8 %39, ptr noundef nonnull align 8 dereferenceable(16) %40)
          to label %401 unwind label %419

401:                                              ; preds = %397
  %402 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %208, ptr noundef nonnull align 8 dereferenceable(24) %39) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #8
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %208, ptr noundef nonnull align 8 dereferenceable(8) %374)
          to label %403 unwind label %383

403:                                              ; preds = %401
  %404 = getelementptr inbounds i8, ptr %310, i64 104
  %405 = call noundef zeroext i1 @_ZNK3HIR4Enum5Class7is_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %404)
  br i1 %405, label %406, label %423

406:                                              ; preds = %403
  %407 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %404)
  %408 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %375) #8
  %409 = getelementptr inbounds i8, ptr %408, i64 8
  %410 = load i8, ptr %409, align 8, !tbaa !20, !range !18, !noundef !19
  %411 = trunc nuw i8 %410 to i1
  br i1 %411, label %412, label %423

412:                                              ; preds = %406
  %413 = getelementptr inbounds i8, ptr %0, i64 64
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %414 unwind label %383

414:                                              ; preds = %412
  store ptr null, ptr %43, align 8, !tbaa !24
  %415 = getelementptr inbounds i8, ptr %43, i64 8
  %416 = trunc i64 %375 to i32
  store i32 %416, ptr %415, align 8, !tbaa !26
  %417 = getelementptr inbounds i8, ptr %43, i64 16
  store ptr %310, ptr %417, align 8, !tbaa !27
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %42, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %43)
          to label %418 unwind label %421

418:                                              ; preds = %414
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %413, ptr noundef nonnull %41, ptr noundef nonnull %42)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %446

419:                                              ; preds = %397, %394
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %39) #8
  br label %445

421:                                              ; preds = %414
  %422 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %445

423:                                              ; preds = %406, %403
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %424 unwind label %383

424:                                              ; preds = %423
  store ptr null, ptr %46, align 8, !tbaa !28
  %425 = getelementptr inbounds i8, ptr %46, i64 8
  %426 = trunc i64 %375 to i32
  store i32 %426, ptr %425, align 8, !tbaa !30
  %427 = getelementptr inbounds i8, ptr %46, i64 16
  store ptr %310, ptr %427, align 8, !tbaa !31
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %45, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %46)
          to label %428 unwind label %430

428:                                              ; preds = %424
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %44, ptr noundef nonnull %45)
          to label %429 unwind label %432

429:                                              ; preds = %428
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %446

430:                                              ; preds = %424
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %434

432:                                              ; preds = %428
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %434

434:                                              ; preds = %432, %430
  %.pn475 = phi { ptr, i32 } [ %433, %432 ], [ %431, %430 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %445

435:                                              ; preds = %348
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %437 unwind label %.loopexit693.split.split.split.split

437:                                              ; preds = %435
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %436)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #8
  %439 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %440 unwind label %.split755.split.split.split

440:                                              ; preds = %437
  %441 = extractvalue { ptr, i64 } %439, 0
  store ptr %441, ptr %48, align 8
  %442 = extractvalue { ptr, i64 } %439, 1
  store i64 %442, ptr %209, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.18") align 8 %47, ptr noundef nonnull align 8 dereferenceable(16) %48)
          to label %..loopexit692_crit_edge unwind label %.split755.split.split.split

.split755.split.split.split:                      ; preds = %440, %437
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %47) #8
  br label %445

..loopexit692_crit_edge:                          ; preds = %440
  %444 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %208, ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %47) #8
  store ptr %310, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #8
  br label %.thread619

445:                                              ; preds = %.loopexit693.split.split.split.split, %.loopexit.split-lp694, %365, %366, %368, %434, %421, %419, %390, %389, %383, %.split755.split.split.split, %346, %345
  %.pn595.pn = phi { ptr, i32 } [ %443, %.split755.split.split.split ], [ %347, %346 ], [ %.pn471.pn, %345 ], [ %369, %368 ], [ %367, %366 ], [ %.pn593, %365 ], [ %384, %383 ], [ %391, %390 ], [ %.pn589, %389 ], [ %422, %421 ], [ %.pn475, %434 ], [ %420, %419 ], [ %lpad.loopexit695, %.loopexit693.split.split.split.split ], [ %lpad.loopexit.split-lp696, %.loopexit.split-lp694 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #8
  br label %528

446:                                              ; preds = %418, %429
  %.sink = phi ptr [ %41, %418 ], [ %44, %429 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #8
  br label %529

.split831:                                        ; preds = %.split878
  %447 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %306)
  %448 = load i32, ptr %17, align 4, !tbaa !5
  %449 = add i32 %448, 1
  store i32 %449, ptr %17, align 4, !tbaa !5
  %450 = zext i32 %449 to i64
  %451 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %452 = add i64 %451, -1
  %.not = icmp eq i64 %452, %450
  br i1 %.not, label %467, label %455

453:                                              ; preds = %459
  %454 = landingpad { ptr, i32 }
          cleanup
  br label %528

455:                                              ; preds = %.split831
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %456 unwind label %460

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %49, i32 noundef 0, ptr noundef nonnull %50)
          to label %457 unwind label %462

457:                                              ; preds = %456
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #8
  %458 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %458, ptr noundef nonnull @.str.14)
          to label %459 unwind label %465

459:                                              ; preds = %457
  invoke void @__cxa_throw(ptr nonnull %458, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %453

460:                                              ; preds = %455
  %461 = landingpad { ptr, i32 }
          cleanup
  br label %464

462:                                              ; preds = %456
  %463 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  br label %464

464:                                              ; preds = %462, %460
  %.pn466 = phi { ptr, i32 } [ %463, %462 ], [ %461, %460 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #8
  br label %528

465:                                              ; preds = %457
  %466 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %458) #8
  br label %528

467:                                              ; preds = %.split831
  %468 = load i32, ptr %17, align 4, !tbaa !5
  %469 = zext i32 %468 to i64
  %470 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %179, i64 noundef %469) #8
  %471 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %470)
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %208, ptr noundef nonnull align 8 dereferenceable(8) %471)
          to label %472 unwind label %481

472:                                              ; preds = %467
  %473 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %447, ptr noundef nonnull align 8 dereferenceable(8) %471)
          to label %474 unwind label %483

474:                                              ; preds = %472
  %475 = icmp eq i64 %473, -1
  br i1 %475, label %476, label %492

476:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %477 unwind label %485

477:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #8
  store ptr %5, ptr %54, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 0, ptr noundef nonnull %53)
          to label %478 unwind label %487

478:                                              ; preds = %477
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  %479 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %479, ptr noundef nonnull @.str.14)
          to label %480 unwind label %490

480:                                              ; preds = %478
  invoke void @__cxa_throw(ptr nonnull %479, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %483

481:                                              ; preds = %467
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %528

483:                                              ; preds = %510, %501, %480, %472
  %484 = landingpad { ptr, i32 }
          cleanup
  br label %528

485:                                              ; preds = %476
  %486 = landingpad { ptr, i32 }
          cleanup
  br label %489

487:                                              ; preds = %477
  %488 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  br label %489

489:                                              ; preds = %487, %485
  %.pn461 = phi { ptr, i32 } [ %488, %487 ], [ %486, %485 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  br label %528

490:                                              ; preds = %478
  %491 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %479) #8
  br label %528

492:                                              ; preds = %474
  %493 = getelementptr inbounds i8, ptr %447, i64 104
  %494 = call noundef zeroext i1 @_ZNK3HIR4Enum5Class7is_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %493)
  br i1 %494, label %495, label %510

495:                                              ; preds = %492
  %496 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %493)
  %497 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %496, i64 noundef %473) #8
  %498 = getelementptr inbounds i8, ptr %497, i64 8
  %499 = load i8, ptr %498, align 8, !tbaa !20, !range !18, !noundef !19
  %500 = trunc nuw i8 %499 to i1
  br i1 %500, label %501, label %510

501:                                              ; preds = %495
  %502 = getelementptr inbounds i8, ptr %0, i64 64
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %503 unwind label %483

503:                                              ; preds = %501
  store ptr null, ptr %57, align 8, !tbaa !24
  %504 = getelementptr inbounds i8, ptr %57, i64 8
  %505 = trunc i64 %473 to i32
  store i32 %505, ptr %504, align 8, !tbaa !26
  %506 = getelementptr inbounds i8, ptr %57, i64 16
  store ptr %447, ptr %506, align 8, !tbaa !27
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %56, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %57)
          to label %507 unwind label %508

507:                                              ; preds = %503
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %502, ptr noundef nonnull %55, ptr noundef nonnull %56)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %529

508:                                              ; preds = %503
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %528

510:                                              ; preds = %495, %492
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %511 unwind label %483

511:                                              ; preds = %510
  store ptr null, ptr %60, align 8, !tbaa !28
  %512 = getelementptr inbounds i8, ptr %60, i64 8
  %513 = trunc i64 %473 to i32
  store i32 %513, ptr %512, align 8, !tbaa !30
  %514 = getelementptr inbounds i8, ptr %60, i64 16
  store ptr %447, ptr %514, align 8, !tbaa !31
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %59, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %60)
          to label %515 unwind label %517

515:                                              ; preds = %511
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %58, ptr noundef nonnull %59)
          to label %516 unwind label %519

516:                                              ; preds = %515
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %529

517:                                              ; preds = %511
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %521

519:                                              ; preds = %515
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %521

521:                                              ; preds = %519, %517
  %.pn459 = phi { ptr, i32 } [ %520, %519 ], [ %518, %517 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %528

.thread619:                                       ; preds = %.preheader700, %..loopexit692_crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  %522 = load i32, ptr %17, align 4, !tbaa !5
  %523 = add i32 %522, 1
  store i32 %523, ptr %17, align 4, !tbaa !5
  %524 = zext i32 %523 to i64
  %525 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %526 = add i64 %525, -1
  %527 = icmp ugt i64 %526, %524
  br i1 %527, label %210, label %._crit_edge, !llvm.loop !32

528:                                              ; preds = %.loopexit703, %.loopexit.split-lp704, %311, %327, %328, %445, %481, %521, %508, %490, %489, %483, %465, %464, %453, %270, %269
  %.pn606 = phi { ptr, i32 } [ %271, %270 ], [ %.pn603.pn, %269 ], [ %312, %311 ], [ %329, %328 ], [ %.pn598.pn, %327 ], [ %.pn595.pn, %445 ], [ %454, %453 ], [ %466, %465 ], [ %.pn466, %464 ], [ %482, %481 ], [ %484, %483 ], [ %491, %490 ], [ %.pn461, %489 ], [ %509, %508 ], [ %.pn459, %521 ], [ %lpad.loopexit705, %.loopexit703 ], [ %lpad.loopexit.split-lp706, %.loopexit.split-lp704 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %530

529:                                              ; preds = %507, %516, %446
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  br label %1390

530:                                              ; preds = %528, %239, %233
  %.pn606.pn = phi { ptr, i32 } [ %.pn606, %528 ], [ %.pn457, %239 ], [ %234, %233 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  br label %1391

._crit_edge:                                      ; preds = %.thread619, %.split924
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  %531 = getelementptr inbounds i8, ptr %7, i64 8
  %532 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %533 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %532)
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %531, ptr noundef nonnull align 8 dereferenceable(8) %533)
          to label %534 unwind label %201

534:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #8
  %535 = load ptr, ptr %13, align 8, !tbaa !9
  %536 = getelementptr inbounds i8, ptr %535, i64 80
  %537 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %538 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %537)
  %539 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %536, ptr noundef nonnull align 8 dereferenceable(8) %538)
          to label %540 unwind label %561

540:                                              ; preds = %534
  store ptr %539, ptr %61, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #8
  %541 = load ptr, ptr %13, align 8, !tbaa !9
  %542 = getelementptr inbounds i8, ptr %541, i64 80
  %543 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %542) #8
  store ptr %543, ptr %62, align 8
  %544 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #8
  br i1 %544, label %545, label %568

545:                                              ; preds = %540
  %546 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %547 unwind label %561

547:                                              ; preds = %545
  br i1 %546, label %548, label %821

548:                                              ; preds = %547
  %549 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %549, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %551 unwind label %561

551:                                              ; preds = %548
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %550, ptr noundef nonnull @.str.47)
          to label %553 unwind label %561

553:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #8
  store ptr %13, ptr %65, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull %64)
          to label %554 unwind label %563

554:                                              ; preds = %553
  %555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %552, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %556 unwind label %565

556:                                              ; preds = %554
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %558 unwind label %565

558:                                              ; preds = %556
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %557, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %560 unwind label %565

560:                                              ; preds = %558
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  br label %821

561:                                              ; preds = %599, %597, %595, %593, %587, %585, %581, %579, %576, %573, %551, %548, %545, %534
  %562 = landingpad { ptr, i32 }
          cleanup
  br label %848

563:                                              ; preds = %553
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %567

565:                                              ; preds = %558, %556, %554
  %566 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %567

567:                                              ; preds = %565, %563
  %.pn510 = phi { ptr, i32 } [ %566, %565 ], [ %564, %563 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  br label %848

568:                                              ; preds = %540
  %569 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  %570 = getelementptr inbounds i8, ptr %569, i64 8
  %571 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %570) #8
  %572 = call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %571)
  br i1 %572, label %601, label %573

573:                                              ; preds = %568
  %574 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %575 unwind label %561

575:                                              ; preds = %573
  br i1 %574, label %576, label %821

576:                                              ; preds = %575
  %577 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %577, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %579 unwind label %561

579:                                              ; preds = %576
  %580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %578, ptr noundef nonnull @.str.48)
          to label %581 unwind label %561

581:                                              ; preds = %579
  %582 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %583 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %582)
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %580, ptr noundef nonnull align 8 dereferenceable(8) %583)
          to label %585 unwind label %561

585:                                              ; preds = %581
  %586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %584, ptr noundef nonnull @.str.31)
          to label %587 unwind label %561

587:                                              ; preds = %585
  %588 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  %589 = getelementptr inbounds i8, ptr %588, i64 8
  %590 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %589) #8
  %591 = getelementptr inbounds i8, ptr %590, i64 16
  %592 = invoke noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408) %591)
          to label %593 unwind label %561

593:                                              ; preds = %587
  %594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %586, ptr noundef %592)
          to label %595 unwind label %561

595:                                              ; preds = %593
  %596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %594, ptr noundef nonnull @.str.49)
          to label %597 unwind label %561

597:                                              ; preds = %595
  %598 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %599 unwind label %561

599:                                              ; preds = %597
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %598, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %821 unwind label %561

601:                                              ; preds = %568
  %602 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  %603 = getelementptr inbounds i8, ptr %602, i64 8
  %604 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %603) #8
  %605 = getelementptr inbounds i8, ptr %604, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %606 unwind label %629

606:                                              ; preds = %601
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %607 unwind label %631

607:                                              ; preds = %606
  %608 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %609 unwind label %633

609:                                              ; preds = %607
  br i1 %608, label %610, label %635

610:                                              ; preds = %609
  %611 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %612 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %611, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %613 unwind label %633

613:                                              ; preds = %610
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %612, ptr noundef nonnull @.str.48)
          to label %615 unwind label %633

615:                                              ; preds = %613
  %616 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %617 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %616)
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %614, ptr noundef nonnull align 8 dereferenceable(8) %617)
          to label %619 unwind label %633

619:                                              ; preds = %615
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef nonnull @.str.31)
          to label %621 unwind label %633

621:                                              ; preds = %619
  %622 = invoke noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408) %605)
          to label %623 unwind label %633

623:                                              ; preds = %621
  %624 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef %622)
          to label %625 unwind label %633

625:                                              ; preds = %623
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %624, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %627 unwind label %633

627:                                              ; preds = %625
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %626, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %635 unwind label %633

629:                                              ; preds = %601
  %630 = landingpad { ptr, i32 }
          cleanup
  br label %820

631:                                              ; preds = %606
  %632 = landingpad { ptr, i32 }
          cleanup
  br label %819

633:                                              ; preds = %723, %627, %625, %623, %621, %619, %615, %613, %610, %607
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %818

635:                                              ; preds = %627, %609
  %636 = call noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %605)
  br i1 %636, label %637, label %723

637:                                              ; preds = %635
  %638 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %605)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #8
  %639 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %638)
          to label %640 unwind label %672

640:                                              ; preds = %637
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %639)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #8
  %641 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %638)
          to label %642 unwind label %674

642:                                              ; preds = %640
  %643 = extractvalue { ptr, i64 } %641, 0
  store ptr %643, ptr %71, align 8
  %644 = getelementptr inbounds i8, ptr %71, i64 8
  %645 = extractvalue { ptr, i64 } %641, 1
  store i64 %645, ptr %644, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.18") align 8 %70, ptr noundef nonnull align 8 dereferenceable(16) %71)
          to label %646 unwind label %674

646:                                              ; preds = %642
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull %69, ptr noundef nonnull %70)
          to label %647 unwind label %676

647:                                              ; preds = %646
  %648 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %68)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %70) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %638)
          to label %650 unwind label %680

650:                                              ; preds = %647
  %651 = getelementptr inbounds i8, ptr %2, i64 576
  %652 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %651, ptr noundef nonnull align 8 dereferenceable(8) %649)
          to label %653 unwind label %680

653:                                              ; preds = %650
  %654 = getelementptr inbounds i8, ptr %638, i64 8
  %655 = load i8, ptr %654, align 8, !tbaa !34, !range !18, !noundef !19
  %656 = trunc nuw i8 %655 to i1
  br i1 %656, label %657, label %699

657:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #8
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %638)
          to label %658 unwind label %682

658:                                              ; preds = %657
  invoke void @_ZN3HIR10SimplePath13pop_componentEv(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %73, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %659 unwind label %684

659:                                              ; preds = %658
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #8
  %660 = getelementptr inbounds i8, ptr %652, i64 48
  %661 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %660)
  %662 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %661, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %72, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %663 unwind label %686

663:                                              ; preds = %659
  %664 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %662)
  %665 = getelementptr inbounds i8, ptr %638, i64 12
  %666 = load i32, ptr %665, align 4, !tbaa !38
  %667 = invoke noundef i64 @_ZNK3HIR4Enum12num_variantsEv(ptr noundef nonnull align 8 dereferenceable(200) %664)
          to label %668 unwind label %686

668:                                              ; preds = %663
  %669 = zext i32 %666 to i64
  %670 = icmp ugt i64 %667, %669
  br i1 %670, label %688, label %671

671:                                              ; preds = %668
  call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.4, i32 noundef 910, ptr noundef nonnull @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

672:                                              ; preds = %637
  %673 = landingpad { ptr, i32 }
          cleanup
  br label %679

674:                                              ; preds = %642, %640
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %678

676:                                              ; preds = %646
  %677 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %70) #8
  br label %678

678:                                              ; preds = %676, %674
  %.pn477 = phi { ptr, i32 } [ %677, %676 ], [ %675, %674 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %679

679:                                              ; preds = %678, %672
  %.pn477.pn = phi { ptr, i32 } [ %.pn477, %678 ], [ %673, %672 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  br label %818

680:                                              ; preds = %719, %706, %650, %647
  %681 = landingpad { ptr, i32 }
          cleanup
  br label %818

682:                                              ; preds = %657
  %683 = landingpad { ptr, i32 }
          cleanup
  br label %698

684:                                              ; preds = %658
  %685 = landingpad { ptr, i32 }
          cleanup
  br label %697

686:                                              ; preds = %688, %663, %659
  %687 = landingpad { ptr, i32 }
          cleanup
  br label %697

688:                                              ; preds = %668
  %689 = getelementptr inbounds i8, ptr %0, i64 64
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %690 unwind label %686

690:                                              ; preds = %688
  store ptr null, ptr %76, align 8, !tbaa !24
  %691 = getelementptr inbounds i8, ptr %76, i64 8
  %692 = load i32, ptr %665, align 4, !tbaa !38
  store i32 %692, ptr %691, align 8, !tbaa !26
  %693 = getelementptr inbounds i8, ptr %76, i64 16
  store ptr %664, ptr %693, align 8, !tbaa !27
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %75, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %76)
          to label %694 unwind label %695

694:                                              ; preds = %690
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %689, ptr noundef nonnull %74, ptr noundef nonnull %75)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  br label %723

695:                                              ; preds = %690
  %696 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %697

697:                                              ; preds = %686, %695, %684
  %.pn480.pn = phi { ptr, i32 } [ %685, %684 ], [ %696, %695 ], [ %687, %686 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br label %698

698:                                              ; preds = %697, %682
  %.pn480.pn.pn = phi { ptr, i32 } [ %.pn480.pn, %697 ], [ %683, %682 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #8
  br label %818

699:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %77) #8
  %700 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %638)
          to label %701 unwind label %715

701:                                              ; preds = %699
  %702 = extractvalue { ptr, i64 } %700, 0
  store ptr %702, ptr %77, align 8
  %703 = getelementptr inbounds i8, ptr %77, i64 8
  %704 = extractvalue { ptr, i64 } %700, 1
  store i64 %704, ptr %703, align 8
  %705 = call noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %77)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #8
  br i1 %705, label %706, label %719

706:                                              ; preds = %701
  %707 = getelementptr inbounds i8, ptr %0, i64 64
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %708 unwind label %680

708:                                              ; preds = %706
  store ptr null, ptr %80, align 8, !tbaa !11
  %709 = getelementptr inbounds i8, ptr %80, i64 8
  store ptr %652, ptr %709, align 8, !tbaa !14
  %710 = getelementptr inbounds i8, ptr %80, i64 16
  %711 = getelementptr inbounds i8, ptr %652, i64 48
  %712 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %711)
  %713 = getelementptr inbounds i8, ptr %712, i64 16
  store ptr %713, ptr %710, align 8, !tbaa !15
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %79, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %80)
          to label %714 unwind label %717

714:                                              ; preds = %708
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %707, ptr noundef nonnull %78, ptr noundef nonnull %79)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %723

715:                                              ; preds = %699
  %716 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #8
  br label %818

717:                                              ; preds = %708
  %718 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %818

719:                                              ; preds = %701
  %720 = getelementptr inbounds i8, ptr %652, i64 48
  %721 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %720)
  %722 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %721, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %638, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %723 unwind label %680

723:                                              ; preds = %694, %714, %719, %635
  %.1432 = phi ptr [ %605, %635 ], [ %605, %694 ], [ %605, %714 ], [ %722, %719 ]
  %724 = getelementptr inbounds i8, ptr %0, i64 64
  %725 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %724)
          to label %726 unwind label %633

726:                                              ; preds = %723
  br i1 %725, label %727, label %817

727:                                              ; preds = %726
  %728 = call noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  switch i32 %728, label %817 [
    i32 0, label %729
    i32 1, label %730
    i32 2, label %751
    i32 3, label %761
    i32 5, label %769
    i32 6, label %777
    i32 7, label %785
    i32 8, label %793
    i32 9, label %801
    i32 4, label %809
  ]

729:                                              ; preds = %727
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 954, ptr noundef nonnull @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

730:                                              ; preds = %727
  %731 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %732 unwind label %741

732:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %83) #8
  store ptr %5, ptr %83, align 8, !tbaa !9
  %733 = getelementptr inbounds i8, ptr %83, i64 8
  store ptr %61, ptr %733, align 8, !tbaa !9
  %734 = getelementptr inbounds i8, ptr %83, i64 16
  store ptr %731, ptr %734, align 8, !tbaa !9
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(24) %83)
          to label %735 unwind label %743

735:                                              ; preds = %732
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull %82)
          to label %736 unwind label %745

736:                                              ; preds = %735
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %83) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  %737 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %737, ptr noundef nonnull @.str.5)
          to label %738 unwind label %749

738:                                              ; preds = %736
  invoke void @__cxa_throw(ptr nonnull %737, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %739

739:                                              ; preds = %738
  %740 = landingpad { ptr, i32 }
          cleanup
  br label %818

741:                                              ; preds = %730
  %742 = landingpad { ptr, i32 }
          cleanup
  br label %748

743:                                              ; preds = %732
  %744 = landingpad { ptr, i32 }
          cleanup
  br label %747

745:                                              ; preds = %735
  %746 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %747

747:                                              ; preds = %745, %743
  %.pn502 = phi { ptr, i32 } [ %746, %745 ], [ %744, %743 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %83) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  br label %748

748:                                              ; preds = %747, %741
  %.pn502.pn = phi { ptr, i32 } [ %.pn502, %747 ], [ %742, %741 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  br label %818

749:                                              ; preds = %736
  %750 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %737) #8
  br label %818

751:                                              ; preds = %727
  %752 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %753 unwind label %757

753:                                              ; preds = %751
  store ptr null, ptr %86, align 8, !tbaa !11
  %754 = getelementptr inbounds i8, ptr %86, i64 8
  store ptr %3, ptr %754, align 8, !tbaa !14
  %755 = getelementptr inbounds i8, ptr %86, i64 16
  store ptr %752, ptr %755, align 8, !tbaa !15
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %85, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %86)
          to label %756 unwind label %759

756:                                              ; preds = %753
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %84, ptr noundef nonnull %85)
  br label %.sink.split

757:                                              ; preds = %751
  %758 = landingpad { ptr, i32 }
          cleanup
  br label %818

759:                                              ; preds = %753
  %760 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %818

761:                                              ; preds = %727
  %762 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK3HIR8TypeItem12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %763 unwind label %765

763:                                              ; preds = %761
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %88, ptr null)
          to label %764 unwind label %767

764:                                              ; preds = %763
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %87, ptr noundef nonnull %88)
  br label %.sink.split

765:                                              ; preds = %761
  %766 = landingpad { ptr, i32 }
          cleanup
  br label %818

767:                                              ; preds = %763
  %768 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %818

769:                                              ; preds = %727
  %770 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3HIR8TypeItem13as_ExternTypeEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %771 unwind label %773

771:                                              ; preds = %769
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %90, ptr null)
          to label %772 unwind label %775

772:                                              ; preds = %771
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %89, ptr noundef nonnull %90)
  br label %.sink.split

773:                                              ; preds = %769
  %774 = landingpad { ptr, i32 }
          cleanup
  br label %818

775:                                              ; preds = %771
  %776 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %818

777:                                              ; preds = %727
  %778 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %779 unwind label %781

779:                                              ; preds = %777
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %92, ptr null, ptr nonnull %778)
          to label %780 unwind label %783

780:                                              ; preds = %779
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %91, ptr noundef nonnull %92)
  br label %.sink.split

781:                                              ; preds = %777
  %782 = landingpad { ptr, i32 }
          cleanup
  br label %818

783:                                              ; preds = %779
  %784 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %818

785:                                              ; preds = %727
  %786 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %787 unwind label %789

787:                                              ; preds = %785
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %94, ptr null, ptr nonnull %786)
          to label %788 unwind label %791

788:                                              ; preds = %787
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %93, ptr noundef nonnull %94)
  br label %.sink.split

789:                                              ; preds = %785
  %790 = landingpad { ptr, i32 }
          cleanup
  br label %818

791:                                              ; preds = %787
  %792 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %818

793:                                              ; preds = %727
  %794 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR8TypeItem8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %795 unwind label %797

795:                                              ; preds = %793
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %96, ptr null, ptr nonnull %794)
          to label %796 unwind label %799

796:                                              ; preds = %795
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %95, ptr noundef nonnull %96)
  br label %.sink.split

797:                                              ; preds = %793
  %798 = landingpad { ptr, i32 }
          cleanup
  br label %818

799:                                              ; preds = %795
  %800 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  br label %818

801:                                              ; preds = %727
  %802 = call noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR8TypeItem8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %803 unwind label %805

803:                                              ; preds = %801
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %98, ptr null, ptr nonnull %802)
          to label %804 unwind label %807

804:                                              ; preds = %803
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %97, ptr noundef nonnull %98)
  br label %.sink.split

805:                                              ; preds = %801
  %806 = landingpad { ptr, i32 }
          cleanup
  br label %818

807:                                              ; preds = %803
  %808 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %818

809:                                              ; preds = %727
  %810 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNK3HIR8TypeItem13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %.1432)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %811 unwind label %813

811:                                              ; preds = %809
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %100, ptr null, ptr nonnull %810)
          to label %812 unwind label %815

812:                                              ; preds = %811
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %724, ptr noundef nonnull %99, ptr noundef nonnull %100)
  br label %.sink.split

813:                                              ; preds = %809
  %814 = landingpad { ptr, i32 }
          cleanup
  br label %818

815:                                              ; preds = %811
  %816 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  br label %818

.sink.split:                                      ; preds = %812, %804, %796, %788, %780, %772, %764, %756
  %.sink1157 = phi ptr [ %85, %756 ], [ %88, %764 ], [ %90, %772 ], [ %92, %780 ], [ %94, %788 ], [ %96, %796 ], [ %98, %804 ], [ %100, %812 ]
  %.sink1156 = phi ptr [ %84, %756 ], [ %87, %764 ], [ %89, %772 ], [ %91, %780 ], [ %93, %788 ], [ %95, %796 ], [ %97, %804 ], [ %99, %812 ]
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1157) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1156) #8
  br label %817

817:                                              ; preds = %.sink.split, %727, %726
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  br label %821

818:                                              ; preds = %813, %815, %805, %807, %797, %799, %789, %791, %781, %783, %773, %775, %765, %767, %757, %759, %739, %748, %749, %679, %717, %715, %698, %680, %633
  %.pn486.pn = phi { ptr, i32 } [ %634, %633 ], [ %.pn477.pn, %679 ], [ %.pn480.pn.pn, %698 ], [ %718, %717 ], [ %681, %680 ], [ %716, %715 ], [ %740, %739 ], [ %750, %749 ], [ %.pn502.pn, %748 ], [ %760, %759 ], [ %758, %757 ], [ %768, %767 ], [ %766, %765 ], [ %776, %775 ], [ %774, %773 ], [ %784, %783 ], [ %782, %781 ], [ %792, %791 ], [ %790, %789 ], [ %800, %799 ], [ %798, %797 ], [ %808, %807 ], [ %806, %805 ], [ %816, %815 ], [ %814, %813 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %819

819:                                              ; preds = %818, %631
  %.pn486.pn.pn = phi { ptr, i32 } [ %.pn486.pn, %818 ], [ %632, %631 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %820

820:                                              ; preds = %819, %629
  %.pn486.pn.pn.pn = phi { ptr, i32 } [ %.pn486.pn.pn, %819 ], [ %630, %629 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  br label %848

821:                                              ; preds = %817, %599, %575, %547, %560
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #8
  %822 = load ptr, ptr %13, align 8, !tbaa !9
  %823 = getelementptr inbounds i8, ptr %822, i64 24
  %824 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %825 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %824)
  %826 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %823, ptr noundef nonnull align 8 dereferenceable(8) %825)
          to label %827 unwind label %849

827:                                              ; preds = %821
  store ptr %826, ptr %101, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #8
  %828 = load ptr, ptr %13, align 8, !tbaa !9
  %829 = getelementptr inbounds i8, ptr %828, i64 24
  %830 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %829) #8
  store ptr %830, ptr %102, align 8
  %831 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %102) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #8
  br i1 %831, label %832, label %856

832:                                              ; preds = %827
  %833 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %834 unwind label %849

834:                                              ; preds = %832
  br i1 %833, label %835, label %1107

835:                                              ; preds = %834
  %836 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %837 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %836, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %838 unwind label %849

838:                                              ; preds = %835
  %839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %837, ptr noundef nonnull @.str.51)
          to label %840 unwind label %849

840:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %105) #8
  store ptr %13, ptr %105, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_11vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(8) %105) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull %104)
          to label %841 unwind label %851

841:                                              ; preds = %840
  %842 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %839, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %843 unwind label %853

843:                                              ; preds = %841
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %842, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %845 unwind label %853

845:                                              ; preds = %843
  %846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %844, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %847 unwind label %853

847:                                              ; preds = %845
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %105) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #8
  br label %1107

848:                                              ; preds = %820, %567, %561
  %.pn510.pn = phi { ptr, i32 } [ %.pn510, %567 ], [ %562, %561 ], [ %.pn486.pn.pn.pn, %820 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #8
  br label %1391

849:                                              ; preds = %887, %885, %883, %881, %875, %873, %869, %867, %864, %861, %838, %835, %832, %821
  %850 = landingpad { ptr, i32 }
          cleanup
  br label %1134

851:                                              ; preds = %840
  %852 = landingpad { ptr, i32 }
          cleanup
  br label %855

853:                                              ; preds = %845, %843, %841
  %854 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  br label %855

855:                                              ; preds = %853, %851
  %.pn553 = phi { ptr, i32 } [ %854, %853 ], [ %852, %851 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %105) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #8
  br label %1134

856:                                              ; preds = %827
  %857 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  %858 = getelementptr inbounds i8, ptr %857, i64 8
  %859 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %858) #8
  %860 = call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %859)
  br i1 %860, label %889, label %861

861:                                              ; preds = %856
  %862 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %863 unwind label %849

863:                                              ; preds = %861
  br i1 %862, label %864, label %1107

864:                                              ; preds = %863
  %865 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %866 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %865, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %867 unwind label %849

867:                                              ; preds = %864
  %868 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %866, ptr noundef nonnull @.str.52)
          to label %869 unwind label %849

869:                                              ; preds = %867
  %870 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %871 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %870)
  %872 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %868, ptr noundef nonnull align 8 dereferenceable(8) %871)
          to label %873 unwind label %849

873:                                              ; preds = %869
  %874 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %872, ptr noundef nonnull @.str.31)
          to label %875 unwind label %849

875:                                              ; preds = %873
  %876 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  %877 = getelementptr inbounds i8, ptr %876, i64 8
  %878 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %877) #8
  %879 = getelementptr inbounds i8, ptr %878, i64 16
  %880 = invoke noundef ptr @_ZNK3HIR9ValueItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(368) %879)
          to label %881 unwind label %849

881:                                              ; preds = %875
  %882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %874, ptr noundef %880)
          to label %883 unwind label %849

883:                                              ; preds = %881
  %884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %882, ptr noundef nonnull @.str.49)
          to label %885 unwind label %849

885:                                              ; preds = %883
  %886 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %884, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %887 unwind label %849

887:                                              ; preds = %885
  %888 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %886, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1107 unwind label %849

889:                                              ; preds = %856
  %890 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  %891 = getelementptr inbounds i8, ptr %890, i64 8
  %892 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %891) #8
  %893 = getelementptr inbounds i8, ptr %892, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %894 unwind label %917

894:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %895 unwind label %919

895:                                              ; preds = %894
  %896 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %897 unwind label %921

897:                                              ; preds = %895
  br i1 %896, label %898, label %923

898:                                              ; preds = %897
  %899 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %899, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %901 unwind label %921

901:                                              ; preds = %898
  %902 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %900, ptr noundef nonnull @.str.52)
          to label %903 unwind label %921

903:                                              ; preds = %901
  %904 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %905 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %904)
  %906 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %902, ptr noundef nonnull align 8 dereferenceable(8) %905)
          to label %907 unwind label %921

907:                                              ; preds = %903
  %908 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %906, ptr noundef nonnull @.str.31)
          to label %909 unwind label %921

909:                                              ; preds = %907
  %910 = invoke noundef ptr @_ZNK3HIR9ValueItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(368) %893)
          to label %911 unwind label %921

911:                                              ; preds = %909
  %912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %908, ptr noundef %910)
          to label %913 unwind label %921

913:                                              ; preds = %911
  %914 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %912, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %915 unwind label %921

915:                                              ; preds = %913
  %916 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %914, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %923 unwind label %921

917:                                              ; preds = %889
  %918 = landingpad { ptr, i32 }
          cleanup
  br label %1106

919:                                              ; preds = %894
  %920 = landingpad { ptr, i32 }
          cleanup
  br label %1105

921:                                              ; preds = %994, %915, %913, %911, %909, %907, %903, %901, %898, %895
  %922 = landingpad { ptr, i32 }
          cleanup
  br label %1104

923:                                              ; preds = %915, %897
  %924 = call noundef zeroext i1 @_ZNK3HIR9ValueItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %893)
  br i1 %924, label %925, label %994

925:                                              ; preds = %923
  %926 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %893)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #8
  %927 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %926)
          to label %928 unwind label %960

928:                                              ; preds = %925
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %927)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %111) #8
  %929 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %926)
          to label %930 unwind label %962

930:                                              ; preds = %928
  %931 = extractvalue { ptr, i64 } %929, 0
  store ptr %931, ptr %111, align 8
  %932 = getelementptr inbounds i8, ptr %111, i64 8
  %933 = extractvalue { ptr, i64 } %929, 1
  store i64 %933, ptr %932, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.18") align 8 %110, ptr noundef nonnull align 8 dereferenceable(16) %111)
          to label %934 unwind label %962

934:                                              ; preds = %930
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull %109, ptr noundef nonnull %110)
          to label %935 unwind label %964

935:                                              ; preds = %934
  %936 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 8 dereferenceable(32) %108)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  %937 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %926)
          to label %938 unwind label %968

938:                                              ; preds = %935
  %939 = getelementptr inbounds i8, ptr %2, i64 576
  %940 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %939, ptr noundef nonnull align 8 dereferenceable(8) %937)
          to label %941 unwind label %968

941:                                              ; preds = %938
  %942 = getelementptr inbounds i8, ptr %926, i64 8
  %943 = load i8, ptr %942, align 8, !tbaa !39, !range !18, !noundef !19
  %944 = trunc nuw i8 %943 to i1
  br i1 %944, label %945, label %990

945:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #8
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %926)
          to label %946 unwind label %970

946:                                              ; preds = %945
  invoke void @_ZN3HIR10SimplePath13pop_componentEv(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %113, ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %947 unwind label %972

947:                                              ; preds = %946
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #8
  %948 = getelementptr inbounds i8, ptr %940, i64 48
  %949 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %948)
  %950 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %949, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %112, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %951 unwind label %974

951:                                              ; preds = %947
  %952 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %950)
  %953 = getelementptr inbounds i8, ptr %926, i64 12
  %954 = load i32, ptr %953, align 4, !tbaa !41
  %955 = invoke noundef i64 @_ZNK3HIR4Enum12num_variantsEv(ptr noundef nonnull align 8 dereferenceable(200) %952)
          to label %956 unwind label %974

956:                                              ; preds = %951
  %957 = zext i32 %954 to i64
  %958 = icmp ugt i64 %955, %957
  br i1 %958, label %976, label %959

959:                                              ; preds = %956
  call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.4, i32 noundef 984, ptr noundef nonnull @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

960:                                              ; preds = %925
  %961 = landingpad { ptr, i32 }
          cleanup
  br label %967

962:                                              ; preds = %930, %928
  %963 = landingpad { ptr, i32 }
          cleanup
  br label %966

964:                                              ; preds = %934
  %965 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #8
  br label %966

966:                                              ; preds = %964, %962
  %.pn513 = phi { ptr, i32 } [ %965, %964 ], [ %963, %962 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %111) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  br label %967

967:                                              ; preds = %966, %960
  %.pn513.pn = phi { ptr, i32 } [ %.pn513, %966 ], [ %961, %960 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  br label %1104

968:                                              ; preds = %990, %938, %935
  %969 = landingpad { ptr, i32 }
          cleanup
  br label %1104

970:                                              ; preds = %945
  %971 = landingpad { ptr, i32 }
          cleanup
  br label %989

972:                                              ; preds = %946
  %973 = landingpad { ptr, i32 }
          cleanup
  br label %988

974:                                              ; preds = %976, %951, %947
  %975 = landingpad { ptr, i32 }
          cleanup
  br label %988

976:                                              ; preds = %956
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %977 unwind label %974

977:                                              ; preds = %976
  store ptr null, ptr %116, align 8, !tbaa !28
  %978 = getelementptr inbounds i8, ptr %116, i64 8
  %979 = load i32, ptr %953, align 4, !tbaa !41
  store i32 %979, ptr %978, align 8, !tbaa !30
  %980 = getelementptr inbounds i8, ptr %116, i64 16
  store ptr %952, ptr %980, align 8, !tbaa !31
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %115, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %116)
          to label %981 unwind label %983

981:                                              ; preds = %977
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %114, ptr noundef nonnull %115)
          to label %982 unwind label %985

982:                                              ; preds = %981
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #8
  br label %994

983:                                              ; preds = %977
  %984 = landingpad { ptr, i32 }
          cleanup
  br label %987

985:                                              ; preds = %981
  %986 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #8
  br label %987

987:                                              ; preds = %985, %983
  %.pn516 = phi { ptr, i32 } [ %986, %985 ], [ %984, %983 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %988

988:                                              ; preds = %974, %987, %972
  %.pn516.pn.pn = phi { ptr, i32 } [ %973, %972 ], [ %.pn516, %987 ], [ %975, %974 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #8
  br label %989

989:                                              ; preds = %988, %970
  %.pn516.pn.pn.pn = phi { ptr, i32 } [ %.pn516.pn.pn, %988 ], [ %971, %970 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #8
  br label %1104

990:                                              ; preds = %941
  %991 = getelementptr inbounds i8, ptr %940, i64 48
  %992 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %991)
  %993 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3HIR5Crate19get_valitem_by_pathERK4SpanRKNS_10SimplePathEb(ptr noundef nonnull align 8 dereferenceable(944) %992, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %926, i1 noundef zeroext true)
          to label %994 unwind label %968

994:                                              ; preds = %982, %990, %923
  %.1434 = phi ptr [ %893, %923 ], [ %893, %982 ], [ %993, %990 ]
  %995 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_ValueEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %0)
          to label %996 unwind label %921

996:                                              ; preds = %994
  br i1 %995, label %.lr.ph1044, label %.loopexit691

.lr.ph1044:                                       ; preds = %996
  %997 = getelementptr inbounds i8, ptr %2, i64 576
  %998 = call noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368) %.1434)
  switch i32 %998, label %.loopexit691 [
    i32 0, label %1006
    i32 1, label %1007
    i32 2, label %.preheader678
    i32 3, label %.preheader680
    i32 4, label %.preheader682
    i32 6, label %.preheader684
    i32 5, label %.preheader686
  ]

.preheader686:                                    ; preds = %.lr.ph1044
  %999 = call noundef nonnull align 8 dereferenceable(352) ptr @_ZNK3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %.1434)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1099 unwind label %.split928.split

.preheader684:                                    ; preds = %.lr.ph1044
  %1000 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368) %.1434)
  %1001 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1000)
          to label %1069 unwind label %.loopexit672.split.split

.preheader682:                                    ; preds = %.lr.ph1044
  %1002 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem17as_StructConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %.1434)
  %1003 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1002)
          to label %1040 unwind label %.loopexit666.split.split

.preheader680:                                    ; preds = %.lr.ph1044
  %1004 = call noundef nonnull align 8 dereferenceable(360) ptr @_ZNK3HIR9ValueItem9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(368) %.1434)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1035 unwind label %.split1013.split

.preheader678:                                    ; preds = %.lr.ph1044
  %1005 = call noundef nonnull align 8 dereferenceable(280) ptr @_ZNK3HIR9ValueItem11as_ConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %.1434)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1029 unwind label %.split1030.split

1006:                                             ; preds = %.lr.ph1044
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 994, ptr noundef nonnull @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

1007:                                             ; preds = %.lr.ph1044
  %1008 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %.1434)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %1011 unwind label %1018

1009:                                             ; preds = %1017
  %1010 = landingpad { ptr, i32 }
          cleanup
  br label %1104

1011:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %119) #8
  store ptr %5, ptr %119, align 8, !tbaa !9
  %1012 = getelementptr inbounds i8, ptr %119, i64 8
  store ptr %101, ptr %1012, align 8, !tbaa !9
  %1013 = getelementptr inbounds i8, ptr %119, i64 16
  store ptr %1008, ptr %1013, align 8, !tbaa !9
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(24) %119)
          to label %1014 unwind label %1020

1014:                                             ; preds = %1011
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull %118)
          to label %1015 unwind label %1022

1015:                                             ; preds = %1014
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %119) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #8
  %1016 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1016, ptr noundef nonnull @.str.5)
          to label %1017 unwind label %1026

1017:                                             ; preds = %1015
  invoke void @__cxa_throw(ptr nonnull %1016, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %1009

1018:                                             ; preds = %1007
  %1019 = landingpad { ptr, i32 }
          cleanup
  br label %1025

1020:                                             ; preds = %1011
  %1021 = landingpad { ptr, i32 }
          cleanup
  br label %1024

1022:                                             ; preds = %1014
  %1023 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  br label %1024

1024:                                             ; preds = %1022, %1020
  %.pn544 = phi { ptr, i32 } [ %1023, %1022 ], [ %1021, %1020 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %119) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #8
  br label %1025

1025:                                             ; preds = %1024, %1018
  %.pn544.pn = phi { ptr, i32 } [ %.pn544, %1024 ], [ %1019, %1018 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #8
  br label %1104

1026:                                             ; preds = %1015
  %1027 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1016) #8
  br label %1104

.split1030.split:                                 ; preds = %.preheader678
  %1028 = landingpad { ptr, i32 }
          cleanup
  br label %1104

1029:                                             ; preds = %.preheader678
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %121, ptr null, ptr null)
          to label %1030 unwind label %.split1033.split

1030:                                             ; preds = %1029
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %120, ptr noundef nonnull %121)
          to label %.loopexit691.sink.split unwind label %.split1036.split

.split1033.split:                                 ; preds = %1029
  %1031 = landingpad { ptr, i32 }
          cleanup
  br label %1033

.split1036.split:                                 ; preds = %1030
  %1032 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  br label %1033

1033:                                             ; preds = %.split1036.split, %.split1033.split
  %.pn541 = phi { ptr, i32 } [ %1032, %.split1036.split ], [ %1031, %.split1033.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  br label %1104

.split1013.split:                                 ; preds = %.preheader680
  %1034 = landingpad { ptr, i32 }
          cleanup
  br label %1104

1035:                                             ; preds = %.preheader680
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %123, ptr null, ptr null)
          to label %1036 unwind label %.split1016.split

1036:                                             ; preds = %1035
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %122, ptr noundef nonnull %123)
          to label %.loopexit691.sink.split unwind label %.split1019.split

.split1016.split:                                 ; preds = %1035
  %1037 = landingpad { ptr, i32 }
          cleanup
  br label %1039

.split1019.split:                                 ; preds = %1036
  %1038 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #8
  br label %1039

1039:                                             ; preds = %.split1019.split, %.split1016.split
  %.pn538 = phi { ptr, i32 } [ %1038, %.split1019.split ], [ %1037, %.split1016.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  br label %1104

.loopexit666.split.split:                         ; preds = %.preheader682, %1040, %1054
  %lpad.loopexit668 = landingpad { ptr, i32 }
          cleanup
  br label %1104

.loopexit.split-lp667:                            ; preds = %1046
  %lpad.loopexit.split-lp669 = landingpad { ptr, i32 }
          cleanup
  br label %1104

1040:                                             ; preds = %.preheader682
  %1041 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %997, ptr noundef nonnull align 8 dereferenceable(8) %1003)
          to label %1042 unwind label %.loopexit666.split.split

1042:                                             ; preds = %1040
  %.not532 = icmp eq i64 %1041, 0
  br i1 %.not532, label %.split979, label %1054

.split979:                                        ; preds = %1042
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %124) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %1043 unwind label %1047

1043:                                             ; preds = %.split979
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %126) #8
  store ptr %1002, ptr %126, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_13vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(8) %126) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull %125)
          to label %1044 unwind label %1049

1044:                                             ; preds = %1043
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #8
  %1045 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1045, ptr noundef nonnull @.str.5)
          to label %1046 unwind label %1052

1046:                                             ; preds = %1044
  invoke void @__cxa_throw(ptr nonnull %1045, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %.loopexit.split-lp667

1047:                                             ; preds = %.split979
  %1048 = landingpad { ptr, i32 }
          cleanup
  br label %1051

1049:                                             ; preds = %1043
  %1050 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %126) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #8
  br label %1051

1051:                                             ; preds = %1049, %1047
  %.pn533 = phi { ptr, i32 } [ %1050, %1049 ], [ %1048, %1047 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #8
  br label %1104

1052:                                             ; preds = %1044
  %1053 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1045) #8
  br label %1104

1054:                                             ; preds = %1042
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1055 unwind label %.loopexit666.split.split

1055:                                             ; preds = %1054
  %1056 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1002)
          to label %1057 unwind label %.split982.split

1057:                                             ; preds = %1055
  %1058 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %997, ptr noundef nonnull align 8 dereferenceable(8) %1056)
          to label %1059 unwind label %.split982.split

1059:                                             ; preds = %1057
  %1060 = getelementptr inbounds i8, ptr %1058, i64 48
  %1061 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1060)
  %1062 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1061, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %1002, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1063 unwind label %.split982.split

1063:                                             ; preds = %1059
  %1064 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %1062)
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %128, ptr null, ptr nonnull %1064)
          to label %1065 unwind label %.split982.split

1065:                                             ; preds = %1063
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %127, ptr noundef nonnull %128)
          to label %.loopexit691.sink.split unwind label %.split985.split

.split982.split:                                  ; preds = %1063, %1059, %1057, %1055
  %1066 = landingpad { ptr, i32 }
          cleanup
  br label %1068

.split985.split:                                  ; preds = %1065
  %1067 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  br label %1068

1068:                                             ; preds = %.split985.split, %.split982.split
  %.pn535 = phi { ptr, i32 } [ %1067, %.split985.split ], [ %1066, %.split982.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  br label %1104

.loopexit672.split.split:                         ; preds = %.preheader684, %1069, %1083
  %lpad.loopexit674 = landingpad { ptr, i32 }
          cleanup
  br label %1104

.loopexit.split-lp673:                            ; preds = %1075
  %lpad.loopexit.split-lp675 = landingpad { ptr, i32 }
          cleanup
  br label %1104

1069:                                             ; preds = %.preheader684
  %1070 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %997, ptr noundef nonnull align 8 dereferenceable(8) %1001)
          to label %1071 unwind label %.loopexit672.split.split

1071:                                             ; preds = %1069
  %.not526 = icmp eq i64 %1070, 0
  br i1 %.not526, label %.split944, label %1083

.split944:                                        ; preds = %1071
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %129) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %1072 unwind label %1076

1072:                                             ; preds = %.split944
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %131) #8
  store ptr %1000, ptr %131, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_14vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(8) %131) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull %130)
          to label %1073 unwind label %1078

1073:                                             ; preds = %1072
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #8
  %1074 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1074, ptr noundef nonnull @.str.5)
          to label %1075 unwind label %1081

1075:                                             ; preds = %1073
  invoke void @__cxa_throw(ptr nonnull %1074, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %.loopexit.split-lp673

1076:                                             ; preds = %.split944
  %1077 = landingpad { ptr, i32 }
          cleanup
  br label %1080

1078:                                             ; preds = %1072
  %1079 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %131) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #8
  br label %1080

1080:                                             ; preds = %1078, %1076
  %.pn527 = phi { ptr, i32 } [ %1079, %1078 ], [ %1077, %1076 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %129) #8
  br label %1104

1081:                                             ; preds = %1073
  %1082 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1074) #8
  br label %1104

1083:                                             ; preds = %1071
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1084 unwind label %.loopexit672.split.split

1084:                                             ; preds = %1083
  %1085 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1000)
          to label %1086 unwind label %.split947.split

1086:                                             ; preds = %1084
  %1087 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %997, ptr noundef nonnull align 8 dereferenceable(8) %1085)
          to label %1088 unwind label %.split947.split

1088:                                             ; preds = %1086
  %1089 = getelementptr inbounds i8, ptr %1087, i64 48
  %1090 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1089)
  %1091 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1090, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %1000, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1092 unwind label %.split947.split

1092:                                             ; preds = %1088
  %1093 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %1091)
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %133, ptr null, ptr nonnull %1093)
          to label %1094 unwind label %.split947.split

1094:                                             ; preds = %1092
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %132, ptr noundef nonnull %133)
          to label %.loopexit691.sink.split unwind label %.split950.split

.split947.split:                                  ; preds = %1092, %1088, %1086, %1084
  %1095 = landingpad { ptr, i32 }
          cleanup
  br label %1097

.split950.split:                                  ; preds = %1094
  %1096 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %1097

1097:                                             ; preds = %.split950.split, %.split947.split
  %.pn529 = phi { ptr, i32 } [ %1096, %.split950.split ], [ %1095, %.split947.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #8
  br label %1104

.split928.split:                                  ; preds = %.preheader686
  %1098 = landingpad { ptr, i32 }
          cleanup
  br label %1104

1099:                                             ; preds = %.preheader686
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %135, ptr null)
          to label %1100 unwind label %.split931.split

1100:                                             ; preds = %1099
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %134, ptr noundef nonnull %135)
          to label %.loopexit691.sink.split unwind label %.split934.split

.split931.split:                                  ; preds = %1099
  %1101 = landingpad { ptr, i32 }
          cleanup
  br label %1103

.split934.split:                                  ; preds = %1100
  %1102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  br label %1103

1103:                                             ; preds = %.split934.split, %.split931.split
  %.pn523 = phi { ptr, i32 } [ %1102, %.split934.split ], [ %1101, %.split931.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #8
  br label %1104

.loopexit691.sink.split:                          ; preds = %1100, %1094, %1065, %1036, %1030
  %.sink1159 = phi ptr [ %121, %1030 ], [ %123, %1036 ], [ %128, %1065 ], [ %133, %1094 ], [ %135, %1100 ]
  %.sink1158 = phi ptr [ %120, %1030 ], [ %122, %1036 ], [ %127, %1065 ], [ %132, %1094 ], [ %134, %1100 ]
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1159) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1158) #8
  br label %.loopexit691

.loopexit691:                                     ; preds = %.loopexit691.sink.split, %.lr.ph1044, %996
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  br label %1107

1104:                                             ; preds = %.loopexit672.split.split, %.loopexit.split-lp673, %.loopexit666.split.split, %.loopexit.split-lp667, %1026, %1025, %1009, %1033, %.split1030.split, %1039, %.split1013.split, %1068, %1052, %1051, %1097, %1081, %1080, %1103, %.split928.split, %967, %989, %968, %921
  %.pn523.pn.pn.pn = phi { ptr, i32 } [ %922, %921 ], [ %.pn513.pn, %967 ], [ %.pn516.pn.pn.pn, %989 ], [ %969, %968 ], [ %1010, %1009 ], [ %1027, %1026 ], [ %.pn544.pn, %1025 ], [ %.pn541, %1033 ], [ %1028, %.split1030.split ], [ %.pn538, %1039 ], [ %1034, %.split1013.split ], [ %.pn535, %1068 ], [ %1053, %1052 ], [ %.pn533, %1051 ], [ %.pn529, %1097 ], [ %1082, %1081 ], [ %.pn527, %1080 ], [ %.pn523, %1103 ], [ %1098, %.split928.split ], [ %lpad.loopexit668, %.loopexit666.split.split ], [ %lpad.loopexit.split-lp669, %.loopexit.split-lp667 ], [ %lpad.loopexit674, %.loopexit672.split.split ], [ %lpad.loopexit.split-lp675, %.loopexit.split-lp673 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %1105

1105:                                             ; preds = %1104, %919
  %.pn523.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn.pn, %1104 ], [ %920, %919 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  br label %1106

1106:                                             ; preds = %1105, %917
  %.pn523.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn523.pn.pn.pn.pn, %1105 ], [ %918, %917 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  br label %1134

1107:                                             ; preds = %.loopexit691, %887, %863, %834, %847
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %136) #8
  %1108 = load ptr, ptr %13, align 8, !tbaa !9
  %1109 = getelementptr inbounds i8, ptr %1108, i64 136
  %1110 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %1111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1110)
  %1112 = invoke ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56) %1109, ptr noundef nonnull align 8 dereferenceable(8) %1111)
          to label %1113 unwind label %1135

1113:                                             ; preds = %1107
  store ptr %1112, ptr %136, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #8
  %1114 = load ptr, ptr %13, align 8, !tbaa !9
  %1115 = getelementptr inbounds i8, ptr %1114, i64 136
  %1116 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1115) #8
  store ptr %1116, ptr %137, align 8
  %1117 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef nonnull align 8 dereferenceable(8) %137) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #8
  br i1 %1117, label %1118, label %1142

1118:                                             ; preds = %1113
  %1119 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1120 unwind label %1135

1120:                                             ; preds = %1118
  br i1 %1119, label %1121, label %1354

1121:                                             ; preds = %1120
  %1122 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1123 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1122, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1124 unwind label %1135

1124:                                             ; preds = %1121
  %1125 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1123, ptr noundef nonnull @.str.53)
          to label %1126 unwind label %1135

1126:                                             ; preds = %1124
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %138) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %140) #8
  store ptr %13, ptr %140, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_15vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull align 8 dereferenceable(8) %140) #8
  invoke void @_ZN9FmtLambdaC2ESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull %139)
          to label %1127 unwind label %1137

1127:                                             ; preds = %1126
  %1128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK9FmtLambda(ptr noundef nonnull align 8 dereferenceable(8) %1125, ptr noundef nonnull align 8 dereferenceable(32) %138)
          to label %1129 unwind label %1139

1129:                                             ; preds = %1127
  %1130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1128, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1131 unwind label %1139

1131:                                             ; preds = %1129
  %1132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1130, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1133 unwind label %1139

1133:                                             ; preds = %1131
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #8
  br label %1354

1134:                                             ; preds = %1106, %855, %849
  %.pn553.pn = phi { ptr, i32 } [ %.pn553, %855 ], [ %850, %849 ], [ %.pn523.pn.pn.pn.pn.pn, %1106 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #8
  br label %1391

1135:                                             ; preds = %1173, %1171, %1169, %1167, %1161, %1159, %1155, %1153, %1150, %1147, %1124, %1121, %1118, %1107
  %1136 = landingpad { ptr, i32 }
          cleanup
  br label %1373

1137:                                             ; preds = %1126
  %1138 = landingpad { ptr, i32 }
          cleanup
  br label %1141

1139:                                             ; preds = %1131, %1129, %1127
  %1140 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9FmtLambdaD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #8
  br label %1141

1141:                                             ; preds = %1139, %1137
  %.pn586 = phi { ptr, i32 } [ %1140, %1139 ], [ %1138, %1137 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %140) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #8
  br label %1373

1142:                                             ; preds = %1113
  %1143 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %136) #8
  %1144 = getelementptr inbounds i8, ptr %1143, i64 8
  %1145 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1144) #8
  %1146 = call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %1145)
  br i1 %1146, label %1175, label %1147

1147:                                             ; preds = %1142
  %1148 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1149 unwind label %1135

1149:                                             ; preds = %1147
  br i1 %1148, label %1150, label %1354

1150:                                             ; preds = %1149
  %1151 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1151, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1153 unwind label %1135

1153:                                             ; preds = %1150
  %1154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1152, ptr noundef nonnull @.str.54)
          to label %1155 unwind label %1135

1155:                                             ; preds = %1153
  %1156 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %1157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1156)
  %1158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1154, ptr noundef nonnull align 8 dereferenceable(8) %1157)
          to label %1159 unwind label %1135

1159:                                             ; preds = %1155
  %1160 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1158, ptr noundef nonnull @.str.31)
          to label %1161 unwind label %1135

1161:                                             ; preds = %1159
  %1162 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %136) #8
  %1163 = getelementptr inbounds i8, ptr %1162, i64 8
  %1164 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1163) #8
  %1165 = getelementptr inbounds i8, ptr %1164, i64 16
  %1166 = invoke noundef ptr @_ZNK3HIR9MacroItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(56) %1165)
          to label %1167 unwind label %1135

1167:                                             ; preds = %1161
  %1168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1160, ptr noundef %1166)
          to label %1169 unwind label %1135

1169:                                             ; preds = %1167
  %1170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1168, ptr noundef nonnull @.str.49)
          to label %1171 unwind label %1135

1171:                                             ; preds = %1169
  %1172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1170, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1173 unwind label %1135

1173:                                             ; preds = %1171
  %1174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1172, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1354 unwind label %1135

1175:                                             ; preds = %1142
  %1176 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %136) #8
  %1177 = getelementptr inbounds i8, ptr %1176, i64 8
  %1178 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1177) #8
  %1179 = getelementptr inbounds i8, ptr %1178, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %141) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1180 unwind label %1203

1180:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #8
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %1181 unwind label %1205

1181:                                             ; preds = %1180
  %1182 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1183 unwind label %1207

1183:                                             ; preds = %1181
  br i1 %1182, label %1184, label %1209

1184:                                             ; preds = %1183
  %1185 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1185, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1187 unwind label %1207

1187:                                             ; preds = %1184
  %1188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1186, ptr noundef nonnull @.str.54)
          to label %1189 unwind label %1207

1189:                                             ; preds = %1187
  %1190 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %1191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1190)
  %1192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1188, ptr noundef nonnull align 8 dereferenceable(8) %1191)
          to label %1193 unwind label %1207

1193:                                             ; preds = %1189
  %1194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1192, ptr noundef nonnull @.str.31)
          to label %1195 unwind label %1207

1195:                                             ; preds = %1193
  %1196 = invoke noundef ptr @_ZNK3HIR9MacroItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(56) %1179)
          to label %1197 unwind label %1207

1197:                                             ; preds = %1195
  %1198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1194, ptr noundef %1196)
          to label %1199 unwind label %1207

1199:                                             ; preds = %1197
  %1200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1198, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1201 unwind label %1207

1201:                                             ; preds = %1199
  %1202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1200, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1209 unwind label %1207

1203:                                             ; preds = %1175
  %1204 = landingpad { ptr, i32 }
          cleanup
  br label %1353

1205:                                             ; preds = %1180
  %1206 = landingpad { ptr, i32 }
          cleanup
  br label %1352

1207:                                             ; preds = %1299, %1201, %1199, %1197, %1195, %1193, %1189, %1187, %1184, %1181
  %1208 = landingpad { ptr, i32 }
          cleanup
  br label %1351

1209:                                             ; preds = %1201, %1183
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %143) #8
  %1210 = call noundef ptr @_ZNK3HIR9MacroItem10opt_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %1179)
  store ptr %1210, ptr %143, align 8, !tbaa !9
  %.not556 = icmp eq ptr %1210, null
  br i1 %.not556, label %1299, label %1211

1211:                                             ; preds = %1209
  %1212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1210)
          to label %1213 unwind label %1224

1213:                                             ; preds = %1211
  %1214 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1212, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
          to label %1215 unwind label %1224

1215:                                             ; preds = %1213
  br i1 %1214, label %1216, label %1237

1216:                                             ; preds = %1215
  %1217 = getelementptr inbounds i8, ptr %0, i64 128
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %147) #8
  %1218 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  %1219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1218)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef nonnull align 8 dereferenceable(8) %1219)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %148) #8
  call void @_ZNSaI8RcStringEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #8
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %146, ptr nonnull %147, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %1220 unwind label %1226

1220:                                             ; preds = %1216
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull %145, ptr noundef nonnull %146)
          to label %1221 unwind label %1228

1221:                                             ; preds = %1220
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %149, ptr null, ptr null)
          to label %1222 unwind label %1230

1222:                                             ; preds = %1221
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %1217, ptr noundef nonnull %144, ptr noundef nonnull %149)
          to label %1223 unwind label %1232

1223:                                             ; preds = %1222
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %149) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %146) #8
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %148) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #8
  br label %1390

1224:                                             ; preds = %1247, %1240, %1237, %1213, %1211
  %1225 = landingpad { ptr, i32 }
          cleanup
  br label %1303

1226:                                             ; preds = %1216
  %1227 = landingpad { ptr, i32 }
          cleanup
  br label %1236

1228:                                             ; preds = %1220
  %1229 = landingpad { ptr, i32 }
          cleanup
  br label %1235

1230:                                             ; preds = %1221
  %1231 = landingpad { ptr, i32 }
          cleanup
  br label %1234

1232:                                             ; preds = %1222
  %1233 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %149) #8
  br label %1234

1234:                                             ; preds = %1232, %1230
  %.pn565 = phi { ptr, i32 } [ %1233, %1232 ], [ %1231, %1230 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  br label %1235

1235:                                             ; preds = %1234, %1228
  %.pn565.pn = phi { ptr, i32 } [ %.pn565, %1234 ], [ %1229, %1228 ]
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %146) #8
  br label %1236

1236:                                             ; preds = %1235, %1226
  %.pn565.pn.pn = phi { ptr, i32 } [ %.pn565.pn, %1235 ], [ %1227, %1226 ]
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %148) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %147) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #8
  br label %1303

1237:                                             ; preds = %1215
  %1238 = getelementptr inbounds i8, ptr %2, i64 576
  %1239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1210)
          to label %1240 unwind label %1224

1240:                                             ; preds = %1237
  %1241 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1238, ptr noundef nonnull align 8 dereferenceable(8) %1239)
          to label %1242 unwind label %1224

1242:                                             ; preds = %1240
  %.not557 = icmp eq i64 %1241, 0
  br i1 %.not557, label %1243, label %1255

1243:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %150) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %1244 unwind label %1248

1244:                                             ; preds = %1243
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %152) #8
  store ptr %143, ptr %152, align 8, !tbaa !9
  call void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_16vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull align 8 dereferenceable(8) %152) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull %151)
          to label %1245 unwind label %1250

1245:                                             ; preds = %1244
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %152) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #8
  %1246 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1246, ptr noundef nonnull @.str.5)
          to label %1247 unwind label %1253

1247:                                             ; preds = %1245
  invoke void @__cxa_throw(ptr nonnull %1246, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %1224

1248:                                             ; preds = %1243
  %1249 = landingpad { ptr, i32 }
          cleanup
  br label %1252

1250:                                             ; preds = %1244
  %1251 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %152) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #8
  br label %1252

1252:                                             ; preds = %1250, %1248
  %.pn558 = phi { ptr, i32 } [ %1251, %1250 ], [ %1249, %1248 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #8
  br label %1303

1253:                                             ; preds = %1245
  %1254 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1246) #8
  br label %1303

1255:                                             ; preds = %1242
  %1256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1210)
          to label %1257 unwind label %1285

1257:                                             ; preds = %1255
  %1258 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1238, ptr noundef nonnull align 8 dereferenceable(8) %1256)
          to label %1259 unwind label %1285

1259:                                             ; preds = %1257
  %1260 = getelementptr inbounds i8, ptr %1258, i64 48
  %1261 = call noundef nonnull align 8 dereferenceable(944) ptr @_ZNK3HIR8CratePtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1260)
  %1262 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR5Crate15get_mod_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1261, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %1210, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %1263 unwind label %1287

1263:                                             ; preds = %1259
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %153) #8
  %1264 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1210)
          to label %1265 unwind label %1289

1265:                                             ; preds = %1263
  %1266 = getelementptr inbounds i8, ptr %1262, i64 136
  %1267 = extractvalue { ptr, i64 } %1264, 0
  store ptr %1267, ptr %153, align 8
  %1268 = getelementptr inbounds i8, ptr %153, i64 8
  %1269 = extractvalue { ptr, i64 } %1264, 1
  store i64 %1269, ptr %1268, align 8
  %1270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %153)
  %1271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %1266, ptr noundef nonnull align 8 dereferenceable(8) %1270)
          to label %1272 unwind label %1289

1272:                                             ; preds = %1265
  %1273 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1271) #8
  %1274 = getelementptr inbounds i8, ptr %1273, i64 16
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #8
  %1275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1210)
          to label %1276 unwind label %1291

1276:                                             ; preds = %1272
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(8) %1275)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %157) #8
  %1277 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1210)
          to label %1278 unwind label %1293

1278:                                             ; preds = %1276
  %1279 = extractvalue { ptr, i64 } %1277, 0
  store ptr %1279, ptr %157, align 8
  %1280 = getelementptr inbounds i8, ptr %157, i64 8
  %1281 = extractvalue { ptr, i64 } %1277, 1
  store i64 %1281, ptr %1280, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.18") align 8 %156, ptr noundef nonnull align 8 dereferenceable(16) %157)
          to label %1282 unwind label %1293

1282:                                             ; preds = %1278
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull %155, ptr noundef nonnull %156)
          to label %1283 unwind label %1295

1283:                                             ; preds = %1282
  %1284 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %154)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %156) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %157) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #8
  br label %1299

1285:                                             ; preds = %1257, %1255
  %1286 = landingpad { ptr, i32 }
          cleanup
  br label %1303

1287:                                             ; preds = %1259
  %1288 = landingpad { ptr, i32 }
          cleanup
  br label %1303

1289:                                             ; preds = %1265, %1263
  %1290 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #8
  br label %1303

1291:                                             ; preds = %1272
  %1292 = landingpad { ptr, i32 }
          cleanup
  br label %1298

1293:                                             ; preds = %1278, %1276
  %1294 = landingpad { ptr, i32 }
          cleanup
  br label %1297

1295:                                             ; preds = %1282
  %1296 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %156) #8
  br label %1297

1297:                                             ; preds = %1295, %1293
  %.pn560 = phi { ptr, i32 } [ %1296, %1295 ], [ %1294, %1293 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %157) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #8
  br label %1298

1298:                                             ; preds = %1297, %1291
  %.pn560.pn = phi { ptr, i32 } [ %.pn560, %1297 ], [ %1292, %1291 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #8
  br label %1303

1299:                                             ; preds = %1209, %1283
  %.1445.ph = phi ptr [ %1179, %1209 ], [ %1274, %1283 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #8
  %1300 = getelementptr inbounds i8, ptr %0, i64 128
  %1301 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %1300)
          to label %1302 unwind label %1207

1302:                                             ; preds = %1299
  br i1 %1301, label %.lr.ph1116, label %.loopexit662

1303:                                             ; preds = %1285, %1298, %1289, %1287, %1253, %1252, %1236, %1224
  %.pn565.pn.pn.pn = phi { ptr, i32 } [ %.pn565.pn.pn, %1236 ], [ %1225, %1224 ], [ %1254, %1253 ], [ %.pn558, %1252 ], [ %1286, %1285 ], [ %.pn560.pn, %1298 ], [ %1290, %1289 ], [ %1288, %1287 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #8
  br label %1351

.lr.ph1116:                                       ; preds = %1302
  %1304 = getelementptr inbounds i8, ptr %165, i64 8
  %1305 = call noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56) %.1445.ph)
  switch i32 %1305, label %.loopexit662 [
    i32 0, label %1310
    i32 1, label %.preheader
    i32 3, label %.preheader655
    i32 2, label %.preheader657
  ]

.preheader657:                                    ; preds = %.lr.ph1116
  %1306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %.1445.ph)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1345 unwind label %.split1049.split

.preheader655:                                    ; preds = %.lr.ph1116
  %1307 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3HIR9MacroItem12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(56) %.1445.ph)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1338 unwind label %.split1067.split

.preheader:                                       ; preds = %.lr.ph1116
  %1308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %.1445.ph)
  %1309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1308)
          to label %1311 unwind label %.loopexit651.split.split

1310:                                             ; preds = %.lr.ph1116
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 1054, ptr noundef nonnull @__PRETTY_FUNCTION__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE) #10
  unreachable

.loopexit651.split.split:                         ; preds = %.preheader, %1311, %1331
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %1351

.loopexit.split-lp:                               ; preds = %1320
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %1351

1311:                                             ; preds = %.preheader
  %1312 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1309, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
          to label %1313 unwind label %.loopexit651.split.split

1313:                                             ; preds = %1311
  br i1 %1312, label %1331, label %.split1095

.split1095:                                       ; preds = %1313
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %158) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %1314 unwind label %1321

1314:                                             ; preds = %.split1095
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %160) #8
  store ptr %5, ptr %160, align 8, !tbaa !9
  %1315 = getelementptr inbounds i8, ptr %160, i64 8
  store ptr %136, ptr %1315, align 8, !tbaa !9
  %1316 = getelementptr inbounds i8, ptr %160, i64 16
  store ptr %1308, ptr %1316, align 8, !tbaa !9
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_17vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull align 8 dereferenceable(24) %160)
          to label %1317 unwind label %1323

1317:                                             ; preds = %1314
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull %159)
          to label %1318 unwind label %1325

1318:                                             ; preds = %1317
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %160) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #8
  %1319 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1319, ptr noundef nonnull @.str.5)
          to label %1320 unwind label %1329

1320:                                             ; preds = %1318
  invoke void @__cxa_throw(ptr nonnull %1319, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %1395 unwind label %.loopexit.split-lp

1321:                                             ; preds = %.split1095
  %1322 = landingpad { ptr, i32 }
          cleanup
  br label %1328

1323:                                             ; preds = %1314
  %1324 = landingpad { ptr, i32 }
          cleanup
  br label %1327

1325:                                             ; preds = %1317
  %1326 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  br label %1327

1327:                                             ; preds = %1325, %1323
  %.pn576 = phi { ptr, i32 } [ %1326, %1325 ], [ %1324, %1323 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %160) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #8
  br label %1328

1328:                                             ; preds = %1327, %1321
  %.pn576.pn = phi { ptr, i32 } [ %.pn576, %1327 ], [ %1322, %1321 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %158) #8
  br label %1351

1329:                                             ; preds = %1318
  %1330 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1319) #8
  br label %1351

1331:                                             ; preds = %1313
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1332 unwind label %.loopexit651.split.split

1332:                                             ; preds = %1331
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %162, ptr null, ptr null)
          to label %1333 unwind label %.split1098.split

1333:                                             ; preds = %1332
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %1300, ptr noundef nonnull %161, ptr noundef nonnull %162)
          to label %..loopexit_crit_edge unwind label %.split1101.split

..loopexit_crit_edge:                             ; preds = %1333
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %162) #8
  br label %.loopexit662.sink.split

.split1098.split:                                 ; preds = %1332
  %1334 = landingpad { ptr, i32 }
          cleanup
  br label %1336

.split1101.split:                                 ; preds = %1333
  %1335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %162) #8
  br label %1336

1336:                                             ; preds = %.split1101.split, %.split1098.split
  %.pn579 = phi { ptr, i32 } [ %1335, %.split1101.split ], [ %1334, %.split1098.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  br label %1351

.split1067.split:                                 ; preds = %.preheader655
  %1337 = landingpad { ptr, i32 }
          cleanup
  br label %1351

1338:                                             ; preds = %.preheader655
  %1339 = getelementptr inbounds i8, ptr %1307, i64 8
  store ptr %3, ptr %165, align 8, !tbaa !42
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1304, ptr noundef nonnull align 8 dereferenceable(8) %1339)
  invoke void @_ZN3AST17PathBinding_Macro14make_ProcMacroENS0_14Data_ProcMacroE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %164, ptr noundef nonnull %165)
          to label %1340 unwind label %.split1070.split

1340:                                             ; preds = %1338
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %1300, ptr noundef nonnull %163, ptr noundef nonnull %164)
          to label %..loopexit652_crit_edge unwind label %.split1073.split

..loopexit652_crit_edge:                          ; preds = %1340
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %164) #8
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %165) #8
  br label %.loopexit662.sink.split

.split1070.split:                                 ; preds = %1338
  %1341 = landingpad { ptr, i32 }
          cleanup
  br label %1343

.split1073.split:                                 ; preds = %1340
  %1342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %164) #8
  br label %1343

1343:                                             ; preds = %.split1073.split, %.split1070.split
  %.pn573 = phi { ptr, i32 } [ %1342, %.split1073.split ], [ %1341, %.split1070.split ]
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %165) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %1351

.split1049.split:                                 ; preds = %.preheader657
  %1344 = landingpad { ptr, i32 }
          cleanup
  br label %1351

1345:                                             ; preds = %.preheader657
  %1346 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1306)
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %167, ptr null, ptr nonnull %1346)
          to label %1347 unwind label %.split1052.split

1347:                                             ; preds = %1345
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %1300, ptr noundef nonnull %166, ptr noundef nonnull %167)
          to label %..loopexit653_crit_edge unwind label %.split1055.split

..loopexit653_crit_edge:                          ; preds = %1347
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %167) #8
  br label %.loopexit662.sink.split

.split1052.split:                                 ; preds = %1345
  %1348 = landingpad { ptr, i32 }
          cleanup
  br label %1350

.split1055.split:                                 ; preds = %1347
  %1349 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %167) #8
  br label %1350

1350:                                             ; preds = %.split1055.split, %.split1052.split
  %.pn570 = phi { ptr, i32 } [ %1349, %.split1055.split ], [ %1348, %.split1052.split ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #8
  br label %1351

.loopexit662.sink.split:                          ; preds = %..loopexit_crit_edge, %..loopexit652_crit_edge, %..loopexit653_crit_edge
  %.sink1160 = phi ptr [ %166, %..loopexit653_crit_edge ], [ %163, %..loopexit652_crit_edge ], [ %161, %..loopexit_crit_edge ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink1160) #8
  br label %.loopexit662

.loopexit662:                                     ; preds = %.loopexit662.sink.split, %.lr.ph1116, %1302
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #8
  br label %1354

1351:                                             ; preds = %.loopexit651.split.split, %.loopexit.split-lp, %1336, %1329, %1328, %1343, %.split1067.split, %1350, %.split1049.split, %1303, %1207
  %.pn570.pn.pn.pn = phi { ptr, i32 } [ %1208, %1207 ], [ %.pn565.pn.pn.pn, %1303 ], [ %.pn579, %1336 ], [ %1330, %1329 ], [ %.pn576.pn, %1328 ], [ %.pn573, %1343 ], [ %1337, %.split1067.split ], [ %.pn570, %1350 ], [ %1344, %.split1049.split ], [ %lpad.loopexit, %.loopexit651.split.split ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  br label %1352

1352:                                             ; preds = %1351, %1205
  %.pn570.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn570.pn.pn.pn, %1351 ], [ %1206, %1205 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  br label %1353

1353:                                             ; preds = %1352, %1203
  %.pn570.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn570.pn.pn.pn.pn, %1352 ], [ %1204, %1203 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #8
  br label %1373

1354:                                             ; preds = %1173, %1149, %1120, %1133, %.loopexit662
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #8
  %1355 = getelementptr inbounds i8, ptr %0, i64 64
  %1356 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_16PathBinding_TypeEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %1355)
          to label %1357 unwind label %201

1357:                                             ; preds = %1354
  br i1 %1356, label %1358, label %1374

1358:                                             ; preds = %1357
  %1359 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_ValueEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64) %0)
          to label %1360 unwind label %201

1360:                                             ; preds = %1358
  br i1 %1359, label %1361, label %1374

1361:                                             ; preds = %1360
  %1362 = getelementptr inbounds i8, ptr %0, i64 128
  %1363 = invoke noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_MacroEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(56) %1362)
          to label %1364 unwind label %201

1364:                                             ; preds = %1361
  br i1 %1363, label %1365, label %1374

1365:                                             ; preds = %1364
  %1366 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1367 unwind label %201

1367:                                             ; preds = %1365
  br i1 %1366, label %1368, label %.critedge614

1368:                                             ; preds = %1367
  %1369 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1369, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1371 unwind label %201

1371:                                             ; preds = %1368
  %1372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1370, ptr noundef nonnull @.str.55)
          to label %.invoke1161 unwind label %201

1373:                                             ; preds = %1353, %1141, %1135
  %.pn586.pn = phi { ptr, i32 } [ %.pn586, %1141 ], [ %1136, %1135 ], [ %.pn570.pn.pn.pn.pn.pn, %1353 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #8
  br label %1391

1374:                                             ; preds = %1357, %1360, %1364
  %1375 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1376 unwind label %201

1376:                                             ; preds = %1374
  br i1 %1375, label %1377, label %.critedge614

1377:                                             ; preds = %1376
  %1378 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %1379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1378, ptr noundef nonnull @__func__._Z27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS2_11ExternCrateERKN3HIR6ModuleERKNS2_4PathEjNS2_12AbsolutePathE)
          to label %1380 unwind label %201

1380:                                             ; preds = %1377
  %1381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(8) %1379, ptr noundef nonnull align 8 dereferenceable(64) %1355)
          to label %1382 unwind label %201

1382:                                             ; preds = %1380
  %1383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(8) %1381, ptr noundef nonnull align 8 dereferenceable(64) %0)
          to label %1384 unwind label %201

1384:                                             ; preds = %1382
  %1385 = getelementptr inbounds i8, ptr %0, i64 128
  %1386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(8) %1383, ptr noundef nonnull align 8 dereferenceable(56) %1385)
          to label %.invoke1161 unwind label %201

.invoke1161:                                      ; preds = %1384, %1371
  %1387 = phi ptr [ %1372, %1371 ], [ %1386, %1384 ]
  %1388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1387, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %.invoke unwind label %201

.invoke:                                          ; preds = %.invoke1161
  %1389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1388, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.critedge614 unwind label %201

1390:                                             ; preds = %1223, %529
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #8
  br label %1394

1391:                                             ; preds = %1373, %1134, %848, %530, %203, %201
  %.pn609 = phi { ptr, i32 } [ %204, %203 ], [ %202, %201 ], [ %.pn606.pn, %530 ], [ %.pn586.pn, %1373 ], [ %.pn553.pn, %1134 ], [ %.pn510.pn, %848 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  br label %1392

1392:                                             ; preds = %1391, %199
  %.pn609.pn = phi { ptr, i32 } [ %.pn609, %1391 ], [ %200, %199 ]
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #8
  br label %1393

1393:                                             ; preds = %1392, %198, %192
  %.pn609.pn.pn = phi { ptr, i32 } [ %.pn609.pn, %1392 ], [ %.pn, %198 ], [ %193, %192 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #8
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %0) #8
  resume { ptr, i32 } %.pn609.pn.pn

.critedge614:                                     ; preds = %.invoke, %1367, %1376, %191
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #8
  br label %1394

1394:                                             ; preds = %1390, %.critedge614
  ret void

1395:                                             ; preds = %1320, %1247, %1075, %1046, %1017, %738, %480, %459, %382, %360, %337, %319, %261
  unreachable
}

; 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 #6 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 #6 align 2

declare noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; 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 uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(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 @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3HIR8TypeItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_123get_hir_modenum_by_pathERK4SpanRKN3AST5CrateERKN3HIR10SimplePathERb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_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 hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.18") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24), 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(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_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 hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_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 noundef nonnull align 8 dereferenceable(24) ptr @_ZN3HIR4Enum5Class7as_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 @_ZNSt6vectorIN3HIR4Enum11DataVariantESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE3$_9vEEOT_"(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 zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7 align 2

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

declare void @_ZN3HIR10SimplePath13pop_componentEv(ptr dead_on_unwind writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

declare noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3HIR4Enum12num_variantsEv(ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(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 @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_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 dso_local noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3HIR9ValueItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(368)) local_unnamed_addr #6 align 2

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

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

declare noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3HIR5Crate19get_valitem_by_pathERK4SpanRKNS_10SimplePathEb(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST11PathBindingINS_17PathBinding_ValueEE10is_UnboundEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_12vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_13vEEOT_"(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 @_ZNK3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_14vEEOT_"(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(352) ptr @_ZNK3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE4findERSE_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(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 @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_15vEEOT_"(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 ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3HIR9MacroItem7tag_strEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_16vEEOT_"(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(944) ptr @_ZNK3HIR8CratePtrdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

declare noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR5Crate15get_mod_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ27Resolve_Use_GetBinding__extRK4SpanRKN3AST5CrateERKNS7_11ExternCrateERKN3HIR6ModuleERKNS7_4PathEjNS7_12AbsolutePathEE4$_17vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Macro14make_ProcMacroENS0_14Data_ProcMacroE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Macro") align 8, ptr noundef) local_unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #6

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress 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 #8 = { nounwind }
attributes #9 = { noreturn }
attributes #10 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !10, i64 0, !13, i64 8}
!13 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !10, i64 0, !10, i64 8}
!14 = !{!13, !10, i64 0}
!15 = !{!13, !10, i64 8}
!16 = !{!17, !17, i64 0}
!17 = !{!"bool", !7, i64 0}
!18 = !{i8 0, i8 2}
!19 = !{}
!20 = !{!21, !17, i64 8}
!21 = !{!"_ZTSN3HIR4Enum11DataVariantE", !22, i64 0, !17, i64 8, !23, i64 16}
!22 = !{!"_ZTS8RcString", !10, i64 0}
!23 = !{!"_ZTSN3HIR7TypeRefE", !10, i64 0}
!24 = !{!25, !10, i64 0}
!25 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !10, i64 0, !6, i64 8, !10, i64 16}
!26 = !{!25, !6, i64 8}
!27 = !{!25, !10, i64 16}
!28 = !{!29, !10, i64 0}
!29 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !10, i64 0, !6, i64 8, !10, i64 16}
!30 = !{!29, !6, i64 8}
!31 = !{!29, !10, i64 16}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = !{!35, !17, i64 8}
!35 = !{!"_ZTSN3HIR8TypeItem11Data_ImportE", !36, i64 0, !17, i64 8, !6, i64 12}
!36 = !{!"_ZTSN3HIR10SimplePathE", !37, i64 0}
!37 = !{!"_ZTS10ThinVectorI8RcStringE", !10, i64 0}
!38 = !{!35, !6, i64 12}
!39 = !{!40, !17, i64 8}
!40 = !{!"_ZTSN3HIR9ValueItem11Data_ImportE", !36, i64 0, !17, i64 8, !6, i64 12}
!41 = !{!40, !6, i64 12}
!42 = !{!43, !10, i64 0}
!43 = !{!"_ZTSN3AST17PathBinding_Macro14Data_ProcMacroE", !10, i64 0, !22, i64 8}


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