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

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

%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector" }
%class.RcString = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::PathBinding_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 }
%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.247 = type { ptr, ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base.300" }
%"struct.std::__detail::_Node_iterator_base.300" = type { ptr }
%"struct.AST::PathBinding.61" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.std::span" = type { ptr, i64 }
%struct.Span = type { ptr }
%class.anon.420 = type { 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.45", %"class.std::unique_ptr.53", %"class.std::vector.40" }
%"class.std::unique_ptr.45" = type { %"struct.std::__uniq_ptr_data.46" }
%"struct.std::__uniq_ptr_data.46" = type { %"class.std::__uniq_ptr_impl.47" }
%"class.std::__uniq_ptr_impl.47" = type { %"class.std::tuple.48" }
%"class.std::tuple.48" = type { %"struct.std::_Tuple_impl.49" }
%"struct.std::_Tuple_impl.49" = type { %"struct.std::_Head_base.52" }
%"struct.std::_Head_base.52" = type { ptr }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.61", %"struct.AST::PathBinding.62" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::PathBinding.62" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%class.anon.520 = type { ptr, ptr, ptr }
%class.anon.521 = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Trait" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Struct" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_TraitAlias" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Union" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Enum" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_TypeAlias" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.522" = type { %"struct.std::__detail::_Node_iterator_base.523" }
%"struct.std::__detail::_Node_iterator_base.523" = type { ptr }
%class.anon.561 = type { ptr }
%class.anon.562 = type { ptr }
%class.anon.563 = type { ptr, ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Static" = type { ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Struct" = type { ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Function" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.564" = type { %"struct.std::__detail::_Node_iterator_base.565" }
%"struct.std::__detail::_Node_iterator_base.565" = type { ptr }
%"struct.AST::PathBinding_Macro::Data_MacroRules" = type { ptr, ptr }
%"struct.AST::PathBinding_Macro::Data_ProcMacro" = type { ptr, %class.RcString }
%"class.HIR::Module" = type { %"class.std::vector.248", %"class.std::unordered_map.253", %"class.std::unordered_map.267", %"class.std::unordered_map.281", %"class.std::vector.295" }
%"class.std::vector.248" = type { %"struct.std::_Vector_base.249" }
%"struct.std::_Vector_base.249" = 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.253" = type { %"class.std::_Hashtable.254" }
%"class.std::_Hashtable.254" = 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.267" = type { %"class.std::_Hashtable.268" }
%"class.std::_Hashtable.268" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.281" = type { %"class.std::_Hashtable.282" }
%"class.std::_Hashtable.282" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.295" = type { %"struct.std::_Vector_base.296" }
%"struct.std::_Vector_base.296" = 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.301" = type { %class.RcString, %"class.std::unique_ptr.303" }
%"class.std::unique_ptr.303" = type { %"struct.std::__uniq_ptr_data.304" }
%"struct.std::__uniq_ptr_data.304" = type { %"class.std::__uniq_ptr_impl.305" }
%"class.std::__uniq_ptr_impl.305" = type { %"class.std::tuple.306" }
%"class.std::tuple.306" = type { %"struct.std::_Tuple_impl.307" }
%"struct.std::_Tuple_impl.307" = type { %"struct.std::_Head_base.310" }
%"struct.std::_Head_base.310" = type { ptr }
%"struct.HIR::VisEnt" = type { %"class.HIR::Publicity", %"class.HIR::TypeItem" }
%"class.HIR::Publicity" = type { %"class.std::shared_ptr.311" }
%"class.std::shared_ptr.311" = type { %"class.std::__shared_ptr.312" }
%"class.std::__shared_ptr.312" = 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.334", i8, %"class.std::unordered_map.365", %"class.std::unordered_map.379", %"class.std::unordered_multimap", %"class.std::unordered_map.406", i32, %"class.std::vector.334", %"struct.HIR::SimplePath" }
%"class.HIR::GenericParams" = type { %"class.std::vector.314", %"class.std::vector.319", %"class.std::vector.324", %"class.std::vector.329" }
%"class.std::vector.314" = type { %"struct.std::_Vector_base.315" }
%"struct.std::_Vector_base.315" = 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.319" = type { %"struct.std::_Vector_base.320" }
%"struct.std::_Vector_base.320" = 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.324" = type { %"struct.std::_Vector_base.325" }
%"struct.std::_Vector_base.325" = 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.329" = type { %"struct.std::_Vector_base.330" }
%"struct.std::_Vector_base.330" = 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.365" = type { %"class.std::_Hashtable.366" }
%"class.std::_Hashtable.366" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.379" = type { %"class.std::_Hashtable.380" }
%"class.std::_Hashtable.380" = 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.393" }
%"class.std::_Hashtable.393" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.406" = type { %"class.std::_Hashtable.407" }
%"class.std::_Hashtable.407" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.334" = type { %"struct.std::_Vector_base.335" }
%"struct.std::_Vector_base.335" = 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::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"struct.HIR::TypeItem::Data_Import" = type { %"struct.HIR::SimplePath", i8, i32 }
%"class.AST::Crate" = type { %"class.AST::AttributeList", %"class.std::map", %"class.AST::Module", %"class.std::vector", %"class.std::map.200", %"class.std::map.206", %class.RcString, %class.RcString, %class.RcString, %class.RcString, i8, %"class.std::vector.211", %"class.std::vector.216", %"class.std::vector.221", 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.81" }
%"class.std::vector.81" = type { %"struct.std::_Vector_base.82" }
%"struct.std::_Vector_base.82" = 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" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.AST::Module" = type { %"struct.AST::AbsolutePath", %"class.std::vector.0", %"class.std::vector.5", %"class.std::vector.10", %"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.23", %"class.std::vector.28", %"class.std::vector.33" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = 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.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = 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.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.200" = type { %"class.std::_Rb_tree.201" }
%"class.std::_Rb_tree.201" = 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.206" = type { %"class.std::_Rb_tree.207" }
%"class.std::_Rb_tree.207" = 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.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = 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.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = 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.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = 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.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.AST::ExternCrate" = type { %class.RcString, %class.RcString, %"class.std::__cxx11::basic_string", %"class.HIR::CratePtr" }
%"class.HIR::CratePtr" = type { ptr }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.421", %"class.std::vector.426", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.446", %"class.std::map.451", %"class.std::vector.456", %"struct.HIR::Crate::ImplGroup.461", %"class.std::map.472", %"class.std::map.477", %"class.std::vector", %"class.std::unordered_map.482", %"class.std::vector", %"class.std::unordered_map.501", %"class.std::vector.515", %"class.std::vector.216" }
%"class.std::vector.421" = type { %"struct.std::_Vector_base.422" }
%"struct.std::_Vector_base.422" = 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.426" = type { %"struct.std::_Vector_base.427" }
%"struct.std::_Vector_base.427" = 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.431", %"class.std::vector.436", %"class.std::vector.436" }
%"class.std::map.431" = type { %"class.std::_Rb_tree.432" }
%"class.std::_Rb_tree.432" = 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.436" = type { %"struct.std::_Vector_base.437" }
%"struct.std::_Vector_base.437" = 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.441" }
%"class.std::map.441" = type { %"class.std::_Rb_tree.442" }
%"class.std::_Rb_tree.442" = 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.446" = type { %"class.std::_Rb_tree.447" }
%"class.std::_Rb_tree.447" = 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.451" = type { %"class.std::_Rb_tree.452" }
%"class.std::_Rb_tree.452" = 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.456" = type { %"struct.std::_Vector_base.457" }
%"struct.std::_Vector_base.457" = 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.461" = type { %"class.std::map.462", %"class.std::vector.467", %"class.std::vector.467" }
%"class.std::map.462" = type { %"class.std::_Rb_tree.463" }
%"class.std::_Rb_tree.463" = 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.467" = type { %"struct.std::_Vector_base.468" }
%"struct.std::_Vector_base.468" = 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.472" = type { %"class.std::_Rb_tree.473" }
%"class.std::_Rb_tree.473" = 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.477" = type { %"class.std::_Rb_tree.478" }
%"class.std::_Rb_tree.478" = 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.482" = type { %"class.std::_Hashtable.483" }
%"class.std::_Hashtable.483" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.501" = type { %"class.std::_Hashtable.502" }
%"class.std::_Hashtable.502" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.515" = type { %"struct.std::_Vector_base.516" }
%"struct.std::_Vector_base.516" = 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.524" = type { %class.RcString, %"class.std::unique_ptr.526" }
%"class.std::unique_ptr.526" = type { %"struct.std::__uniq_ptr_data.527" }
%"struct.std::__uniq_ptr_data.527" = type { %"class.std::__uniq_ptr_impl.528" }
%"class.std::__uniq_ptr_impl.528" = type { %"class.std::tuple.529" }
%"class.std::tuple.529" = type { %"struct.std::_Tuple_impl.530" }
%"struct.std::_Tuple_impl.530" = type { %"struct.std::_Head_base.533" }
%"struct.std::_Head_base.533" = type { ptr }
%"struct.HIR::VisEnt.534" = 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.550" }
%"struct.HIR::Linkage" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.HIR::TypeRef" = type { ptr }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.535", %"class.std::vector.535", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.535" = type { %"struct.std::_Vector_base.536" }
%"struct.std::_Vector_base.536" = 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.540", %"class.std::vector.545" }
%"class.std::vector.540" = type { %"struct.std::_Vector_base.541" }
%"struct.std::_Vector_base.541" = 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.545" = type { %"struct.std::_Vector_base.546" }
%"struct.std::_Vector_base.546" = 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.550" = type { %"class.std::_Rb_tree.551" }
%"class.std::_Rb_tree.551" = 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.566" = type { %class.RcString, %"class.std::unique_ptr.568" }
%"class.std::unique_ptr.568" = type { %"struct.std::__uniq_ptr_data.569" }
%"struct.std::__uniq_ptr_data.569" = type { %"class.std::__uniq_ptr_impl.570" }
%"class.std::__uniq_ptr_impl.570" = type { %"class.std::tuple.571" }
%"class.std::tuple.571" = type { %"struct.std::_Tuple_impl.572" }
%"struct.std::_Tuple_impl.572" = type { %"struct.std::_Head_base.575" }
%"struct.std::_Head_base.575" = type { ptr }
%"struct.HIR::VisEnt.576" = 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.216" }
%"struct.HIR::MacroItem::Data_Import" = type { %"struct.HIR::SimplePath" }

@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [24 x i8], align 1
@__func__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE = external hidden unnamed_addr constant [47 x i8], align 1
@__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE = external hidden unnamed_addr constant [191 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), i32 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) #0

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare void @__cxa_free_exception(ptr)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #0 align 2

; 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 #3 align 2

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) #0

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #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) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 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)) #0 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)) #0 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) #0 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) #0 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) #0 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) #0 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) #0 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) #0 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) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 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) #0 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) #0 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) #0 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)) #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(1112) %1, ptr noundef nonnull align 8 dereferenceable(480) %2, ptr noundef nonnull align 8 dereferenceable(216) %3, ptr noundef nonnull align 8 dereferenceable(240) %4, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef %6) #0 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %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 %class.TraceLog, align 8
  %16 = alloca %"class.std::function", align 8
  %17 = alloca %class.anon.247, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %22 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"struct.AST::PathBinding.61", align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"class.std::vector", align 8
  %30 = alloca %"class.std::span", align 8
  %31 = alloca %struct.Span, align 8
  %32 = alloca %"class.std::function", align 8
  %33 = alloca %class.anon.420, align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"class.std::span", align 8
  %36 = alloca %"class.AST::PathBinding_Type", align 8
  %37 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %38 = alloca %"class.AST::Path", align 8
  %39 = alloca i32, align 4
  %40 = alloca %"class.std::span", align 8
  %41 = alloca ptr, align 8
  %42 = alloca %"class.std::span", align 8
  %43 = alloca %"class.std::span", align 8
  %44 = alloca %"class.AST::PathBinding_Type", align 8
  %45 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %46 = alloca %"class.AST::Path", align 8
  %47 = alloca %struct.Span, align 8
  %48 = alloca %"class.std::function", align 8
  %49 = alloca %class.anon.520, align 8
  %50 = alloca %"class.std::span", align 8
  %51 = alloca %"struct.AST::AbsolutePath", align 8
  %52 = alloca %class.RcString, align 8
  %53 = alloca i8, align 1
  %54 = alloca ptr, align 8
  %55 = alloca i8, align 1
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %struct.Span, align 8
  %59 = alloca %"class.std::function", align 8
  %60 = alloca %class.anon.521, align 8
  %61 = alloca i8, align 1
  %62 = alloca ptr, align 8
  %63 = alloca %"class.AST::PathBinding_Type", align 8
  %64 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %65 = alloca i8, align 1
  %66 = alloca ptr, align 8
  %67 = alloca %"class.AST::PathBinding_Type", align 8
  %68 = alloca %"struct.AST::PathBinding_Type::Data_Trait", align 8
  %69 = alloca i8, align 1
  %70 = alloca ptr, align 8
  %71 = alloca %"class.AST::PathBinding_Type", align 8
  %72 = alloca %"struct.AST::PathBinding_Type::Data_Struct", align 8
  %73 = alloca i8, align 1
  %74 = alloca ptr, align 8
  %75 = alloca %"class.AST::PathBinding_Type", align 8
  %76 = alloca %"struct.AST::PathBinding_Type::Data_TraitAlias", align 8
  %77 = alloca i8, align 1
  %78 = alloca ptr, align 8
  %79 = alloca %"class.AST::PathBinding_Type", align 8
  %80 = alloca %"struct.AST::PathBinding_Type::Data_Union", align 8
  %81 = alloca i8, align 1
  %82 = alloca ptr, align 8
  %83 = alloca %"class.AST::PathBinding_Type", align 8
  %84 = alloca %"struct.AST::PathBinding_Type::Data_Enum", align 8
  %85 = alloca i8, align 1
  %86 = alloca ptr, align 8
  %87 = alloca %"class.AST::PathBinding_Type", align 8
  %88 = alloca %"struct.AST::PathBinding_Type::Data_TypeAlias", align 8
  %89 = alloca i8, align 1
  %90 = alloca ptr, align 8
  %91 = alloca %"class.AST::PathBinding_Type", align 8
  %92 = alloca %"struct.AST::PathBinding_Type::Data_TypeAlias", align 8
  %93 = alloca %"class.AST::Path", align 8
  %94 = alloca ptr, align 8
  %95 = alloca %"struct.std::__detail::_Node_const_iterator.522", align 8
  %96 = alloca %"struct.std::__detail::_Node_const_iterator.522", align 8
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca ptr, align 8
  %100 = alloca %"struct.AST::PathBinding", align 8
  %101 = alloca ptr, align 8
  %102 = alloca %"class.std::vector", align 8
  %103 = alloca %"class.std::span", align 8
  %104 = alloca %struct.Span, align 8
  %105 = alloca %"class.std::function", align 8
  %106 = alloca %class.anon.561, align 8
  %107 = alloca ptr, align 8
  %108 = alloca i32, align 4
  %109 = alloca %"class.std::span", align 8
  %110 = alloca ptr, align 8
  %111 = alloca %"class.std::span", align 8
  %112 = alloca %"class.std::span", align 8
  %113 = alloca i64, align 8
  %114 = alloca %"class.std::span", align 8
  %115 = alloca %struct.Span, align 8
  %116 = alloca %"class.std::function", align 8
  %117 = alloca %class.anon.562, align 8
  %118 = alloca %"class.AST::PathBinding_Value", align 8
  %119 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %120 = alloca %"class.AST::Path", align 8
  %121 = alloca %struct.Span, align 8
  %122 = alloca %"class.std::function", align 8
  %123 = alloca %class.anon.563, align 8
  %124 = alloca %"class.std::span", align 8
  %125 = alloca %"struct.AST::AbsolutePath", align 8
  %126 = alloca %class.RcString, align 8
  %127 = alloca i8, align 1
  %128 = alloca ptr, align 8
  %129 = alloca i8, align 1
  %130 = alloca ptr, align 8
  %131 = alloca i8, align 1
  %132 = alloca ptr, align 8
  %133 = alloca %"class.AST::PathBinding_Value", align 8
  %134 = alloca %"struct.AST::PathBinding_Value::Data_Static", align 8
  %135 = alloca i8, align 1
  %136 = alloca ptr, align 8
  %137 = alloca %"class.AST::PathBinding_Value", align 8
  %138 = alloca %"struct.AST::PathBinding_Value::Data_Static", align 8
  %139 = alloca i8, align 1
  %140 = alloca ptr, align 8
  %141 = alloca %"class.AST::PathBinding_Value", align 8
  %142 = alloca %"struct.AST::PathBinding_Value::Data_Struct", align 8
  %143 = alloca i8, align 1
  %144 = alloca ptr, align 8
  %145 = alloca %"class.AST::PathBinding_Value", align 8
  %146 = alloca %"struct.AST::PathBinding_Value::Data_Struct", align 8
  %147 = alloca i8, align 1
  %148 = alloca ptr, align 8
  %149 = alloca %"class.AST::PathBinding_Value", align 8
  %150 = alloca %"struct.AST::PathBinding_Value::Data_Function", align 8
  %151 = alloca %"class.AST::Path", align 8
  %152 = alloca ptr, align 8
  %153 = alloca %"struct.std::__detail::_Node_const_iterator.564", align 8
  %154 = alloca %"struct.std::__detail::_Node_const_iterator.564", align 8
  %155 = alloca ptr, align 8
  %156 = alloca ptr, align 8
  %157 = alloca %"struct.AST::PathBinding.62", align 8
  %158 = alloca ptr, align 8
  %159 = alloca %"class.std::vector", align 8
  %160 = alloca %"class.std::span", align 8
  %161 = alloca %"struct.AST::AbsolutePath", align 8
  %162 = alloca %class.RcString, align 8
  %163 = alloca i8, align 1
  %164 = alloca ptr, align 8
  %165 = alloca i8, align 1
  %166 = alloca ptr, align 8
  %167 = alloca %"class.AST::PathBinding_Macro", align 8
  %168 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %169 = alloca i8, align 1
  %170 = alloca ptr, align 8
  %171 = alloca %"class.AST::PathBinding_Macro", align 8
  %172 = alloca %"struct.AST::PathBinding_Macro::Data_ProcMacro", align 8
  %173 = alloca i8, align 1
  %174 = alloca ptr, align 8
  %175 = alloca %"class.AST::PathBinding_Macro", align 8
  %176 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %177 = alloca %"class.AST::Path", align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  store ptr %6, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %15) #8
  %178 = call noundef zeroext i1 @_Z13debug_enabledv()
  %179 = zext i1 %178 to i64
  %180 = select i1 %178, ptr @__func__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #8
  %181 = getelementptr inbounds %class.anon.247, ptr %17, i32 0, i32 0
  %182 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %182, ptr %181, align 8, !tbaa !5
  %183 = getelementptr inbounds %class.anon.247, ptr %17, i32 0, i32 1
  store ptr %6, ptr %183, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(16) %17) #8
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef %180, ptr noundef %16)
          to label %184 unwind label %198

184:                                              ; preds = %7
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %185 = load ptr, ptr %11, align 8, !tbaa !5
  %186 = getelementptr inbounds %"class.HIR::Module", ptr %185, i32 0, i32 2
  store ptr %186, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %187 = load ptr, ptr %20, align 8, !tbaa !5
  %188 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %187) #8
  %189 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %21, i32 0, i32 0
  %190 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.300", ptr %189, i32 0, i32 0
  store ptr %188, ptr %190, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %191 = load ptr, ptr %20, align 8, !tbaa !5
  %192 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %191) #8
  %193 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %22, i32 0, i32 0
  %194 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.300", ptr %193, i32 0, i32 0
  store ptr %192, ptr %194, align 8
  br label %195

195:                                              ; preds = %998, %184
  %196 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_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
  br i1 %196, label %202, label %197

197:                                              ; preds = %195
  store i32 2, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %1001

198:                                              ; preds = %7
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %18, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %19, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #8
  br label %1986

202:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %203 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  store ptr %203, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %204 = load ptr, ptr %24, align 8, !tbaa !5
  %205 = getelementptr inbounds %"struct.std::pair.301", ptr %204, i32 0, i32 1
  %206 = call noundef nonnull align 8 dereferenceable(424) ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %205) #8
  store ptr %206, ptr %25, align 8, !tbaa !5
  %207 = load ptr, ptr %25, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %207, i32 0, i32 0
  %209 = invoke noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %208)
          to label %210 unwind label %258

210:                                              ; preds = %202
  br i1 %209, label %211, label %991

211:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %212 = load ptr, ptr %25, align 8, !tbaa !5
  %213 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %212, i32 0, i32 1
  store ptr %213, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %27) #8
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %27)
          to label %214 unwind label %262

214:                                              ; preds = %211
  %215 = load ptr, ptr %26, align 8, !tbaa !5
  %216 = invoke noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %215)
          to label %217 unwind label %266

217:                                              ; preds = %214
  br i1 %216, label %218, label %533

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %219 = load ptr, ptr %26, align 8, !tbaa !5
  %220 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %219)
          to label %221 unwind label %270

221:                                              ; preds = %218
  %222 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %220, i32 0, i32 0
  store ptr %222, ptr %28, align 8, !tbaa !5
  %223 = load ptr, ptr %28, align 8, !tbaa !5
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %223)
          to label %225 unwind label %270

225:                                              ; preds = %221
  %226 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 0
  %227 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %226, i32 0, i32 0
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %229 unwind label %270

229:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #8
  %230 = load ptr, ptr %28, align 8, !tbaa !5
  %231 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %230)
          to label %232 unwind label %274

232:                                              ; preds = %229
  %233 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 0
  %234 = extractvalue { ptr, i64 } %231, 0
  store ptr %234, ptr %233, align 8
  %235 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 1
  %236 = extractvalue { ptr, i64 } %231, 1
  store i64 %236, ptr %235, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %29, ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %237 unwind label %274

237:                                              ; preds = %232
  %238 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 0
  %239 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %238, i32 0, i32 1
  %240 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %239, ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #8
  br label %241

241:                                              ; preds = %237
  %242 = load ptr, ptr %9, align 8, !tbaa !5
  %243 = getelementptr inbounds %"class.AST::Crate", ptr %242, i32 0, i32 4
  %244 = load ptr, ptr %28, align 8, !tbaa !5
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %244)
          to label %246 unwind label %270

246:                                              ; preds = %241
  %247 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %243, ptr noundef nonnull align 8 dereferenceable(8) %245)
          to label %248 unwind label %270

248:                                              ; preds = %246
  %249 = icmp eq i64 %247, 1
  br i1 %249, label %291, label %250

250:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %251 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %251)
          to label %252 unwind label %278

252:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %253 = getelementptr inbounds %class.anon.420, ptr %33, i32 0, i32 0
  %254 = load ptr, ptr %28, align 8, !tbaa !5
  store ptr %254, ptr %253, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef %32)
          to label %255 unwind label %282

255:                                              ; preds = %252
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  %256 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %256, ptr noundef @.str.5)
          to label %257 unwind label %287

257:                                              ; preds = %255
  invoke void @__cxa_throw(ptr %256, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %1992 unwind label %270

258:                                              ; preds = %202
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %18, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %19, align 4
  br label %1000

262:                                              ; preds = %211
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %18, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %19, align 4
  br label %990

266:                                              ; preds = %974, %214
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %18, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %19, align 4
  br label %989

270:                                              ; preds = %257, %246, %241, %225, %221, %218
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %18, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %19, align 4
  br label %532

274:                                              ; preds = %232, %229
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %18, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #8
  br label %532

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

282:                                              ; preds = %252
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %18, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %19, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  br label %286

286:                                              ; preds = %282, %278
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %532

287:                                              ; preds = %255
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %18, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %19, align 4
  call void @__cxa_free_exception(ptr %256) #8
  br label %532

291:                                              ; preds = %248
  br label %292

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %294 = load ptr, ptr %9, align 8, !tbaa !5
  %295 = getelementptr inbounds %"class.AST::Crate", ptr %294, i32 0, i32 4
  %296 = load ptr, ptr %28, align 8, !tbaa !5
  %297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %296)
          to label %298 unwind label %332

298:                                              ; preds = %293
  %299 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %295, ptr noundef nonnull align 8 dereferenceable(8) %297)
          to label %300 unwind label %332

300:                                              ; preds = %298
  %301 = getelementptr inbounds %"class.AST::ExternCrate", ptr %299, i32 0, i32 3
  %302 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %301)
          to label %303 unwind label %332

303:                                              ; preds = %300
  %304 = getelementptr inbounds %"class.HIR::Crate", ptr %302, i32 0, i32 2
  store ptr %304, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #8
  %305 = load ptr, ptr %28, align 8, !tbaa !5
  %306 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %305)
          to label %307 unwind label %336

307:                                              ; preds = %303
  %308 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 0
  %309 = extractvalue { ptr, i64 } %306, 0
  store ptr %309, ptr %308, align 8
  %310 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 1
  %311 = extractvalue { ptr, i64 } %306, 1
  store i64 %311, ptr %310, align 8
  %312 = invoke noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %35)
          to label %313 unwind label %336

313:                                              ; preds = %307
  %314 = icmp eq i64 %312, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #8
  br i1 %314, label %315, label %353

315:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  %316 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %37, i32 0, i32 0
  store ptr null, ptr %316, align 8, !tbaa !9
  %317 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %37, i32 0, i32 1
  %318 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %317, i32 0, i32 0
  store ptr null, ptr %318, align 8, !tbaa !12
  %319 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %317, i32 0, i32 1
  %320 = load ptr, ptr %34, align 8, !tbaa !5
  store ptr %320, ptr %319, align 8, !tbaa !13
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %36, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %37)
          to label %321 unwind label %340

321:                                              ; preds = %315
  %322 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %323 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %324 unwind label %344

324:                                              ; preds = %321
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  %325 = load ptr, ptr %8, align 8, !tbaa !5
  %326 = load ptr, ptr %10, align 8, !tbaa !5
  %327 = load ptr, ptr %24, align 8, !tbaa !5
  %328 = getelementptr inbounds %"struct.std::pair.301", ptr %327, i32 0, i32 0
  %329 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %38, ptr noundef nonnull align 8 dereferenceable(64) %27)
          to label %330 unwind label %332

330:                                              ; preds = %324
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %325, ptr noundef nonnull align 8 dereferenceable(480) %326, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef nonnull align 8 dereferenceable(36) %329, ptr noundef %38, i1 noundef zeroext false)
          to label %331 unwind label %349

331:                                              ; preds = %330
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %38) #8
  store i32 3, ptr %23, align 4
  br label %524

332:                                              ; preds = %324, %300, %298, %293
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %18, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %19, align 4
  br label %531

336:                                              ; preds = %307, %303
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %18, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #8
  br label %531

340:                                              ; preds = %315
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %18, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %19, align 4
  br label %348

344:                                              ; preds = %321
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %18, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %348

348:                                              ; preds = %344, %340
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  br label %531

349:                                              ; preds = %330
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %18, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %19, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %38) #8
  br label %531

353:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  store i32 0, ptr %39, align 4, !tbaa !14
  br label %354

354:                                              ; preds = %498, %353
  %355 = load i32, ptr %39, align 4, !tbaa !14
  %356 = zext i32 %355 to i64
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #8
  %357 = load ptr, ptr %28, align 8, !tbaa !5
  %358 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %357)
          to label %359 unwind label %369

359:                                              ; preds = %354
  %360 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 0
  %361 = extractvalue { ptr, i64 } %358, 0
  store ptr %361, ptr %360, align 8
  %362 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 1
  %363 = extractvalue { ptr, i64 } %358, 1
  store i64 %363, ptr %362, align 8
  %364 = invoke noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %40)
          to label %365 unwind label %369

365:                                              ; preds = %359
  %366 = sub i64 %364, 1
  %367 = icmp ult i64 %356, %366
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  br i1 %367, label %373, label %368

368:                                              ; preds = %365
  store i32 6, ptr %23, align 4
  br label %502

369:                                              ; preds = %359, %354
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %18, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  br label %503

373:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %374 = load ptr, ptr %34, align 8, !tbaa !5
  %375 = getelementptr inbounds %"class.HIR::Module", ptr %374, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #8
  %376 = load ptr, ptr %28, align 8, !tbaa !5
  %377 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %376)
          to label %378 unwind label %425

378:                                              ; preds = %373
  %379 = getelementptr inbounds { ptr, i64 }, ptr %42, i32 0, i32 0
  %380 = extractvalue { ptr, i64 } %377, 0
  store ptr %380, ptr %379, align 8
  %381 = getelementptr inbounds { ptr, i64 }, ptr %42, i32 0, i32 1
  %382 = extractvalue { ptr, i64 } %377, 1
  store i64 %382, ptr %381, align 8
  %383 = load i32, ptr %39, align 4, !tbaa !14
  %384 = zext i32 %383 to i64
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringEixEm(ptr noundef nonnull align 8 dereferenceable(16) %42, i64 noundef %384)
          to label %386 unwind label %425

386:                                              ; preds = %378
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %375, ptr noundef nonnull align 8 dereferenceable(8) %385)
          to label %388 unwind label %425

388:                                              ; preds = %386
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #8
  store ptr %387, ptr %41, align 8, !tbaa !5
  %389 = load i32, ptr %39, align 4, !tbaa !14
  %390 = zext i32 %389 to i64
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #8
  %391 = load ptr, ptr %28, align 8, !tbaa !5
  %392 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %391)
          to label %393 unwind label %429

393:                                              ; preds = %388
  %394 = getelementptr inbounds { ptr, i64 }, ptr %43, i32 0, i32 0
  %395 = extractvalue { ptr, i64 } %392, 0
  store ptr %395, ptr %394, align 8
  %396 = getelementptr inbounds { ptr, i64 }, ptr %43, i32 0, i32 1
  %397 = extractvalue { ptr, i64 } %392, 1
  store i64 %397, ptr %396, align 8
  %398 = invoke noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %43)
          to label %399 unwind label %429

399:                                              ; preds = %393
  %400 = sub i64 %398, 2
  %401 = icmp eq i64 %390, %400
  br i1 %401, label %402, label %408

402:                                              ; preds = %399
  %403 = load ptr, ptr %41, align 8, !tbaa !5
  %404 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %403) #8
  %405 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %404, i32 0, i32 1
  %406 = invoke noundef zeroext i1 @_ZNK3HIR8TypeItem7is_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %405)
          to label %407 unwind label %429

407:                                              ; preds = %402
  br label %408

408:                                              ; preds = %407, %399
  %409 = phi i1 [ false, %399 ], [ %406, %407 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #8
  br i1 %409, label %410, label %450

410:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  call void @llvm.memset.p0.i64(ptr align 8 %45, i8 0, i64 24, i1 false)
  %411 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %45, i32 0, i32 0
  %412 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %45, i32 0, i32 1
  %413 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %45, i32 0, i32 2
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %44, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %45)
          to label %414 unwind label %433

414:                                              ; preds = %410
  %415 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %416 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %417 unwind label %437

417:                                              ; preds = %414
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  %418 = load ptr, ptr %8, align 8, !tbaa !5
  %419 = load ptr, ptr %10, align 8, !tbaa !5
  %420 = load ptr, ptr %24, align 8, !tbaa !5
  %421 = getelementptr inbounds %"struct.std::pair.301", ptr %420, i32 0, i32 0
  %422 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %46, ptr noundef nonnull align 8 dereferenceable(64) %27)
          to label %423 unwind label %442

423:                                              ; preds = %417
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef nonnull align 8 dereferenceable(480) %419, ptr noundef nonnull align 8 dereferenceable(8) %421, ptr noundef nonnull align 8 dereferenceable(36) %422, ptr noundef %46, i1 noundef zeroext false)
          to label %424 unwind label %446

424:                                              ; preds = %423
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %46) #8
  store ptr null, ptr %34, align 8, !tbaa !5
  store i32 6, ptr %23, align 4
  br label %495

425:                                              ; preds = %386, %378, %373
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %18, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #8
  br label %501

429:                                              ; preds = %402, %393, %388
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %18, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #8
  br label %501

433:                                              ; preds = %410
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %18, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %19, align 4
  br label %441

437:                                              ; preds = %414
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %18, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %441

441:                                              ; preds = %437, %433
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  br label %501

442:                                              ; preds = %489, %468, %451, %417
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %18, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %19, align 4
  br label %501

446:                                              ; preds = %423
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %18, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %19, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %46) #8
  br label %501

450:                                              ; preds = %408
  br label %451

451:                                              ; preds = %450
  %452 = load ptr, ptr %41, align 8, !tbaa !5
  %453 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %452) #8
  %454 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %453, i32 0, i32 1
  %455 = invoke noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %454)
          to label %456 unwind label %442

456:                                              ; preds = %451
  br i1 %455, label %487, label %457

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %458 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %458)
          to label %459 unwind label %469

459:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #8
  %460 = getelementptr inbounds %class.anon.520, ptr %49, i32 0, i32 0
  %461 = load ptr, ptr %28, align 8, !tbaa !5
  store ptr %461, ptr %460, align 8, !tbaa !5
  %462 = getelementptr inbounds %class.anon.520, ptr %49, i32 0, i32 1
  store ptr %39, ptr %462, align 8, !tbaa !5
  %463 = getelementptr inbounds %class.anon.520, ptr %49, i32 0, i32 2
  %464 = load ptr, ptr %41, align 8, !tbaa !5
  store ptr %464, ptr %463, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %465 unwind label %473

465:                                              ; preds = %459
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef %48)
          to label %466 unwind label %477

466:                                              ; preds = %465
  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
  %467 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %467, ptr noundef @.str.5)
          to label %468 unwind label %483

468:                                              ; preds = %466
  invoke void @__cxa_throw(ptr %467, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %1992 unwind label %442

469:                                              ; preds = %457
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %18, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %19, align 4
  br label %482

473:                                              ; preds = %459
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %18, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %19, align 4
  br label %481

477:                                              ; preds = %465
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %18, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %19, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %481

481:                                              ; preds = %477, %473
  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 %482

482:                                              ; preds = %481, %469
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %501

483:                                              ; preds = %466
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %18, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %19, align 4
  call void @__cxa_free_exception(ptr %467) #8
  br label %501

487:                                              ; preds = %456
  br label %488

488:                                              ; preds = %487
  br label %489

489:                                              ; preds = %488
  %490 = load ptr, ptr %41, align 8, !tbaa !5
  %491 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %490) #8
  %492 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %491, i32 0, i32 1
  %493 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %492)
          to label %494 unwind label %442

494:                                              ; preds = %489
  store ptr %493, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %23, align 4
  br label %495

495:                                              ; preds = %494, %424
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  %496 = load i32, ptr %23, align 4
  switch i32 %496, label %502 [
    i32 0, label %497
  ]

497:                                              ; preds = %495
  br label %498

498:                                              ; preds = %497
  %499 = load i32, ptr %39, align 4, !tbaa !14
  %500 = add i32 %499, 1
  store i32 %500, ptr %39, align 4, !tbaa !14
  br label %354, !llvm.loop !16

501:                                              ; preds = %483, %482, %446, %442, %441, %429, %425
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %503

502:                                              ; preds = %495, %368
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %504

503:                                              ; preds = %501, %369
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %531

504:                                              ; preds = %502
  %505 = load ptr, ptr %34, align 8, !tbaa !5
  %506 = icmp ne ptr %505, null
  br i1 %506, label %508, label %507

507:                                              ; preds = %504
  store i32 3, ptr %23, align 4
  br label %524

508:                                              ; preds = %504
  %509 = load ptr, ptr %34, align 8, !tbaa !5
  %510 = getelementptr inbounds %"class.HIR::Module", ptr %509, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #8
  %511 = load ptr, ptr %28, align 8, !tbaa !5
  %512 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %511)
          to label %513 unwind label %527

513:                                              ; preds = %508
  %514 = getelementptr inbounds { ptr, i64 }, ptr %50, i32 0, i32 0
  %515 = extractvalue { ptr, i64 } %512, 0
  store ptr %515, ptr %514, align 8
  %516 = getelementptr inbounds { ptr, i64 }, ptr %50, i32 0, i32 1
  %517 = extractvalue { ptr, i64 } %512, 1
  store i64 %517, ptr %516, align 8
  %518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %50)
          to label %519 unwind label %527

519:                                              ; preds = %513
  %520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %510, ptr noundef nonnull align 8 dereferenceable(8) %518)
          to label %521 unwind label %527

521:                                              ; preds = %519
  %522 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %520) #8
  %523 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %522, i32 0, i32 1
  store ptr %523, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #8
  store i32 0, ptr %23, align 4
  br label %524

524:                                              ; preds = %521, %507, %331
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  %525 = load i32, ptr %23, align 4
  switch i32 %525, label %982 [
    i32 0, label %526
  ]

526:                                              ; preds = %524
  br label %555

527:                                              ; preds = %519, %513, %508
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %18, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #8
  br label %531

531:                                              ; preds = %527, %503, %349, %348, %336, %332
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %532

532:                                              ; preds = %531, %287, %286, %274, %270
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %989

533:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  %534 = load ptr, ptr %24, align 8, !tbaa !5
  %535 = getelementptr inbounds %"struct.std::pair.301", ptr %534, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %535)
          to label %536 unwind label %541

536:                                              ; preds = %533
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %52)
          to label %537 unwind label %545

537:                                              ; preds = %536
  %538 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 0
  %539 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %540 unwind label %549

540:                                              ; preds = %537
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %555

541:                                              ; preds = %533
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %18, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %19, align 4
  br label %554

545:                                              ; preds = %536
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %18, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %19, align 4
  br label %553

549:                                              ; preds = %537
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %18, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %19, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %553

553:                                              ; preds = %549, %545
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  br label %554

554:                                              ; preds = %553, %541
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %989

555:                                              ; preds = %540, %526
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #8
  store i8 1, ptr %53, align 1, !tbaa !18
  br label %556

556:                                              ; preds = %973, %555
  %557 = load i8, ptr %53, align 1, !tbaa !18, !range !20, !noundef !21
  %558 = trunc i8 %557 to i1
  br i1 %558, label %560, label %559

559:                                              ; preds = %556
  store i32 11, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  br label %974

560:                                              ; preds = %556
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %561 = load ptr, ptr %26, align 8, !tbaa !5
  store ptr %561, ptr %54, align 8, !tbaa !5
  br label %562

562:                                              ; preds = %970, %560
  %563 = load i8, ptr %53, align 1, !tbaa !18, !range !20, !noundef !21
  %564 = trunc i8 %563 to i1
  br i1 %564, label %566, label %565

565:                                              ; preds = %562
  store i32 14, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %972

566:                                              ; preds = %562
  %567 = load ptr, ptr %54, align 8, !tbaa !5
  %568 = invoke noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %567)
          to label %569 unwind label %570

569:                                              ; preds = %566
  switch i32 %568, label %969 [
    i32 0, label %574
    i32 1, label %575
    i32 2, label %628
    i32 9, label %670
    i32 7, label %714
    i32 4, label %758
    i32 8, label %802
    i32 6, label %846
    i32 3, label %889
    i32 5, label %929
  ]

570:                                              ; preds = %566
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %18, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %19, align 4
  br label %971

574:                                              ; preds = %569
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 379, ptr noundef @__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE) #10
  unreachable

575:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #8
  store i8 1, ptr %55, align 1, !tbaa !18
  br label %576

576:                                              ; preds = %626, %575
  %577 = load i8, ptr %55, align 1, !tbaa !18, !range !20, !noundef !21
  %578 = trunc i8 %577 to i1
  br i1 %578, label %580, label %579

579:                                              ; preds = %576
  store i32 18, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #8
  br label %627

580:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %581 = load ptr, ptr %54, align 8, !tbaa !5
  %582 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %581)
          to label %583 unwind label %589

583:                                              ; preds = %580
  store ptr %582, ptr %56, align 8, !tbaa !5
  br label %584

584:                                              ; preds = %623, %583
  %585 = load ptr, ptr %56, align 8, !tbaa !5
  %586 = load i8, ptr %55, align 1, !tbaa !18, !range !20, !noundef !21
  %587 = trunc i8 %586 to i1
  br i1 %587, label %593, label %588

588:                                              ; preds = %584
  store i32 21, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  br label %625

589:                                              ; preds = %580
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %18, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %19, align 4
  br label %624

593:                                              ; preds = %584
  br label %594

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  store ptr @__func__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %595 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %595)
          to label %596 unwind label %603

596:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #8
  %597 = getelementptr inbounds %class.anon.521, ptr %60, i32 0, i32 0
  store ptr %57, ptr %597, align 8, !tbaa !5
  %598 = getelementptr inbounds %class.anon.521, ptr %60, i32 0, i32 1
  %599 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %599, ptr %598, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef %59)
          to label %600 unwind label %607

600:                                              ; preds = %596
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  %601 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %601, ptr noundef @.str.27)
          to label %602 unwind label %612

602:                                              ; preds = %600
  invoke void @__cxa_throw(ptr %601, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %1992 unwind label %616

603:                                              ; preds = %594
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %18, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %19, align 4
  br label %611

607:                                              ; preds = %596
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %18, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %19, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %611

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

612:                                              ; preds = %600
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %18, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %19, align 4
  call void @__cxa_free_exception(ptr %601) #8
  br label %620

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

620:                                              ; preds = %616, %612, %611
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %624

621:                                              ; No predecessors!
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622
  store i8 0, ptr %55, align 1, !tbaa !18
  br label %584, !llvm.loop !22

624:                                              ; preds = %620, %589
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #8
  br label %971

625:                                              ; preds = %588
  br label %626

626:                                              ; preds = %625
  store i8 0, ptr %55, align 1, !tbaa !18
  br label %576, !llvm.loop !23

627:                                              ; preds = %579
  br label %969

628:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #8
  store i8 1, ptr %61, align 1, !tbaa !18
  br label %629

629:                                              ; preds = %668, %628
  %630 = load i8, ptr %61, align 1, !tbaa !18, !range !20, !noundef !21
  %631 = trunc i8 %630 to i1
  br i1 %631, label %633, label %632

632:                                              ; preds = %629
  store i32 26, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  br label %669

633:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  %634 = load ptr, ptr %54, align 8, !tbaa !5
  %635 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %634)
          to label %636 unwind label %642

636:                                              ; preds = %633
  store ptr %635, ptr %62, align 8, !tbaa !5
  br label %637

637:                                              ; preds = %656, %636
  %638 = load ptr, ptr %62, align 8, !tbaa !5
  %639 = load i8, ptr %61, align 1, !tbaa !18, !range !20, !noundef !21
  %640 = trunc i8 %639 to i1
  br i1 %640, label %646, label %641

641:                                              ; preds = %637
  store i32 29, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  br label %667

642:                                              ; preds = %633
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %18, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %19, align 4
  br label %666

646:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  %647 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %64, i32 0, i32 0
  store ptr null, ptr %647, align 8, !tbaa !9
  %648 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %64, i32 0, i32 1
  %649 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %648, i32 0, i32 0
  store ptr null, ptr %649, align 8, !tbaa !12
  %650 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %648, i32 0, i32 1
  %651 = load ptr, ptr %62, align 8, !tbaa !5
  store ptr %651, ptr %650, align 8, !tbaa !13
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %63, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %64)
          to label %652 unwind label %657

652:                                              ; preds = %646
  %653 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %654 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %653, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %655 unwind label %661

655:                                              ; preds = %652
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  br label %656

656:                                              ; preds = %655
  store i8 0, ptr %61, align 1, !tbaa !18
  br label %637, !llvm.loop !24

657:                                              ; preds = %646
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %18, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %19, align 4
  br label %665

661:                                              ; preds = %652
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %18, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %665

665:                                              ; preds = %661, %657
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  br label %666

666:                                              ; preds = %665, %642
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #8
  br label %971

667:                                              ; preds = %641
  br label %668

668:                                              ; preds = %667
  store i8 0, ptr %61, align 1, !tbaa !18
  br label %629, !llvm.loop !25

669:                                              ; preds = %632
  br label %969

670:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #8
  store i8 1, ptr %65, align 1, !tbaa !18
  br label %671

671:                                              ; preds = %712, %670
  %672 = load i8, ptr %65, align 1, !tbaa !18, !range !20, !noundef !21
  %673 = trunc i8 %672 to i1
  br i1 %673, label %675, label %674

674:                                              ; preds = %671
  store i32 32, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  br label %713

675:                                              ; preds = %671
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  %676 = load ptr, ptr %54, align 8, !tbaa !5
  %677 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR8TypeItem8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(408) %676)
          to label %678 unwind label %684

678:                                              ; preds = %675
  store ptr %677, ptr %66, align 8, !tbaa !5
  br label %679

679:                                              ; preds = %700, %678
  %680 = load ptr, ptr %66, align 8, !tbaa !5
  %681 = load i8, ptr %65, align 1, !tbaa !18, !range !20, !noundef !21
  %682 = trunc i8 %681 to i1
  br i1 %682, label %688, label %683

683:                                              ; preds = %679
  store i32 35, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  br label %711

684:                                              ; preds = %675
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %18, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %19, align 4
  br label %710

688:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  %689 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %68, i32 0, i32 0
  store ptr null, ptr %689, align 8, !tbaa !26
  %690 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %68, i32 0, i32 1
  %691 = load ptr, ptr %66, align 8, !tbaa !5
  store ptr %691, ptr %690, align 8, !tbaa !28
  %692 = getelementptr inbounds { ptr, ptr }, ptr %68, i32 0, i32 0
  %693 = load ptr, ptr %692, align 8
  %694 = getelementptr inbounds { ptr, ptr }, ptr %68, i32 0, i32 1
  %695 = load ptr, ptr %694, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %67, ptr %693, ptr %695)
          to label %696 unwind label %701

696:                                              ; preds = %688
  %697 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %698 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %699 unwind label %705

699:                                              ; preds = %696
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  br label %700

700:                                              ; preds = %699
  store i8 0, ptr %65, align 1, !tbaa !18
  br label %679, !llvm.loop !29

701:                                              ; preds = %688
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %18, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %19, align 4
  br label %709

705:                                              ; preds = %696
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %18, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %709

709:                                              ; preds = %705, %701
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  br label %710

710:                                              ; preds = %709, %684
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  br label %971

711:                                              ; preds = %683
  br label %712

712:                                              ; preds = %711
  store i8 0, ptr %65, align 1, !tbaa !18
  br label %671, !llvm.loop !30

713:                                              ; preds = %674
  br label %969

714:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #8
  store i8 1, ptr %69, align 1, !tbaa !18
  br label %715

715:                                              ; preds = %756, %714
  %716 = load i8, ptr %69, align 1, !tbaa !18, !range !20, !noundef !21
  %717 = trunc i8 %716 to i1
  br i1 %717, label %719, label %718

718:                                              ; preds = %715
  store i32 38, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  br label %757

719:                                              ; preds = %715
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %720 = load ptr, ptr %54, align 8, !tbaa !5
  %721 = invoke noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %720)
          to label %722 unwind label %728

722:                                              ; preds = %719
  store ptr %721, ptr %70, align 8, !tbaa !5
  br label %723

723:                                              ; preds = %744, %722
  %724 = load ptr, ptr %70, align 8, !tbaa !5
  %725 = load i8, ptr %69, align 1, !tbaa !18, !range !20, !noundef !21
  %726 = trunc i8 %725 to i1
  br i1 %726, label %732, label %727

727:                                              ; preds = %723
  store i32 41, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  br label %755

728:                                              ; preds = %719
  %729 = landingpad { ptr, i32 }
          cleanup
  %730 = extractvalue { ptr, i32 } %729, 0
  store ptr %730, ptr %18, align 8
  %731 = extractvalue { ptr, i32 } %729, 1
  store i32 %731, ptr %19, align 4
  br label %754

732:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #8
  %733 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %72, i32 0, i32 0
  store ptr null, ptr %733, align 8, !tbaa !31
  %734 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %72, i32 0, i32 1
  %735 = load ptr, ptr %70, align 8, !tbaa !5
  store ptr %735, ptr %734, align 8, !tbaa !33
  %736 = getelementptr inbounds { ptr, ptr }, ptr %72, i32 0, i32 0
  %737 = load ptr, ptr %736, align 8
  %738 = getelementptr inbounds { ptr, ptr }, ptr %72, i32 0, i32 1
  %739 = load ptr, ptr %738, align 8
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %71, ptr %737, ptr %739)
          to label %740 unwind label %745

740:                                              ; preds = %732
  %741 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %742 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %741, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %743 unwind label %749

743:                                              ; preds = %740
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  br label %744

744:                                              ; preds = %743
  store i8 0, ptr %69, align 1, !tbaa !18
  br label %723, !llvm.loop !34

745:                                              ; preds = %732
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %18, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %19, align 4
  br label %753

749:                                              ; preds = %740
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %18, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %753

753:                                              ; preds = %749, %745
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  br label %754

754:                                              ; preds = %753, %728
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #8
  br label %971

755:                                              ; preds = %727
  br label %756

756:                                              ; preds = %755
  store i8 0, ptr %69, align 1, !tbaa !18
  br label %715, !llvm.loop !35

757:                                              ; preds = %718
  br label %969

758:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #8
  store i8 1, ptr %73, align 1, !tbaa !18
  br label %759

759:                                              ; preds = %800, %758
  %760 = load i8, ptr %73, align 1, !tbaa !18, !range !20, !noundef !21
  %761 = trunc i8 %760 to i1
  br i1 %761, label %763, label %762

762:                                              ; preds = %759
  store i32 44, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #8
  br label %801

763:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  %764 = load ptr, ptr %54, align 8, !tbaa !5
  %765 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZNK3HIR8TypeItem13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %764)
          to label %766 unwind label %772

766:                                              ; preds = %763
  store ptr %765, ptr %74, align 8, !tbaa !5
  br label %767

767:                                              ; preds = %788, %766
  %768 = load ptr, ptr %74, align 8, !tbaa !5
  %769 = load i8, ptr %73, align 1, !tbaa !18, !range !20, !noundef !21
  %770 = trunc i8 %769 to i1
  br i1 %770, label %776, label %771

771:                                              ; preds = %767
  store i32 47, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  br label %799

772:                                              ; preds = %763
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %18, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %19, align 4
  br label %798

776:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  %777 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %76, i32 0, i32 0
  store ptr null, ptr %777, align 8, !tbaa !36
  %778 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %76, i32 0, i32 1
  %779 = load ptr, ptr %74, align 8, !tbaa !5
  store ptr %779, ptr %778, align 8, !tbaa !38
  %780 = getelementptr inbounds { ptr, ptr }, ptr %76, i32 0, i32 0
  %781 = load ptr, ptr %780, align 8
  %782 = getelementptr inbounds { ptr, ptr }, ptr %76, i32 0, i32 1
  %783 = load ptr, ptr %782, align 8
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %75, ptr %781, ptr %783)
          to label %784 unwind label %789

784:                                              ; preds = %776
  %785 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %786 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %785, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %787 unwind label %793

787:                                              ; preds = %784
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %788

788:                                              ; preds = %787
  store i8 0, ptr %73, align 1, !tbaa !18
  br label %767, !llvm.loop !39

789:                                              ; preds = %776
  %790 = landingpad { ptr, i32 }
          cleanup
  %791 = extractvalue { ptr, i32 } %790, 0
  store ptr %791, ptr %18, align 8
  %792 = extractvalue { ptr, i32 } %790, 1
  store i32 %792, ptr %19, align 4
  br label %797

793:                                              ; preds = %784
  %794 = landingpad { ptr, i32 }
          cleanup
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %18, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %797

797:                                              ; preds = %793, %789
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %798

798:                                              ; preds = %797, %772
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #8
  br label %971

799:                                              ; preds = %771
  br label %800

800:                                              ; preds = %799
  store i8 0, ptr %73, align 1, !tbaa !18
  br label %759, !llvm.loop !40

801:                                              ; preds = %762
  br label %969

802:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #8
  store i8 1, ptr %77, align 1, !tbaa !18
  br label %803

803:                                              ; preds = %844, %802
  %804 = load i8, ptr %77, align 1, !tbaa !18, !range !20, !noundef !21
  %805 = trunc i8 %804 to i1
  br i1 %805, label %807, label %806

806:                                              ; preds = %803
  store i32 50, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #8
  br label %845

807:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  %808 = load ptr, ptr %54, align 8, !tbaa !5
  %809 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR8TypeItem8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(408) %808)
          to label %810 unwind label %816

810:                                              ; preds = %807
  store ptr %809, ptr %78, align 8, !tbaa !5
  br label %811

811:                                              ; preds = %832, %810
  %812 = load ptr, ptr %78, align 8, !tbaa !5
  %813 = load i8, ptr %77, align 1, !tbaa !18, !range !20, !noundef !21
  %814 = trunc i8 %813 to i1
  br i1 %814, label %820, label %815

815:                                              ; preds = %811
  store i32 53, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  br label %843

816:                                              ; preds = %807
  %817 = landingpad { ptr, i32 }
          cleanup
  %818 = extractvalue { ptr, i32 } %817, 0
  store ptr %818, ptr %18, align 8
  %819 = extractvalue { ptr, i32 } %817, 1
  store i32 %819, ptr %19, align 4
  br label %842

820:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #8
  %821 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %80, i32 0, i32 0
  store ptr null, ptr %821, align 8, !tbaa !41
  %822 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %80, i32 0, i32 1
  %823 = load ptr, ptr %78, align 8, !tbaa !5
  store ptr %823, ptr %822, align 8, !tbaa !43
  %824 = getelementptr inbounds { ptr, ptr }, ptr %80, i32 0, i32 0
  %825 = load ptr, ptr %824, align 8
  %826 = getelementptr inbounds { ptr, ptr }, ptr %80, i32 0, i32 1
  %827 = load ptr, ptr %826, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %79, ptr %825, ptr %827)
          to label %828 unwind label %833

828:                                              ; preds = %820
  %829 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %830 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %829, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %831 unwind label %837

831:                                              ; preds = %828
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %832

832:                                              ; preds = %831
  store i8 0, ptr %77, align 1, !tbaa !18
  br label %811, !llvm.loop !44

833:                                              ; preds = %820
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %18, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %19, align 4
  br label %841

837:                                              ; preds = %828
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %18, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %841

841:                                              ; preds = %837, %833
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %842

842:                                              ; preds = %841, %816
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #8
  br label %971

843:                                              ; preds = %815
  br label %844

844:                                              ; preds = %843
  store i8 0, ptr %77, align 1, !tbaa !18
  br label %803, !llvm.loop !45

845:                                              ; preds = %806
  br label %969

846:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #8
  store i8 1, ptr %81, align 1, !tbaa !18
  br label %847

847:                                              ; preds = %887, %846
  %848 = load i8, ptr %81, align 1, !tbaa !18, !range !20, !noundef !21
  %849 = trunc i8 %848 to i1
  br i1 %849, label %851, label %850

850:                                              ; preds = %847
  store i32 56, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  br label %888

851:                                              ; preds = %847
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #8
  %852 = load ptr, ptr %54, align 8, !tbaa !5
  %853 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %852)
          to label %854 unwind label %860

854:                                              ; preds = %851
  store ptr %853, ptr %82, align 8, !tbaa !5
  br label %855

855:                                              ; preds = %875, %854
  %856 = load ptr, ptr %82, align 8, !tbaa !5
  %857 = load i8, ptr %81, align 1, !tbaa !18, !range !20, !noundef !21
  %858 = trunc i8 %857 to i1
  br i1 %858, label %864, label %859

859:                                              ; preds = %855
  store i32 59, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  br label %886

860:                                              ; preds = %851
  %861 = landingpad { ptr, i32 }
          cleanup
  %862 = extractvalue { ptr, i32 } %861, 0
  store ptr %862, ptr %18, align 8
  %863 = extractvalue { ptr, i32 } %861, 1
  store i32 %863, ptr %19, align 4
  br label %885

864:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #8
  %865 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %84, i32 0, i32 0
  store ptr null, ptr %865, align 8, !tbaa !46
  %866 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %84, i32 0, i32 1
  store ptr null, ptr %866, align 8, !tbaa !48
  %867 = getelementptr inbounds { ptr, ptr }, ptr %84, i32 0, i32 0
  %868 = load ptr, ptr %867, align 8
  %869 = getelementptr inbounds { ptr, ptr }, ptr %84, i32 0, i32 1
  %870 = load ptr, ptr %869, align 8
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %83, ptr %868, ptr %870)
          to label %871 unwind label %876

871:                                              ; preds = %864
  %872 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %873 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %872, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %874 unwind label %880

874:                                              ; preds = %871
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #8
  br label %875

875:                                              ; preds = %874
  store i8 0, ptr %81, align 1, !tbaa !18
  br label %855, !llvm.loop !49

876:                                              ; preds = %864
  %877 = landingpad { ptr, i32 }
          cleanup
  %878 = extractvalue { ptr, i32 } %877, 0
  store ptr %878, ptr %18, align 8
  %879 = extractvalue { ptr, i32 } %877, 1
  store i32 %879, ptr %19, align 4
  br label %884

880:                                              ; preds = %871
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %18, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  br label %884

884:                                              ; preds = %880, %876
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #8
  br label %885

885:                                              ; preds = %884, %860
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #8
  br label %971

886:                                              ; preds = %859
  br label %887

887:                                              ; preds = %886
  store i8 0, ptr %81, align 1, !tbaa !18
  br label %847, !llvm.loop !50

888:                                              ; preds = %850
  br label %969

889:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #8
  store i8 1, ptr %85, align 1, !tbaa !18
  br label %890

890:                                              ; preds = %927, %889
  %891 = load i8, ptr %85, align 1, !tbaa !18, !range !20, !noundef !21
  %892 = trunc i8 %891 to i1
  br i1 %892, label %894, label %893

893:                                              ; preds = %890
  store i32 62, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #8
  br label %928

894:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #8
  %895 = load ptr, ptr %54, align 8, !tbaa !5
  %896 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZNK3HIR8TypeItem12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %895)
          to label %897 unwind label %903

897:                                              ; preds = %894
  store ptr %896, ptr %86, align 8, !tbaa !5
  br label %898

898:                                              ; preds = %915, %897
  %899 = load ptr, ptr %86, align 8, !tbaa !5
  %900 = load i8, ptr %85, align 1, !tbaa !18, !range !20, !noundef !21
  %901 = trunc i8 %900 to i1
  br i1 %901, label %907, label %902

902:                                              ; preds = %898
  store i32 65, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  br label %926

903:                                              ; preds = %894
  %904 = landingpad { ptr, i32 }
          cleanup
  %905 = extractvalue { ptr, i32 } %904, 0
  store ptr %905, ptr %18, align 8
  %906 = extractvalue { ptr, i32 } %904, 1
  store i32 %906, ptr %19, align 4
  br label %925

907:                                              ; preds = %898
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #8
  %908 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %88, i32 0, i32 0
  store ptr null, ptr %908, align 8, !tbaa !51
  %909 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %88, i32 0, i32 0
  %910 = load ptr, ptr %909, align 8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %87, ptr %910)
          to label %911 unwind label %916

911:                                              ; preds = %907
  %912 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %913 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %912, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %914 unwind label %920

914:                                              ; preds = %911
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  br label %915

915:                                              ; preds = %914
  store i8 0, ptr %85, align 1, !tbaa !18
  br label %898, !llvm.loop !53

916:                                              ; preds = %907
  %917 = landingpad { ptr, i32 }
          cleanup
  %918 = extractvalue { ptr, i32 } %917, 0
  store ptr %918, ptr %18, align 8
  %919 = extractvalue { ptr, i32 } %917, 1
  store i32 %919, ptr %19, align 4
  br label %924

920:                                              ; preds = %911
  %921 = landingpad { ptr, i32 }
          cleanup
  %922 = extractvalue { ptr, i32 } %921, 0
  store ptr %922, ptr %18, align 8
  %923 = extractvalue { ptr, i32 } %921, 1
  store i32 %923, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %924

924:                                              ; preds = %920, %916
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  br label %925

925:                                              ; preds = %924, %903
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #8
  br label %971

926:                                              ; preds = %902
  br label %927

927:                                              ; preds = %926
  store i8 0, ptr %85, align 1, !tbaa !18
  br label %890, !llvm.loop !54

928:                                              ; preds = %893
  br label %969

929:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #8
  store i8 1, ptr %89, align 1, !tbaa !18
  br label %930

930:                                              ; preds = %967, %929
  %931 = load i8, ptr %89, align 1, !tbaa !18, !range !20, !noundef !21
  %932 = trunc i8 %931 to i1
  br i1 %932, label %934, label %933

933:                                              ; preds = %930
  store i32 68, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #8
  br label %968

934:                                              ; preds = %930
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #8
  %935 = load ptr, ptr %54, align 8, !tbaa !5
  %936 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3HIR8TypeItem13as_ExternTypeEv(ptr noundef nonnull align 8 dereferenceable(408) %935)
          to label %937 unwind label %943

937:                                              ; preds = %934
  store ptr %936, ptr %90, align 8, !tbaa !5
  br label %938

938:                                              ; preds = %955, %937
  %939 = load ptr, ptr %90, align 8, !tbaa !5
  %940 = load i8, ptr %89, align 1, !tbaa !18, !range !20, !noundef !21
  %941 = trunc i8 %940 to i1
  br i1 %941, label %947, label %942

942:                                              ; preds = %938
  store i32 71, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #8
  br label %966

943:                                              ; preds = %934
  %944 = landingpad { ptr, i32 }
          cleanup
  %945 = extractvalue { ptr, i32 } %944, 0
  store ptr %945, ptr %18, align 8
  %946 = extractvalue { ptr, i32 } %944, 1
  store i32 %946, ptr %19, align 4
  br label %965

947:                                              ; preds = %938
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #8
  %948 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %92, i32 0, i32 0
  store ptr null, ptr %948, align 8, !tbaa !51
  %949 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %92, i32 0, i32 0
  %950 = load ptr, ptr %949, align 8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %91, ptr %950)
          to label %951 unwind label %956

951:                                              ; preds = %947
  %952 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %27, i32 0, i32 1
  %953 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %952, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %954 unwind label %960

954:                                              ; preds = %951
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  br label %955

955:                                              ; preds = %954
  store i8 0, ptr %89, align 1, !tbaa !18
  br label %938, !llvm.loop !55

956:                                              ; preds = %947
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %18, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %19, align 4
  br label %964

960:                                              ; preds = %951
  %961 = landingpad { ptr, i32 }
          cleanup
  %962 = extractvalue { ptr, i32 } %961, 0
  store ptr %962, ptr %18, align 8
  %963 = extractvalue { ptr, i32 } %961, 1
  store i32 %963, ptr %19, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %964

964:                                              ; preds = %960, %956
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  br label %965

965:                                              ; preds = %964, %943
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #8
  br label %971

966:                                              ; preds = %942
  br label %967

967:                                              ; preds = %966
  store i8 0, ptr %89, align 1, !tbaa !18
  br label %930, !llvm.loop !56

968:                                              ; preds = %933
  br label %969

969:                                              ; preds = %968, %928, %888, %845, %801, %757, %713, %669, %627, %569
  br label %970

970:                                              ; preds = %969
  store i8 0, ptr %53, align 1, !tbaa !18
  br label %562, !llvm.loop !57

971:                                              ; preds = %965, %925, %885, %842, %798, %754, %710, %666, %624, %570
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #8
  br label %989

972:                                              ; preds = %565
  br label %973

973:                                              ; preds = %972
  store i8 0, ptr %53, align 1, !tbaa !18
  br label %556, !llvm.loop !58

974:                                              ; preds = %559
  %975 = load ptr, ptr %8, align 8, !tbaa !5
  %976 = load ptr, ptr %10, align 8, !tbaa !5
  %977 = load ptr, ptr %24, align 8, !tbaa !5
  %978 = getelementptr inbounds %"struct.std::pair.301", ptr %977, i32 0, i32 0
  %979 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %93, ptr noundef nonnull align 8 dereferenceable(64) %27)
          to label %980 unwind label %266

980:                                              ; preds = %974
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %975, ptr noundef nonnull align 8 dereferenceable(480) %976, ptr noundef nonnull align 8 dereferenceable(8) %978, ptr noundef nonnull align 8 dereferenceable(36) %979, ptr noundef %93, i1 noundef zeroext false)
          to label %981 unwind label %985

981:                                              ; preds = %980
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %93) #8
  store i32 0, ptr %23, align 4
  br label %982

982:                                              ; preds = %981, %524
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %27) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  %983 = load i32, ptr %23, align 4
  switch i32 %983, label %992 [
    i32 0, label %984
  ]

984:                                              ; preds = %982
  br label %991

985:                                              ; preds = %980
  %986 = landingpad { ptr, i32 }
          cleanup
  %987 = extractvalue { ptr, i32 } %986, 0
  store ptr %987, ptr %18, align 8
  %988 = extractvalue { ptr, i32 } %986, 1
  store i32 %988, ptr %19, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %93) #8
  br label %989

989:                                              ; preds = %985, %971, %554, %532, %266
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %27) #8
  br label %990

990:                                              ; preds = %989, %262
  call void @llvm.lifetime.end.p0(i64 64, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %1000

991:                                              ; preds = %984, %210
  store i32 0, ptr %23, align 4
  br label %992

992:                                              ; preds = %991, %982
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  %993 = load i32, ptr %23, align 4
  switch i32 %993, label %995 [
    i32 0, label %994
  ]

994:                                              ; preds = %992
  store i32 0, ptr %23, align 4
  br label %995

995:                                              ; preds = %994, %992
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  %996 = load i32, ptr %23, align 4
  switch i32 %996, label %1992 [
    i32 0, label %997
    i32 3, label %998
  ]

997:                                              ; preds = %995
  br label %998

998:                                              ; preds = %997, %995
  %999 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  br label %195

1000:                                             ; preds = %990, %258
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %1985

1001:                                             ; preds = %197
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  %1002 = load ptr, ptr %11, align 8, !tbaa !5
  %1003 = getelementptr inbounds %"class.HIR::Module", ptr %1002, i32 0, i32 1
  store ptr %1003, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %1004 = load ptr, ptr %94, align 8, !tbaa !5
  %1005 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %1004) #8
  %1006 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.522", ptr %95, i32 0, i32 0
  %1007 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.523", ptr %1006, i32 0, i32 0
  store ptr %1005, ptr %1007, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  %1008 = load ptr, ptr %94, align 8, !tbaa !5
  %1009 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1008) #8
  %1010 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.522", ptr %96, i32 0, i32 0
  %1011 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.523", ptr %1010, i32 0, i32 0
  store ptr %1009, ptr %1011, align 8
  br label %1012

1012:                                             ; preds = %1706, %1001
  %1013 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  br i1 %1013, label %1015, label %1014

1014:                                             ; preds = %1012
  store i32 74, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1709

1015:                                             ; preds = %1012
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #8
  %1016 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  store ptr %1016, ptr %97, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #8
  %1017 = load ptr, ptr %97, align 8, !tbaa !5
  %1018 = getelementptr inbounds %"struct.std::pair.524", ptr %1017, i32 0, i32 1
  %1019 = call noundef nonnull align 8 dereferenceable(384) ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1018) #8
  store ptr %1019, ptr %98, align 8, !tbaa !5
  %1020 = load ptr, ptr %98, align 8, !tbaa !5
  %1021 = getelementptr inbounds %"struct.HIR::VisEnt.534", ptr %1020, i32 0, i32 0
  %1022 = invoke noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %1021)
          to label %1023 unwind label %1073

1023:                                             ; preds = %1015
  br i1 %1022, label %1024, label %1699

1024:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #8
  %1025 = load ptr, ptr %98, align 8, !tbaa !5
  %1026 = getelementptr inbounds %"struct.HIR::VisEnt.534", ptr %1025, i32 0, i32 1
  store ptr %1026, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %100) #8
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %100)
          to label %1027 unwind label %1077

1027:                                             ; preds = %1024
  %1028 = load ptr, ptr %98, align 8, !tbaa !5
  %1029 = getelementptr inbounds %"struct.HIR::VisEnt.534", ptr %1028, i32 0, i32 1
  %1030 = invoke noundef zeroext i1 @_ZNK3HIR9ValueItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %1029)
          to label %1031 unwind label %1081

1031:                                             ; preds = %1027
  br i1 %1030, label %1032, label %1357

1032:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  %1033 = load ptr, ptr %98, align 8, !tbaa !5
  %1034 = getelementptr inbounds %"struct.HIR::VisEnt.534", ptr %1033, i32 0, i32 1
  %1035 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %1034)
          to label %1036 unwind label %1085

1036:                                             ; preds = %1032
  %1037 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %1035, i32 0, i32 0
  store ptr %1037, ptr %101, align 8, !tbaa !5
  %1038 = load ptr, ptr %101, align 8, !tbaa !5
  %1039 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1038)
          to label %1040 unwind label %1085

1040:                                             ; preds = %1036
  %1041 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 0
  %1042 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1041, i32 0, i32 0
  %1043 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1042, ptr noundef nonnull align 8 dereferenceable(8) %1039)
          to label %1044 unwind label %1085

1044:                                             ; preds = %1040
  call void @llvm.lifetime.start.p0(i64 24, ptr %102) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #8
  %1045 = load ptr, ptr %101, align 8, !tbaa !5
  %1046 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1045)
          to label %1047 unwind label %1089

1047:                                             ; preds = %1044
  %1048 = getelementptr inbounds { ptr, i64 }, ptr %103, i32 0, i32 0
  %1049 = extractvalue { ptr, i64 } %1046, 0
  store ptr %1049, ptr %1048, align 8
  %1050 = getelementptr inbounds { ptr, i64 }, ptr %103, i32 0, i32 1
  %1051 = extractvalue { ptr, i64 } %1046, 1
  store i64 %1051, ptr %1050, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %102, ptr noundef nonnull align 8 dereferenceable(16) %103)
          to label %1052 unwind label %1089

1052:                                             ; preds = %1047
  %1053 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 0
  %1054 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1053, i32 0, i32 1
  %1055 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %1054, ptr noundef nonnull align 8 dereferenceable(24) %102) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #8
  br label %1056

1056:                                             ; preds = %1052
  %1057 = load ptr, ptr %9, align 8, !tbaa !5
  %1058 = getelementptr inbounds %"class.AST::Crate", ptr %1057, i32 0, i32 4
  %1059 = load ptr, ptr %101, align 8, !tbaa !5
  %1060 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1059)
          to label %1061 unwind label %1085

1061:                                             ; preds = %1056
  %1062 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1058, ptr noundef nonnull align 8 dereferenceable(8) %1060)
          to label %1063 unwind label %1085

1063:                                             ; preds = %1061
  %1064 = icmp eq i64 %1062, 1
  br i1 %1064, label %1106, label %1065

1065:                                             ; preds = %1063
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #8
  %1066 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %1066)
          to label %1067 unwind label %1093

1067:                                             ; preds = %1065
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  %1068 = getelementptr inbounds %class.anon.561, ptr %106, i32 0, i32 0
  %1069 = load ptr, ptr %101, align 8, !tbaa !5
  store ptr %1069, ptr %1068, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef %105)
          to label %1070 unwind label %1097

1070:                                             ; preds = %1067
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #8
  %1071 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1071, ptr noundef @.str.5)
          to label %1072 unwind label %1102

1072:                                             ; preds = %1070
  invoke void @__cxa_throw(ptr %1071, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %1992 unwind label %1085

1073:                                             ; preds = %1015
  %1074 = landingpad { ptr, i32 }
          cleanup
  %1075 = extractvalue { ptr, i32 } %1074, 0
  store ptr %1075, ptr %18, align 8
  %1076 = extractvalue { ptr, i32 } %1074, 1
  store i32 %1076, ptr %19, align 4
  br label %1708

1077:                                             ; preds = %1024
  %1078 = landingpad { ptr, i32 }
          cleanup
  %1079 = extractvalue { ptr, i32 } %1078, 0
  store ptr %1079, ptr %18, align 8
  %1080 = extractvalue { ptr, i32 } %1078, 1
  store i32 %1080, ptr %19, align 4
  br label %1698

1081:                                             ; preds = %1682, %1027
  %1082 = landingpad { ptr, i32 }
          cleanup
  %1083 = extractvalue { ptr, i32 } %1082, 0
  store ptr %1083, ptr %18, align 8
  %1084 = extractvalue { ptr, i32 } %1082, 1
  store i32 %1084, ptr %19, align 4
  br label %1697

1085:                                             ; preds = %1072, %1061, %1056, %1040, %1036, %1032
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %18, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %19, align 4
  br label %1356

1089:                                             ; preds = %1047, %1044
  %1090 = landingpad { ptr, i32 }
          cleanup
  %1091 = extractvalue { ptr, i32 } %1090, 0
  store ptr %1091, ptr %18, align 8
  %1092 = extractvalue { ptr, i32 } %1090, 1
  store i32 %1092, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #8
  br label %1356

1093:                                             ; preds = %1065
  %1094 = landingpad { ptr, i32 }
          cleanup
  %1095 = extractvalue { ptr, i32 } %1094, 0
  store ptr %1095, ptr %18, align 8
  %1096 = extractvalue { ptr, i32 } %1094, 1
  store i32 %1096, ptr %19, align 4
  br label %1101

1097:                                             ; preds = %1067
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %18, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %19, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #8
  br label %1101

1101:                                             ; preds = %1097, %1093
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #8
  br label %1356

1102:                                             ; preds = %1070
  %1103 = landingpad { ptr, i32 }
          cleanup
  %1104 = extractvalue { ptr, i32 } %1103, 0
  store ptr %1104, ptr %18, align 8
  %1105 = extractvalue { ptr, i32 } %1103, 1
  store i32 %1105, ptr %19, align 4
  call void @__cxa_free_exception(ptr %1071) #8
  br label %1356

1106:                                             ; preds = %1063
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #8
  %1109 = load ptr, ptr %9, align 8, !tbaa !5
  %1110 = getelementptr inbounds %"class.AST::Crate", ptr %1109, i32 0, i32 4
  %1111 = load ptr, ptr %101, align 8, !tbaa !5
  %1112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1111)
          to label %1113 unwind label %1135

1113:                                             ; preds = %1108
  %1114 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1110, ptr noundef nonnull align 8 dereferenceable(8) %1112)
          to label %1115 unwind label %1135

1115:                                             ; preds = %1113
  %1116 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1114, i32 0, i32 3
  %1117 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1116)
          to label %1118 unwind label %1135

1118:                                             ; preds = %1115
  %1119 = getelementptr inbounds %"class.HIR::Crate", ptr %1117, i32 0, i32 2
  store ptr %1119, ptr %107, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #8
  store i32 0, ptr %108, align 4, !tbaa !14
  br label %1120

1120:                                             ; preds = %1322, %1118
  %1121 = load i32, ptr %108, align 4, !tbaa !14
  %1122 = zext i32 %1121 to i64
  call void @llvm.lifetime.start.p0(i64 16, ptr %109) #8
  %1123 = load ptr, ptr %101, align 8, !tbaa !5
  %1124 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1123)
          to label %1125 unwind label %1139

1125:                                             ; preds = %1120
  %1126 = getelementptr inbounds { ptr, i64 }, ptr %109, i32 0, i32 0
  %1127 = extractvalue { ptr, i64 } %1124, 0
  store ptr %1127, ptr %1126, align 8
  %1128 = getelementptr inbounds { ptr, i64 }, ptr %109, i32 0, i32 1
  %1129 = extractvalue { ptr, i64 } %1124, 1
  store i64 %1129, ptr %1128, align 8
  %1130 = invoke noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %109)
          to label %1131 unwind label %1139

1131:                                             ; preds = %1125
  %1132 = sub i64 %1130, 1
  %1133 = icmp ult i64 %1122, %1132
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #8
  br i1 %1133, label %1143, label %1134

1134:                                             ; preds = %1131
  store i32 78, ptr %23, align 4
  br label %1326

1135:                                             ; preds = %1115, %1113, %1108
  %1136 = landingpad { ptr, i32 }
          cleanup
  %1137 = extractvalue { ptr, i32 } %1136, 0
  store ptr %1137, ptr %18, align 8
  %1138 = extractvalue { ptr, i32 } %1136, 1
  store i32 %1138, ptr %19, align 4
  br label %1355

1139:                                             ; preds = %1125, %1120
  %1140 = landingpad { ptr, i32 }
          cleanup
  %1141 = extractvalue { ptr, i32 } %1140, 0
  store ptr %1141, ptr %18, align 8
  %1142 = extractvalue { ptr, i32 } %1140, 1
  store i32 %1142, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #8
  br label %1327

1143:                                             ; preds = %1131
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #8
  %1144 = load ptr, ptr %107, align 8, !tbaa !5
  %1145 = getelementptr inbounds %"class.HIR::Module", ptr %1144, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %111) #8
  %1146 = load ptr, ptr %101, align 8, !tbaa !5
  %1147 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1146)
          to label %1148 unwind label %1208

1148:                                             ; preds = %1143
  %1149 = getelementptr inbounds { ptr, i64 }, ptr %111, i32 0, i32 0
  %1150 = extractvalue { ptr, i64 } %1147, 0
  store ptr %1150, ptr %1149, align 8
  %1151 = getelementptr inbounds { ptr, i64 }, ptr %111, i32 0, i32 1
  %1152 = extractvalue { ptr, i64 } %1147, 1
  store i64 %1152, ptr %1151, align 8
  %1153 = load i32, ptr %108, align 4, !tbaa !14
  %1154 = zext i32 %1153 to i64
  %1155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringEixEm(ptr noundef nonnull align 8 dereferenceable(16) %111, i64 noundef %1154)
          to label %1156 unwind label %1208

1156:                                             ; preds = %1148
  %1157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %1145, ptr noundef nonnull align 8 dereferenceable(8) %1155)
          to label %1158 unwind label %1208

1158:                                             ; preds = %1156
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #8
  store ptr %1157, ptr %110, align 8, !tbaa !5
  %1159 = load i32, ptr %108, align 4, !tbaa !14
  %1160 = zext i32 %1159 to i64
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #8
  %1161 = load ptr, ptr %101, align 8, !tbaa !5
  %1162 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1161)
          to label %1163 unwind label %1212

1163:                                             ; preds = %1158
  %1164 = getelementptr inbounds { ptr, i64 }, ptr %112, i32 0, i32 0
  %1165 = extractvalue { ptr, i64 } %1162, 0
  store ptr %1165, ptr %1164, align 8
  %1166 = getelementptr inbounds { ptr, i64 }, ptr %112, i32 0, i32 1
  %1167 = extractvalue { ptr, i64 } %1162, 1
  store i64 %1167, ptr %1166, align 8
  %1168 = invoke noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %112)
          to label %1169 unwind label %1212

1169:                                             ; preds = %1163
  %1170 = sub i64 %1168, 2
  %1171 = icmp eq i64 %1160, %1170
  br i1 %1171, label %1172, label %1178

1172:                                             ; preds = %1169
  %1173 = load ptr, ptr %110, align 8, !tbaa !5
  %1174 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1173) #8
  %1175 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %1174, i32 0, i32 1
  %1176 = invoke noundef zeroext i1 @_ZNK3HIR8TypeItem7is_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %1175)
          to label %1177 unwind label %1212

1177:                                             ; preds = %1172
  br label %1178

1178:                                             ; preds = %1177, %1169
  %1179 = phi i1 [ false, %1169 ], [ %1176, %1177 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #8
  br i1 %1179, label %1180, label %1270

1180:                                             ; preds = %1178
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #8
  %1181 = load ptr, ptr %110, align 8, !tbaa !5
  %1182 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1181) #8
  %1183 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %1182, i32 0, i32 1
  %1184 = invoke noundef nonnull align 8 dereferenceable(200) ptr @_ZN3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %1183)
          to label %1185 unwind label %1216

1185:                                             ; preds = %1180
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #8
  %1186 = load ptr, ptr %101, align 8, !tbaa !5
  %1187 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1186)
          to label %1188 unwind label %1220

1188:                                             ; preds = %1185
  %1189 = getelementptr inbounds { ptr, i64 }, ptr %114, i32 0, i32 0
  %1190 = extractvalue { ptr, i64 } %1187, 0
  store ptr %1190, ptr %1189, align 8
  %1191 = getelementptr inbounds { ptr, i64 }, ptr %114, i32 0, i32 1
  %1192 = extractvalue { ptr, i64 } %1187, 1
  store i64 %1192, ptr %1191, align 8
  %1193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %114)
          to label %1194 unwind label %1220

1194:                                             ; preds = %1188
  %1195 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %1184, ptr noundef nonnull align 8 dereferenceable(8) %1193)
          to label %1196 unwind label %1220

1196:                                             ; preds = %1194
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #8
  store i64 %1195, ptr %113, align 8, !tbaa !59
  br label %1197

1197:                                             ; preds = %1196
  %1198 = load i64, ptr %113, align 8, !tbaa !59
  %1199 = icmp ne i64 %1198, -1
  br i1 %1199, label %1237, label %1200

1200:                                             ; preds = %1197
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #8
  %1201 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %1201)
          to label %1202 unwind label %1224

1202:                                             ; preds = %1200
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #8
  %1203 = getelementptr inbounds %class.anon.562, ptr %117, i32 0, i32 0
  %1204 = load ptr, ptr %101, align 8, !tbaa !5
  store ptr %1204, ptr %1203, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(8) %117) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef %116)
          to label %1205 unwind label %1228

1205:                                             ; preds = %1202
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  %1206 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1206, ptr noundef @.str.5)
          to label %1207 unwind label %1233

1207:                                             ; preds = %1205
  invoke void @__cxa_throw(ptr %1206, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %1992 unwind label %1216

1208:                                             ; preds = %1156, %1148, %1143
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %18, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #8
  br label %1325

1212:                                             ; preds = %1172, %1163, %1158
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %18, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #8
  br label %1325

1216:                                             ; preds = %1248, %1207, %1180
  %1217 = landingpad { ptr, i32 }
          cleanup
  %1218 = extractvalue { ptr, i32 } %1217, 0
  store ptr %1218, ptr %18, align 8
  %1219 = extractvalue { ptr, i32 } %1217, 1
  store i32 %1219, ptr %19, align 4
  br label %1269

1220:                                             ; preds = %1194, %1188, %1185
  %1221 = landingpad { ptr, i32 }
          cleanup
  %1222 = extractvalue { ptr, i32 } %1221, 0
  store ptr %1222, ptr %18, align 8
  %1223 = extractvalue { ptr, i32 } %1221, 1
  store i32 %1223, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #8
  br label %1269

1224:                                             ; preds = %1200
  %1225 = landingpad { ptr, i32 }
          cleanup
  %1226 = extractvalue { ptr, i32 } %1225, 0
  store ptr %1226, ptr %18, align 8
  %1227 = extractvalue { ptr, i32 } %1225, 1
  store i32 %1227, ptr %19, align 4
  br label %1232

1228:                                             ; preds = %1202
  %1229 = landingpad { ptr, i32 }
          cleanup
  %1230 = extractvalue { ptr, i32 } %1229, 0
  store ptr %1230, ptr %18, align 8
  %1231 = extractvalue { ptr, i32 } %1229, 1
  store i32 %1231, ptr %19, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #8
  br label %1232

1232:                                             ; preds = %1228, %1224
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  br label %1269

1233:                                             ; preds = %1205
  %1234 = landingpad { ptr, i32 }
          cleanup
  %1235 = extractvalue { ptr, i32 } %1234, 0
  store ptr %1235, ptr %18, align 8
  %1236 = extractvalue { ptr, i32 } %1234, 1
  store i32 %1236, ptr %19, align 4
  call void @__cxa_free_exception(ptr %1206) #8
  br label %1269

1237:                                             ; preds = %1197
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #8
  call void @llvm.memset.p0.i64(ptr align 8 %119, i8 0, i64 24, i1 false)
  %1240 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %119, i32 0, i32 0
  %1241 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %119, i32 0, i32 1
  %1242 = load i64, ptr %113, align 8, !tbaa !59
  %1243 = trunc i64 %1242 to i32
  store i32 %1243, ptr %1241, align 8, !tbaa !61
  %1244 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %119, i32 0, i32 2
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %118, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %119)
          to label %1245 unwind label %1256

1245:                                             ; preds = %1239
  %1246 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 1
  %1247 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1246, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1248 unwind label %1260

1248:                                             ; preds = %1245
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #8
  %1249 = load ptr, ptr %8, align 8, !tbaa !5
  %1250 = load ptr, ptr %10, align 8, !tbaa !5
  %1251 = load ptr, ptr %97, align 8, !tbaa !5
  %1252 = getelementptr inbounds %"struct.std::pair.524", ptr %1251, i32 0, i32 0
  %1253 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %120, ptr noundef nonnull align 8 dereferenceable(64) %100)
          to label %1254 unwind label %1216

1254:                                             ; preds = %1248
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1249, ptr noundef nonnull align 8 dereferenceable(480) %1250, ptr noundef nonnull align 8 dereferenceable(8) %1252, ptr noundef nonnull align 8 dereferenceable(36) %1253, ptr noundef %120, i1 noundef zeroext false)
          to label %1255 unwind label %1265

1255:                                             ; preds = %1254
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %120) #8
  store ptr null, ptr %107, align 8, !tbaa !5
  store i32 78, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  br label %1319

1256:                                             ; preds = %1239
  %1257 = landingpad { ptr, i32 }
          cleanup
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %18, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %19, align 4
  br label %1264

1260:                                             ; preds = %1245
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %18, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %19, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  br label %1264

1264:                                             ; preds = %1260, %1256
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #8
  br label %1269

1265:                                             ; preds = %1254
  %1266 = landingpad { ptr, i32 }
          cleanup
  %1267 = extractvalue { ptr, i32 } %1266, 0
  store ptr %1267, ptr %18, align 8
  %1268 = extractvalue { ptr, i32 } %1266, 1
  store i32 %1268, ptr %19, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %120) #8
  br label %1269

1269:                                             ; preds = %1265, %1264, %1233, %1232, %1220, %1216
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  br label %1325

1270:                                             ; preds = %1178
  br label %1271

1271:                                             ; preds = %1270
  %1272 = load ptr, ptr %110, align 8, !tbaa !5
  %1273 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1272) #8
  %1274 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %1273, i32 0, i32 1
  %1275 = invoke noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %1274)
          to label %1276 unwind label %1289

1276:                                             ; preds = %1271
  br i1 %1275, label %1311, label %1277

1277:                                             ; preds = %1276
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #8
  %1278 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %1278)
          to label %1279 unwind label %1293

1279:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 24, ptr %123) #8
  %1280 = getelementptr inbounds %class.anon.563, ptr %123, i32 0, i32 0
  %1281 = load ptr, ptr %101, align 8, !tbaa !5
  store ptr %1281, ptr %1280, align 8, !tbaa !5
  %1282 = getelementptr inbounds %class.anon.563, ptr %123, i32 0, i32 1
  store ptr %108, ptr %1282, align 8, !tbaa !5
  %1283 = getelementptr inbounds %class.anon.563, ptr %123, i32 0, i32 2
  %1284 = load ptr, ptr %110, align 8, !tbaa !5
  store ptr %1284, ptr %1283, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(24) %123)
          to label %1285 unwind label %1297

1285:                                             ; preds = %1279
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef %122)
          to label %1286 unwind label %1301

1286:                                             ; preds = %1285
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %123) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #8
  %1287 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1287, ptr noundef @.str.5)
          to label %1288 unwind label %1307

1288:                                             ; preds = %1286
  invoke void @__cxa_throw(ptr %1287, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %1992 unwind label %1289

1289:                                             ; preds = %1313, %1288, %1271
  %1290 = landingpad { ptr, i32 }
          cleanup
  %1291 = extractvalue { ptr, i32 } %1290, 0
  store ptr %1291, ptr %18, align 8
  %1292 = extractvalue { ptr, i32 } %1290, 1
  store i32 %1292, ptr %19, align 4
  br label %1325

1293:                                             ; preds = %1277
  %1294 = landingpad { ptr, i32 }
          cleanup
  %1295 = extractvalue { ptr, i32 } %1294, 0
  store ptr %1295, ptr %18, align 8
  %1296 = extractvalue { ptr, i32 } %1294, 1
  store i32 %1296, ptr %19, align 4
  br label %1306

1297:                                             ; preds = %1279
  %1298 = landingpad { ptr, i32 }
          cleanup
  %1299 = extractvalue { ptr, i32 } %1298, 0
  store ptr %1299, ptr %18, align 8
  %1300 = extractvalue { ptr, i32 } %1298, 1
  store i32 %1300, ptr %19, align 4
  br label %1305

1301:                                             ; preds = %1285
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %18, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %19, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #8
  br label %1305

1305:                                             ; preds = %1301, %1297
  call void @llvm.lifetime.end.p0(i64 24, ptr %123) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #8
  br label %1306

1306:                                             ; preds = %1305, %1293
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #8
  br label %1325

1307:                                             ; preds = %1286
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %18, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %19, align 4
  call void @__cxa_free_exception(ptr %1287) #8
  br label %1325

1311:                                             ; preds = %1276
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312
  %1314 = load ptr, ptr %110, align 8, !tbaa !5
  %1315 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1314) #8
  %1316 = getelementptr inbounds %"struct.HIR::VisEnt", ptr %1315, i32 0, i32 1
  %1317 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %1316)
          to label %1318 unwind label %1289

1318:                                             ; preds = %1313
  store ptr %1317, ptr %107, align 8, !tbaa !5
  store i32 0, ptr %23, align 4
  br label %1319

1319:                                             ; preds = %1318, %1255
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #8
  %1320 = load i32, ptr %23, align 4
  switch i32 %1320, label %1326 [
    i32 0, label %1321
  ]

1321:                                             ; preds = %1319
  br label %1322

1322:                                             ; preds = %1321
  %1323 = load i32, ptr %108, align 4, !tbaa !14
  %1324 = add i32 %1323, 1
  store i32 %1324, ptr %108, align 4, !tbaa !14
  br label %1120, !llvm.loop !63

1325:                                             ; preds = %1307, %1306, %1289, %1269, %1212, %1208
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #8
  br label %1327

1326:                                             ; preds = %1319, %1134
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  br label %1328

1327:                                             ; preds = %1325, %1139
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  br label %1355

1328:                                             ; preds = %1326
  %1329 = load ptr, ptr %107, align 8, !tbaa !5
  %1330 = icmp ne ptr %1329, null
  br i1 %1330, label %1332, label %1331

1331:                                             ; preds = %1328
  store i32 75, ptr %23, align 4
  br label %1348

1332:                                             ; preds = %1328
  %1333 = load ptr, ptr %107, align 8, !tbaa !5
  %1334 = getelementptr inbounds %"class.HIR::Module", ptr %1333, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %124) #8
  %1335 = load ptr, ptr %101, align 8, !tbaa !5
  %1336 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1335)
          to label %1337 unwind label %1351

1337:                                             ; preds = %1332
  %1338 = getelementptr inbounds { ptr, i64 }, ptr %124, i32 0, i32 0
  %1339 = extractvalue { ptr, i64 } %1336, 0
  store ptr %1339, ptr %1338, align 8
  %1340 = getelementptr inbounds { ptr, i64 }, ptr %124, i32 0, i32 1
  %1341 = extractvalue { ptr, i64 } %1336, 1
  store i64 %1341, ptr %1340, align 8
  %1342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %124)
          to label %1343 unwind label %1351

1343:                                             ; preds = %1337
  %1344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %1334, ptr noundef nonnull align 8 dereferenceable(8) %1342)
          to label %1345 unwind label %1351

1345:                                             ; preds = %1343
  %1346 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1344) #8
  %1347 = getelementptr inbounds %"struct.HIR::VisEnt.534", ptr %1346, i32 0, i32 1
  store ptr %1347, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 16, ptr %124) #8
  store i32 0, ptr %23, align 4
  br label %1348

1348:                                             ; preds = %1345, %1331
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  %1349 = load i32, ptr %23, align 4
  switch i32 %1349, label %1690 [
    i32 0, label %1350
  ]

1350:                                             ; preds = %1348
  br label %1379

1351:                                             ; preds = %1343, %1337, %1332
  %1352 = landingpad { ptr, i32 }
          cleanup
  %1353 = extractvalue { ptr, i32 } %1352, 0
  store ptr %1353, ptr %18, align 8
  %1354 = extractvalue { ptr, i32 } %1352, 1
  store i32 %1354, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %124) #8
  br label %1355

1355:                                             ; preds = %1351, %1327, %1135
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  br label %1356

1356:                                             ; preds = %1355, %1102, %1101, %1089, %1085
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  br label %1697

1357:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #8
  %1358 = load ptr, ptr %97, align 8, !tbaa !5
  %1359 = getelementptr inbounds %"struct.std::pair.524", ptr %1358, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %1359)
          to label %1360 unwind label %1365

1360:                                             ; preds = %1357
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %126)
          to label %1361 unwind label %1369

1361:                                             ; preds = %1360
  %1362 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 0
  %1363 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1362, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1364 unwind label %1373

1364:                                             ; preds = %1361
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #8
  br label %1379

1365:                                             ; preds = %1357
  %1366 = landingpad { ptr, i32 }
          cleanup
  %1367 = extractvalue { ptr, i32 } %1366, 0
  store ptr %1367, ptr %18, align 8
  %1368 = extractvalue { ptr, i32 } %1366, 1
  store i32 %1368, ptr %19, align 4
  br label %1378

1369:                                             ; preds = %1360
  %1370 = landingpad { ptr, i32 }
          cleanup
  %1371 = extractvalue { ptr, i32 } %1370, 0
  store ptr %1371, ptr %18, align 8
  %1372 = extractvalue { ptr, i32 } %1370, 1
  store i32 %1372, ptr %19, align 4
  br label %1377

1373:                                             ; preds = %1361
  %1374 = landingpad { ptr, i32 }
          cleanup
  %1375 = extractvalue { ptr, i32 } %1374, 0
  store ptr %1375, ptr %18, align 8
  %1376 = extractvalue { ptr, i32 } %1374, 1
  store i32 %1376, ptr %19, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  br label %1377

1377:                                             ; preds = %1373, %1369
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #8
  br label %1378

1378:                                             ; preds = %1377, %1365
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #8
  br label %1697

1379:                                             ; preds = %1364, %1350
  %1380 = load ptr, ptr %99, align 8, !tbaa !5
  %1381 = icmp ne ptr %1380, null
  br i1 %1381, label %1382, label %1383

1382:                                             ; preds = %1379
  br label %1385

1383:                                             ; preds = %1379
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 445, ptr noundef @__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE) #10
  unreachable

1384:                                             ; No predecessors!
  br label %1385

1385:                                             ; preds = %1384, %1382
  call void @llvm.lifetime.start.p0(i64 1, ptr %127) #8
  store i8 1, ptr %127, align 1, !tbaa !18
  br label %1386

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

1389:                                             ; preds = %1386
  store i32 85, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #8
  br label %1682

1390:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #8
  %1391 = load ptr, ptr %99, align 8, !tbaa !5
  store ptr %1391, ptr %128, align 8, !tbaa !5
  br label %1392

1392:                                             ; preds = %1678, %1390
  %1393 = load i8, ptr %127, align 1, !tbaa !18, !range !20, !noundef !21
  %1394 = trunc i8 %1393 to i1
  br i1 %1394, label %1396, label %1395

1395:                                             ; preds = %1392
  store i32 88, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #8
  br label %1680

1396:                                             ; preds = %1392
  %1397 = load ptr, ptr %128, align 8, !tbaa !5
  %1398 = invoke noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368) %1397)
          to label %1399 unwind label %1400

1399:                                             ; preds = %1396
  switch i32 %1398, label %1677 [
    i32 0, label %1404
    i32 1, label %1405
    i32 2, label %1429
    i32 3, label %1472
    i32 4, label %1515
    i32 6, label %1576
    i32 5, label %1637
  ]

1400:                                             ; preds = %1396
  %1401 = landingpad { ptr, i32 }
          cleanup
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %18, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %19, align 4
  br label %1679

1404:                                             ; preds = %1399
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 446, ptr noundef @__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE) #10
  unreachable

1405:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #8
  store i8 1, ptr %129, align 1, !tbaa !18
  br label %1406

1406:                                             ; preds = %1427, %1405
  %1407 = load i8, ptr %129, align 1, !tbaa !18, !range !20, !noundef !21
  %1408 = trunc i8 %1407 to i1
  br i1 %1408, label %1410, label %1409

1409:                                             ; preds = %1406
  store i32 92, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #8
  br label %1428

1410:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #8
  %1411 = load ptr, ptr %128, align 8, !tbaa !5
  %1412 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %1411)
          to label %1413 unwind label %1419

1413:                                             ; preds = %1410
  store ptr %1412, ptr %130, align 8, !tbaa !5
  br label %1414

1414:                                             ; preds = %1425, %1413
  %1415 = load ptr, ptr %130, align 8, !tbaa !5
  %1416 = load i8, ptr %129, align 1, !tbaa !18, !range !20, !noundef !21
  %1417 = trunc i8 %1416 to i1
  br i1 %1417, label %1423, label %1418

1418:                                             ; preds = %1414
  store i32 95, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #8
  br label %1426

1419:                                             ; preds = %1423, %1410
  %1420 = landingpad { ptr, i32 }
          cleanup
  %1421 = extractvalue { ptr, i32 } %1420, 0
  store ptr %1421, ptr %18, align 8
  %1422 = extractvalue { ptr, i32 } %1420, 1
  store i32 %1422, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #8
  br label %1679

1423:                                             ; preds = %1414
  %1424 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.4, ptr %1424, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr %1424, ptr @_ZTIPKc, ptr null) #9
          to label %1992 unwind label %1419

1425:                                             ; No predecessors!
  store i8 0, ptr %129, align 1, !tbaa !18
  br label %1414, !llvm.loop !64

1426:                                             ; preds = %1418
  br label %1427

1427:                                             ; preds = %1426
  store i8 0, ptr %129, align 1, !tbaa !18
  br label %1406, !llvm.loop !65

1428:                                             ; preds = %1409
  br label %1677

1429:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #8
  store i8 1, ptr %131, align 1, !tbaa !18
  br label %1430

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

1433:                                             ; preds = %1430
  store i32 98, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #8
  br label %1471

1434:                                             ; preds = %1430
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #8
  %1435 = load ptr, ptr %128, align 8, !tbaa !5
  %1436 = invoke noundef nonnull align 8 dereferenceable(280) ptr @_ZNK3HIR9ValueItem11as_ConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %1435)
          to label %1437 unwind label %1443

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

1438:                                             ; preds = %1458, %1437
  %1439 = load ptr, ptr %132, align 8, !tbaa !5
  %1440 = load i8, ptr %131, align 1, !tbaa !18, !range !20, !noundef !21
  %1441 = trunc i8 %1440 to i1
  br i1 %1441, label %1447, label %1442

1442:                                             ; preds = %1438
  store i32 101, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  br label %1469

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

1447:                                             ; preds = %1438
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #8
  %1448 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %134, i32 0, i32 0
  store ptr null, ptr %1448, align 8, !tbaa !66
  %1449 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %134, i32 0, i32 1
  store ptr null, ptr %1449, align 8, !tbaa !68
  %1450 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 0
  %1451 = load ptr, ptr %1450, align 8
  %1452 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 1
  %1453 = load ptr, ptr %1452, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %133, ptr %1451, ptr %1453)
          to label %1454 unwind label %1459

1454:                                             ; preds = %1447
  %1455 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 1
  %1456 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1455, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %1457 unwind label %1463

1457:                                             ; preds = %1454
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  br label %1458

1458:                                             ; preds = %1457
  store i8 0, ptr %131, align 1, !tbaa !18
  br label %1438, !llvm.loop !69

1459:                                             ; preds = %1447
  %1460 = landingpad { ptr, i32 }
          cleanup
  %1461 = extractvalue { ptr, i32 } %1460, 0
  store ptr %1461, ptr %18, align 8
  %1462 = extractvalue { ptr, i32 } %1460, 1
  store i32 %1462, ptr %19, align 4
  br label %1467

1463:                                             ; preds = %1454
  %1464 = landingpad { ptr, i32 }
          cleanup
  %1465 = extractvalue { ptr, i32 } %1464, 0
  store ptr %1465, ptr %18, align 8
  %1466 = extractvalue { ptr, i32 } %1464, 1
  store i32 %1466, ptr %19, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %1467

1467:                                             ; preds = %1463, %1459
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  br label %1468

1468:                                             ; preds = %1467, %1443
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #8
  br label %1679

1469:                                             ; preds = %1442
  br label %1470

1470:                                             ; preds = %1469
  store i8 0, ptr %131, align 1, !tbaa !18
  br label %1430, !llvm.loop !70

1471:                                             ; preds = %1433
  br label %1677

1472:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 1, ptr %135) #8
  store i8 1, ptr %135, align 1, !tbaa !18
  br label %1473

1473:                                             ; preds = %1513, %1472
  %1474 = load i8, ptr %135, align 1, !tbaa !18, !range !20, !noundef !21
  %1475 = trunc i8 %1474 to i1
  br i1 %1475, label %1477, label %1476

1476:                                             ; preds = %1473
  store i32 104, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #8
  br label %1514

1477:                                             ; preds = %1473
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #8
  %1478 = load ptr, ptr %128, align 8, !tbaa !5
  %1479 = invoke noundef nonnull align 8 dereferenceable(360) ptr @_ZNK3HIR9ValueItem9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(368) %1478)
          to label %1480 unwind label %1486

1480:                                             ; preds = %1477
  store ptr %1479, ptr %136, align 8, !tbaa !5
  br label %1481

1481:                                             ; preds = %1501, %1480
  %1482 = load ptr, ptr %136, align 8, !tbaa !5
  %1483 = load i8, ptr %135, align 1, !tbaa !18, !range !20, !noundef !21
  %1484 = trunc i8 %1483 to i1
  br i1 %1484, label %1490, label %1485

1485:                                             ; preds = %1481
  store i32 107, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  br label %1512

1486:                                             ; preds = %1477
  %1487 = landingpad { ptr, i32 }
          cleanup
  %1488 = extractvalue { ptr, i32 } %1487, 0
  store ptr %1488, ptr %18, align 8
  %1489 = extractvalue { ptr, i32 } %1487, 1
  store i32 %1489, ptr %19, align 4
  br label %1511

1490:                                             ; preds = %1481
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #8
  %1491 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %138, i32 0, i32 0
  store ptr null, ptr %1491, align 8, !tbaa !66
  %1492 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %138, i32 0, i32 1
  store ptr null, ptr %1492, align 8, !tbaa !68
  %1493 = getelementptr inbounds { ptr, ptr }, ptr %138, i32 0, i32 0
  %1494 = load ptr, ptr %1493, align 8
  %1495 = getelementptr inbounds { ptr, ptr }, ptr %138, i32 0, i32 1
  %1496 = load ptr, ptr %1495, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %137, ptr %1494, ptr %1496)
          to label %1497 unwind label %1502

1497:                                             ; preds = %1490
  %1498 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 1
  %1499 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1498, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %1500 unwind label %1506

1500:                                             ; preds = %1497
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  br label %1501

1501:                                             ; preds = %1500
  store i8 0, ptr %135, align 1, !tbaa !18
  br label %1481, !llvm.loop !71

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

1506:                                             ; preds = %1497
  %1507 = landingpad { ptr, i32 }
          cleanup
  %1508 = extractvalue { ptr, i32 } %1507, 0
  store ptr %1508, ptr %18, align 8
  %1509 = extractvalue { ptr, i32 } %1507, 1
  store i32 %1509, ptr %19, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %1510

1510:                                             ; preds = %1506, %1502
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  br label %1511

1511:                                             ; preds = %1510, %1486
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #8
  br label %1679

1512:                                             ; preds = %1485
  br label %1513

1513:                                             ; preds = %1512
  store i8 0, ptr %135, align 1, !tbaa !18
  br label %1473, !llvm.loop !72

1514:                                             ; preds = %1476
  br label %1677

1515:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #8
  store i8 1, ptr %139, align 1, !tbaa !18
  br label %1516

1516:                                             ; preds = %1574, %1515
  %1517 = load i8, ptr %139, align 1, !tbaa !18, !range !20, !noundef !21
  %1518 = trunc i8 %1517 to i1
  br i1 %1518, label %1520, label %1519

1519:                                             ; preds = %1516
  store i32 110, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #8
  br label %1575

1520:                                             ; preds = %1516
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #8
  %1521 = load ptr, ptr %128, align 8, !tbaa !5
  %1522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem17as_StructConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %1521)
          to label %1523 unwind label %1529

1523:                                             ; preds = %1520
  store ptr %1522, ptr %140, align 8, !tbaa !5
  br label %1524

1524:                                             ; preds = %1562, %1523
  %1525 = load ptr, ptr %140, align 8, !tbaa !5
  %1526 = load i8, ptr %139, align 1, !tbaa !18, !range !20, !noundef !21
  %1527 = trunc i8 %1526 to i1
  br i1 %1527, label %1533, label %1528

1528:                                             ; preds = %1524
  store i32 113, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #8
  br label %1573

1529:                                             ; preds = %1520
  %1530 = landingpad { ptr, i32 }
          cleanup
  %1531 = extractvalue { ptr, i32 } %1530, 0
  store ptr %1531, ptr %18, align 8
  %1532 = extractvalue { ptr, i32 } %1530, 1
  store i32 %1532, ptr %19, align 4
  br label %1572

1533:                                             ; preds = %1524
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #8
  %1534 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %142, i32 0, i32 0
  store ptr null, ptr %1534, align 8, !tbaa !73
  %1535 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %142, i32 0, i32 1
  %1536 = load ptr, ptr %9, align 8, !tbaa !5
  %1537 = getelementptr inbounds %"class.AST::Crate", ptr %1536, i32 0, i32 4
  %1538 = load ptr, ptr %140, align 8, !tbaa !5
  %1539 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstant", ptr %1538, i32 0, i32 0
  %1540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1539)
          to label %1541 unwind label %1563

1541:                                             ; preds = %1533
  %1542 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1537, ptr noundef nonnull align 8 dereferenceable(8) %1540)
          to label %1543 unwind label %1563

1543:                                             ; preds = %1541
  %1544 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1542, i32 0, i32 3
  %1545 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1544)
          to label %1546 unwind label %1563

1546:                                             ; preds = %1543
  %1547 = load ptr, ptr %8, align 8, !tbaa !5
  %1548 = load ptr, ptr %140, align 8, !tbaa !5
  %1549 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstant", ptr %1548, i32 0, i32 0
  %1550 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1545, ptr noundef nonnull align 8 dereferenceable(8) %1547, ptr noundef nonnull align 8 dereferenceable(8) %1549, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1551 unwind label %1563

1551:                                             ; preds = %1546
  %1552 = invoke noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %1550)
          to label %1553 unwind label %1563

1553:                                             ; preds = %1551
  store ptr %1552, ptr %1535, align 8, !tbaa !75
  %1554 = getelementptr inbounds { ptr, ptr }, ptr %142, i32 0, i32 0
  %1555 = load ptr, ptr %1554, align 8
  %1556 = getelementptr inbounds { ptr, ptr }, ptr %142, i32 0, i32 1
  %1557 = load ptr, ptr %1556, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %141, ptr %1555, ptr %1557)
          to label %1558 unwind label %1563

1558:                                             ; preds = %1553
  %1559 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 1
  %1560 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1559, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %1561 unwind label %1567

1561:                                             ; preds = %1558
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %1562

1562:                                             ; preds = %1561
  store i8 0, ptr %139, align 1, !tbaa !18
  br label %1524, !llvm.loop !76

1563:                                             ; preds = %1553, %1551, %1546, %1543, %1541, %1533
  %1564 = landingpad { ptr, i32 }
          cleanup
  %1565 = extractvalue { ptr, i32 } %1564, 0
  store ptr %1565, ptr %18, align 8
  %1566 = extractvalue { ptr, i32 } %1564, 1
  store i32 %1566, ptr %19, align 4
  br label %1571

1567:                                             ; preds = %1558
  %1568 = landingpad { ptr, i32 }
          cleanup
  %1569 = extractvalue { ptr, i32 } %1568, 0
  store ptr %1569, ptr %18, align 8
  %1570 = extractvalue { ptr, i32 } %1568, 1
  store i32 %1570, ptr %19, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  br label %1571

1571:                                             ; preds = %1567, %1563
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %1572

1572:                                             ; preds = %1571, %1529
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #8
  br label %1679

1573:                                             ; preds = %1528
  br label %1574

1574:                                             ; preds = %1573
  store i8 0, ptr %139, align 1, !tbaa !18
  br label %1516, !llvm.loop !77

1575:                                             ; preds = %1519
  br label %1677

1576:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #8
  store i8 1, ptr %143, align 1, !tbaa !18
  br label %1577

1577:                                             ; preds = %1635, %1576
  %1578 = load i8, ptr %143, align 1, !tbaa !18, !range !20, !noundef !21
  %1579 = trunc i8 %1578 to i1
  br i1 %1579, label %1581, label %1580

1580:                                             ; preds = %1577
  store i32 116, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #8
  br label %1636

1581:                                             ; preds = %1577
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #8
  %1582 = load ptr, ptr %128, align 8, !tbaa !5
  %1583 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368) %1582)
          to label %1584 unwind label %1590

1584:                                             ; preds = %1581
  store ptr %1583, ptr %144, align 8, !tbaa !5
  br label %1585

1585:                                             ; preds = %1623, %1584
  %1586 = load ptr, ptr %144, align 8, !tbaa !5
  %1587 = load i8, ptr %143, align 1, !tbaa !18, !range !20, !noundef !21
  %1588 = trunc i8 %1587 to i1
  br i1 %1588, label %1594, label %1589

1589:                                             ; preds = %1585
  store i32 119, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #8
  br label %1634

1590:                                             ; preds = %1581
  %1591 = landingpad { ptr, i32 }
          cleanup
  %1592 = extractvalue { ptr, i32 } %1591, 0
  store ptr %1592, ptr %18, align 8
  %1593 = extractvalue { ptr, i32 } %1591, 1
  store i32 %1593, ptr %19, align 4
  br label %1633

1594:                                             ; preds = %1585
  call void @llvm.lifetime.start.p0(i64 32, ptr %145) #8
  %1595 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %146, i32 0, i32 0
  store ptr null, ptr %1595, align 8, !tbaa !73
  %1596 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %146, i32 0, i32 1
  %1597 = load ptr, ptr %9, align 8, !tbaa !5
  %1598 = getelementptr inbounds %"class.AST::Crate", ptr %1597, i32 0, i32 4
  %1599 = load ptr, ptr %144, align 8, !tbaa !5
  %1600 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstructor", ptr %1599, i32 0, i32 0
  %1601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1600)
          to label %1602 unwind label %1624

1602:                                             ; preds = %1594
  %1603 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %1598, ptr noundef nonnull align 8 dereferenceable(8) %1601)
          to label %1604 unwind label %1624

1604:                                             ; preds = %1602
  %1605 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1603, i32 0, i32 3
  %1606 = invoke noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1605)
          to label %1607 unwind label %1624

1607:                                             ; preds = %1604
  %1608 = load ptr, ptr %8, align 8, !tbaa !5
  %1609 = load ptr, ptr %144, align 8, !tbaa !5
  %1610 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstructor", ptr %1609, i32 0, i32 0
  %1611 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %1606, ptr noundef nonnull align 8 dereferenceable(8) %1608, ptr noundef nonnull align 8 dereferenceable(8) %1610, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %1612 unwind label %1624

1612:                                             ; preds = %1607
  %1613 = invoke noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %1611)
          to label %1614 unwind label %1624

1614:                                             ; preds = %1612
  store ptr %1613, ptr %1596, align 8, !tbaa !75
  %1615 = getelementptr inbounds { ptr, ptr }, ptr %146, i32 0, i32 0
  %1616 = load ptr, ptr %1615, align 8
  %1617 = getelementptr inbounds { ptr, ptr }, ptr %146, i32 0, i32 1
  %1618 = load ptr, ptr %1617, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %145, ptr %1616, ptr %1618)
          to label %1619 unwind label %1624

1619:                                             ; preds = %1614
  %1620 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 1
  %1621 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1620, ptr noundef nonnull align 8 dereferenceable(32) %145)
          to label %1622 unwind label %1628

1622:                                             ; preds = %1619
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #8
  br label %1623

1623:                                             ; preds = %1622
  store i8 0, ptr %143, align 1, !tbaa !18
  br label %1585, !llvm.loop !78

1624:                                             ; preds = %1614, %1612, %1607, %1604, %1602, %1594
  %1625 = landingpad { ptr, i32 }
          cleanup
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %18, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %19, align 4
  br label %1632

1628:                                             ; preds = %1619
  %1629 = landingpad { ptr, i32 }
          cleanup
  %1630 = extractvalue { ptr, i32 } %1629, 0
  store ptr %1630, ptr %18, align 8
  %1631 = extractvalue { ptr, i32 } %1629, 1
  store i32 %1631, ptr %19, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  br label %1632

1632:                                             ; preds = %1628, %1624
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #8
  br label %1633

1633:                                             ; preds = %1632, %1590
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #8
  br label %1679

1634:                                             ; preds = %1589
  br label %1635

1635:                                             ; preds = %1634
  store i8 0, ptr %143, align 1, !tbaa !18
  br label %1577, !llvm.loop !79

1636:                                             ; preds = %1580
  br label %1677

1637:                                             ; preds = %1399
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #8
  store i8 1, ptr %147, align 1, !tbaa !18
  br label %1638

1638:                                             ; preds = %1675, %1637
  %1639 = load i8, ptr %147, align 1, !tbaa !18, !range !20, !noundef !21
  %1640 = trunc i8 %1639 to i1
  br i1 %1640, label %1642, label %1641

1641:                                             ; preds = %1638
  store i32 122, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #8
  br label %1676

1642:                                             ; preds = %1638
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #8
  %1643 = load ptr, ptr %128, align 8, !tbaa !5
  %1644 = invoke noundef nonnull align 8 dereferenceable(352) ptr @_ZNK3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %1643)
          to label %1645 unwind label %1651

1645:                                             ; preds = %1642
  store ptr %1644, ptr %148, align 8, !tbaa !5
  br label %1646

1646:                                             ; preds = %1663, %1645
  %1647 = load ptr, ptr %148, align 8, !tbaa !5
  %1648 = load i8, ptr %147, align 1, !tbaa !18, !range !20, !noundef !21
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1655, label %1650

1650:                                             ; preds = %1646
  store i32 125, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #8
  br label %1674

1651:                                             ; preds = %1642
  %1652 = landingpad { ptr, i32 }
          cleanup
  %1653 = extractvalue { ptr, i32 } %1652, 0
  store ptr %1653, ptr %18, align 8
  %1654 = extractvalue { ptr, i32 } %1652, 1
  store i32 %1654, ptr %19, align 4
  br label %1673

1655:                                             ; preds = %1646
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #8
  %1656 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %150, i32 0, i32 0
  store ptr null, ptr %1656, align 8, !tbaa !80
  %1657 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %150, i32 0, i32 0
  %1658 = load ptr, ptr %1657, align 8
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %149, ptr %1658)
          to label %1659 unwind label %1664

1659:                                             ; preds = %1655
  %1660 = getelementptr inbounds %"struct.AST::PathBinding", ptr %100, i32 0, i32 1
  %1661 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1660, ptr noundef nonnull align 8 dereferenceable(32) %149)
          to label %1662 unwind label %1668

1662:                                             ; preds = %1659
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %1663

1663:                                             ; preds = %1662
  store i8 0, ptr %147, align 1, !tbaa !18
  br label %1646, !llvm.loop !82

1664:                                             ; preds = %1655
  %1665 = landingpad { ptr, i32 }
          cleanup
  %1666 = extractvalue { ptr, i32 } %1665, 0
  store ptr %1666, ptr %18, align 8
  %1667 = extractvalue { ptr, i32 } %1665, 1
  store i32 %1667, ptr %19, align 4
  br label %1672

1668:                                             ; preds = %1659
  %1669 = landingpad { ptr, i32 }
          cleanup
  %1670 = extractvalue { ptr, i32 } %1669, 0
  store ptr %1670, ptr %18, align 8
  %1671 = extractvalue { ptr, i32 } %1669, 1
  store i32 %1671, ptr %19, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  br label %1672

1672:                                             ; preds = %1668, %1664
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #8
  br label %1673

1673:                                             ; preds = %1672, %1651
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #8
  br label %1679

1674:                                             ; preds = %1650
  br label %1675

1675:                                             ; preds = %1674
  store i8 0, ptr %147, align 1, !tbaa !18
  br label %1638, !llvm.loop !83

1676:                                             ; preds = %1641
  br label %1677

1677:                                             ; preds = %1676, %1636, %1575, %1514, %1471, %1428, %1399
  br label %1678

1678:                                             ; preds = %1677
  store i8 0, ptr %127, align 1, !tbaa !18
  br label %1392, !llvm.loop !84

1679:                                             ; preds = %1673, %1633, %1572, %1511, %1468, %1419, %1400
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #8
  br label %1697

1680:                                             ; preds = %1395
  br label %1681

1681:                                             ; preds = %1680
  store i8 0, ptr %127, align 1, !tbaa !18
  br label %1386, !llvm.loop !85

1682:                                             ; preds = %1389
  %1683 = load ptr, ptr %8, align 8, !tbaa !5
  %1684 = load ptr, ptr %10, align 8, !tbaa !5
  %1685 = load ptr, ptr %97, align 8, !tbaa !5
  %1686 = getelementptr inbounds %"struct.std::pair.524", ptr %1685, i32 0, i32 0
  %1687 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %151, ptr noundef nonnull align 8 dereferenceable(64) %100)
          to label %1688 unwind label %1081

1688:                                             ; preds = %1682
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1683, ptr noundef nonnull align 8 dereferenceable(480) %1684, ptr noundef nonnull align 8 dereferenceable(8) %1686, ptr noundef nonnull align 8 dereferenceable(36) %1687, ptr noundef %151, i1 noundef zeroext false)
          to label %1689 unwind label %1693

1689:                                             ; preds = %1688
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %151) #8
  store i32 0, ptr %23, align 4
  br label %1690

1690:                                             ; preds = %1689, %1348
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %100) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  %1691 = load i32, ptr %23, align 4
  switch i32 %1691, label %1700 [
    i32 0, label %1692
  ]

1692:                                             ; preds = %1690
  br label %1699

1693:                                             ; preds = %1688
  %1694 = landingpad { ptr, i32 }
          cleanup
  %1695 = extractvalue { ptr, i32 } %1694, 0
  store ptr %1695, ptr %18, align 8
  %1696 = extractvalue { ptr, i32 } %1694, 1
  store i32 %1696, ptr %19, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %151) #8
  br label %1697

1697:                                             ; preds = %1693, %1679, %1378, %1356, %1081
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %100) #8
  br label %1698

1698:                                             ; preds = %1697, %1077
  call void @llvm.lifetime.end.p0(i64 64, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  br label %1708

1699:                                             ; preds = %1692, %1023
  store i32 0, ptr %23, align 4
  br label %1700

1700:                                             ; preds = %1699, %1690
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #8
  %1701 = load i32, ptr %23, align 4
  switch i32 %1701, label %1703 [
    i32 0, label %1702
  ]

1702:                                             ; preds = %1700
  store i32 0, ptr %23, align 4
  br label %1703

1703:                                             ; preds = %1702, %1700
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  %1704 = load i32, ptr %23, align 4
  switch i32 %1704, label %1992 [
    i32 0, label %1705
    i32 75, label %1706
  ]

1705:                                             ; preds = %1703
  br label %1706

1706:                                             ; preds = %1705, %1703
  %1707 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  br label %1012

1708:                                             ; preds = %1698, %1073
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1985

1709:                                             ; preds = %1014
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #8
  %1710 = load ptr, ptr %11, align 8, !tbaa !5
  %1711 = getelementptr inbounds %"class.HIR::Module", ptr %1710, i32 0, i32 3
  store ptr %1711, ptr %152, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #8
  %1712 = load ptr, ptr %152, align 8, !tbaa !5
  %1713 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %1712) #8
  %1714 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.564", ptr %153, i32 0, i32 0
  %1715 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.565", ptr %1714, i32 0, i32 0
  store ptr %1713, ptr %1715, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #8
  %1716 = load ptr, ptr %152, align 8, !tbaa !5
  %1717 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1716) #8
  %1718 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.564", ptr %154, i32 0, i32 0
  %1719 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.565", ptr %1718, i32 0, i32 0
  store ptr %1717, ptr %1719, align 8
  br label %1720

1720:                                             ; preds = %1981, %1709
  %1721 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %153, ptr noundef nonnull align 8 dereferenceable(8) %154) #8
  br i1 %1721, label %1723, label %1722

1722:                                             ; preds = %1720
  store i32 128, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #8
  br label %1984

1723:                                             ; preds = %1720
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #8
  %1724 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %153) #8
  store ptr %1724, ptr %155, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #8
  %1725 = load ptr, ptr %155, align 8, !tbaa !5
  %1726 = getelementptr inbounds %"struct.std::pair.566", ptr %1725, i32 0, i32 1
  %1727 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1726) #8
  store ptr %1727, ptr %156, align 8, !tbaa !5
  %1728 = load ptr, ptr %156, align 8, !tbaa !5
  %1729 = getelementptr inbounds %"struct.HIR::VisEnt.576", ptr %1728, i32 0, i32 0
  %1730 = invoke noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %1729)
          to label %1731 unwind label %1761

1731:                                             ; preds = %1723
  br i1 %1730, label %1732, label %1980

1732:                                             ; preds = %1731
  call void @llvm.lifetime.start.p0(i64 56, ptr %157) #8
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %157)
          to label %1733 unwind label %1765

1733:                                             ; preds = %1732
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #8
  %1734 = load ptr, ptr %156, align 8, !tbaa !5
  %1735 = getelementptr inbounds %"struct.HIR::VisEnt.576", ptr %1734, i32 0, i32 1
  %1736 = invoke noundef ptr @_ZNK3HIR9MacroItem10opt_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %1735)
          to label %1737 unwind label %1769

1737:                                             ; preds = %1733
  store ptr %1736, ptr %158, align 8, !tbaa !5
  %1738 = load ptr, ptr %158, align 8, !tbaa !5
  %1739 = icmp ne ptr %1738, null
  br i1 %1739, label %1740, label %1777

1740:                                             ; preds = %1737
  %1741 = load ptr, ptr %158, align 8, !tbaa !5
  %1742 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %1741, i32 0, i32 0
  %1743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %1742)
          to label %1744 unwind label %1769

1744:                                             ; preds = %1740
  %1745 = getelementptr inbounds %"struct.AST::PathBinding.62", ptr %157, i32 0, i32 0
  %1746 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1745, i32 0, i32 0
  %1747 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1746, ptr noundef nonnull align 8 dereferenceable(8) %1743)
          to label %1748 unwind label %1769

1748:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 24, ptr %159) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %160) #8
  %1749 = load ptr, ptr %158, align 8, !tbaa !5
  %1750 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %1749, i32 0, i32 0
  %1751 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1750)
          to label %1752 unwind label %1773

1752:                                             ; preds = %1748
  %1753 = getelementptr inbounds { ptr, i64 }, ptr %160, i32 0, i32 0
  %1754 = extractvalue { ptr, i64 } %1751, 0
  store ptr %1754, ptr %1753, align 8
  %1755 = getelementptr inbounds { ptr, i64 }, ptr %160, i32 0, i32 1
  %1756 = extractvalue { ptr, i64 } %1751, 1
  store i64 %1756, ptr %1755, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %159, ptr noundef nonnull align 8 dereferenceable(16) %160)
          to label %1757 unwind label %1773

1757:                                             ; preds = %1752
  %1758 = getelementptr inbounds %"struct.AST::PathBinding.62", ptr %157, i32 0, i32 0
  %1759 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1758, i32 0, i32 1
  %1760 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %1759, ptr noundef nonnull align 8 dereferenceable(24) %159) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %159) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #8
  br label %1799

1761:                                             ; preds = %1723
  %1762 = landingpad { ptr, i32 }
          cleanup
  %1763 = extractvalue { ptr, i32 } %1762, 0
  store ptr %1763, ptr %18, align 8
  %1764 = extractvalue { ptr, i32 } %1762, 1
  store i32 %1764, ptr %19, align 4
  br label %1983

1765:                                             ; preds = %1732
  %1766 = landingpad { ptr, i32 }
          cleanup
  %1767 = extractvalue { ptr, i32 } %1766, 0
  store ptr %1767, ptr %18, align 8
  %1768 = extractvalue { ptr, i32 } %1766, 1
  store i32 %1768, ptr %19, align 4
  br label %1979

1769:                                             ; preds = %1744, %1740, %1733
  %1770 = landingpad { ptr, i32 }
          cleanup
  %1771 = extractvalue { ptr, i32 } %1770, 0
  store ptr %1771, ptr %18, align 8
  %1772 = extractvalue { ptr, i32 } %1770, 1
  store i32 %1772, ptr %19, align 4
  br label %1804

1773:                                             ; preds = %1752, %1748
  %1774 = landingpad { ptr, i32 }
          cleanup
  %1775 = extractvalue { ptr, i32 } %1774, 0
  store ptr %1775, ptr %18, align 8
  %1776 = extractvalue { ptr, i32 } %1774, 1
  store i32 %1776, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #8
  br label %1804

1777:                                             ; preds = %1737
  call void @llvm.lifetime.start.p0(i64 32, ptr %161) #8
  %1778 = load ptr, ptr %155, align 8, !tbaa !5
  %1779 = getelementptr inbounds %"struct.std::pair.566", ptr %1778, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull align 8 dereferenceable(8) %1779)
          to label %1780 unwind label %1785

1780:                                             ; preds = %1777
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %161, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %162)
          to label %1781 unwind label %1789

1781:                                             ; preds = %1780
  %1782 = getelementptr inbounds %"struct.AST::PathBinding.62", ptr %157, i32 0, i32 0
  %1783 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1782, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %1784 unwind label %1793

1784:                                             ; preds = %1781
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #8
  br label %1799

1785:                                             ; preds = %1777
  %1786 = landingpad { ptr, i32 }
          cleanup
  %1787 = extractvalue { ptr, i32 } %1786, 0
  store ptr %1787, ptr %18, align 8
  %1788 = extractvalue { ptr, i32 } %1786, 1
  store i32 %1788, ptr %19, align 4
  br label %1798

1789:                                             ; preds = %1780
  %1790 = landingpad { ptr, i32 }
          cleanup
  %1791 = extractvalue { ptr, i32 } %1790, 0
  store ptr %1791, ptr %18, align 8
  %1792 = extractvalue { ptr, i32 } %1790, 1
  store i32 %1792, ptr %19, align 4
  br label %1797

1793:                                             ; preds = %1781
  %1794 = landingpad { ptr, i32 }
          cleanup
  %1795 = extractvalue { ptr, i32 } %1794, 0
  store ptr %1795, ptr %18, align 8
  %1796 = extractvalue { ptr, i32 } %1794, 1
  store i32 %1796, ptr %19, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  br label %1797

1797:                                             ; preds = %1793, %1789
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #8
  br label %1798

1798:                                             ; preds = %1797, %1785
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #8
  br label %1804

1799:                                             ; preds = %1784, %1757
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #8
  store i8 1, ptr %163, align 1, !tbaa !18
  br label %1800

1800:                                             ; preds = %1961, %1799
  %1801 = load i8, ptr %163, align 1, !tbaa !18, !range !20, !noundef !21
  %1802 = trunc i8 %1801 to i1
  br i1 %1802, label %1805, label %1803

1803:                                             ; preds = %1800
  store i32 130, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #8
  br label %1962

1804:                                             ; preds = %1798, %1773, %1769
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #8
  br label %1978

1805:                                             ; preds = %1800
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #8
  %1806 = load ptr, ptr %156, align 8, !tbaa !5
  %1807 = getelementptr inbounds %"struct.HIR::VisEnt.576", ptr %1806, i32 0, i32 1
  store ptr %1807, ptr %164, align 8, !tbaa !5
  br label %1808

1808:                                             ; preds = %1958, %1805
  %1809 = load i8, ptr %163, align 1, !tbaa !18, !range !20, !noundef !21
  %1810 = trunc i8 %1809 to i1
  br i1 %1810, label %1812, label %1811

1811:                                             ; preds = %1808
  store i32 133, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #8
  br label %1960

1812:                                             ; preds = %1808
  %1813 = load ptr, ptr %164, align 8, !tbaa !5
  %1814 = invoke noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56) %1813)
          to label %1815 unwind label %1816

1815:                                             ; preds = %1812
  switch i32 %1814, label %1957 [
    i32 0, label %1820
    i32 1, label %1821
    i32 3, label %1864
    i32 2, label %1911
  ]

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

1820:                                             ; preds = %1815
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 483, ptr noundef @__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE) #10
  unreachable

1821:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 1, ptr %165) #8
  store i8 1, ptr %165, align 1, !tbaa !18
  br label %1822

1822:                                             ; preds = %1862, %1821
  %1823 = load i8, ptr %165, align 1, !tbaa !18, !range !20, !noundef !21
  %1824 = trunc i8 %1823 to i1
  br i1 %1824, label %1826, label %1825

1825:                                             ; preds = %1822
  store i32 137, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #8
  br label %1863

1826:                                             ; preds = %1822
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #8
  %1827 = load ptr, ptr %164, align 8, !tbaa !5
  %1828 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %1827)
          to label %1829 unwind label %1835

1829:                                             ; preds = %1826
  store ptr %1828, ptr %166, align 8, !tbaa !5
  br label %1830

1830:                                             ; preds = %1850, %1829
  %1831 = load ptr, ptr %166, align 8, !tbaa !5
  %1832 = load i8, ptr %165, align 1, !tbaa !18, !range !20, !noundef !21
  %1833 = trunc i8 %1832 to i1
  br i1 %1833, label %1839, label %1834

1834:                                             ; preds = %1830
  store i32 140, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #8
  br label %1861

1835:                                             ; preds = %1826
  %1836 = landingpad { ptr, i32 }
          cleanup
  %1837 = extractvalue { ptr, i32 } %1836, 0
  store ptr %1837, ptr %18, align 8
  %1838 = extractvalue { ptr, i32 } %1836, 1
  store i32 %1838, ptr %19, align 4
  br label %1860

1839:                                             ; preds = %1830
  call void @llvm.lifetime.start.p0(i64 24, ptr %167) #8
  %1840 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %168, i32 0, i32 0
  store ptr null, ptr %1840, align 8, !tbaa !86
  %1841 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %168, i32 0, i32 1
  store ptr null, ptr %1841, align 8, !tbaa !88
  %1842 = getelementptr inbounds { ptr, ptr }, ptr %168, i32 0, i32 0
  %1843 = load ptr, ptr %1842, align 8
  %1844 = getelementptr inbounds { ptr, ptr }, ptr %168, i32 0, i32 1
  %1845 = load ptr, ptr %1844, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %167, ptr %1843, ptr %1845)
          to label %1846 unwind label %1851

1846:                                             ; preds = %1839
  %1847 = getelementptr inbounds %"struct.AST::PathBinding.62", ptr %157, i32 0, i32 1
  %1848 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1847, ptr noundef nonnull align 8 dereferenceable(24) %167)
          to label %1849 unwind label %1855

1849:                                             ; preds = %1846
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %167) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %167) #8
  br label %1850

1850:                                             ; preds = %1849
  store i8 0, ptr %165, align 1, !tbaa !18
  br label %1830, !llvm.loop !89

1851:                                             ; preds = %1839
  %1852 = landingpad { ptr, i32 }
          cleanup
  %1853 = extractvalue { ptr, i32 } %1852, 0
  store ptr %1853, ptr %18, align 8
  %1854 = extractvalue { ptr, i32 } %1852, 1
  store i32 %1854, ptr %19, align 4
  br label %1859

1855:                                             ; preds = %1846
  %1856 = landingpad { ptr, i32 }
          cleanup
  %1857 = extractvalue { ptr, i32 } %1856, 0
  store ptr %1857, ptr %18, align 8
  %1858 = extractvalue { ptr, i32 } %1856, 1
  store i32 %1858, ptr %19, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %167) #8
  br label %1859

1859:                                             ; preds = %1855, %1851
  call void @llvm.lifetime.end.p0(i64 24, ptr %167) #8
  br label %1860

1860:                                             ; preds = %1859, %1835
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #8
  br label %1959

1861:                                             ; preds = %1834
  br label %1862

1862:                                             ; preds = %1861
  store i8 0, ptr %165, align 1, !tbaa !18
  br label %1822, !llvm.loop !90

1863:                                             ; preds = %1825
  br label %1957

1864:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #8
  store i8 1, ptr %169, align 1, !tbaa !18
  br label %1865

1865:                                             ; preds = %1909, %1864
  %1866 = load i8, ptr %169, align 1, !tbaa !18, !range !20, !noundef !21
  %1867 = trunc i8 %1866 to i1
  br i1 %1867, label %1869, label %1868

1868:                                             ; preds = %1865
  store i32 143, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  br label %1910

1869:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #8
  %1870 = load ptr, ptr %164, align 8, !tbaa !5
  %1871 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3HIR9MacroItem12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(56) %1870)
          to label %1872 unwind label %1878

1872:                                             ; preds = %1869
  store ptr %1871, ptr %170, align 8, !tbaa !5
  br label %1873

1873:                                             ; preds = %1892, %1872
  %1874 = load ptr, ptr %170, align 8, !tbaa !5
  %1875 = load i8, ptr %169, align 1, !tbaa !18, !range !20, !noundef !21
  %1876 = trunc i8 %1875 to i1
  br i1 %1876, label %1882, label %1877

1877:                                             ; preds = %1873
  store i32 146, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #8
  br label %1908

1878:                                             ; preds = %1869
  %1879 = landingpad { ptr, i32 }
          cleanup
  %1880 = extractvalue { ptr, i32 } %1879, 0
  store ptr %1880, ptr %18, align 8
  %1881 = extractvalue { ptr, i32 } %1879, 1
  store i32 %1881, ptr %19, align 4
  br label %1907

1882:                                             ; preds = %1873
  call void @llvm.lifetime.start.p0(i64 24, ptr %171) #8
  %1883 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_ProcMacro", ptr %172, i32 0, i32 0
  store ptr null, ptr %1883, align 8, !tbaa !91
  %1884 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_ProcMacro", ptr %172, i32 0, i32 1
  %1885 = load ptr, ptr %170, align 8, !tbaa !5
  %1886 = getelementptr inbounds %"class.HIR::ProcMacro", ptr %1885, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1884, ptr noundef nonnull align 8 dereferenceable(8) %1886)
          to label %1887 unwind label %1893

1887:                                             ; preds = %1882
  invoke void @_ZN3AST17PathBinding_Macro14make_ProcMacroENS0_14Data_ProcMacroE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %171, ptr noundef %172)
          to label %1888 unwind label %1897

1888:                                             ; preds = %1887
  %1889 = getelementptr inbounds %"struct.AST::PathBinding.62", ptr %157, i32 0, i32 1
  %1890 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1889, ptr noundef nonnull align 8 dereferenceable(24) %171)
          to label %1891 unwind label %1901

1891:                                             ; preds = %1888
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %171) #8
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %172) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %171) #8
  br label %1892

1892:                                             ; preds = %1891
  store i8 0, ptr %169, align 1, !tbaa !18
  br label %1873, !llvm.loop !94

1893:                                             ; preds = %1882
  %1894 = landingpad { ptr, i32 }
          cleanup
  %1895 = extractvalue { ptr, i32 } %1894, 0
  store ptr %1895, ptr %18, align 8
  %1896 = extractvalue { ptr, i32 } %1894, 1
  store i32 %1896, ptr %19, align 4
  br label %1906

1897:                                             ; preds = %1887
  %1898 = landingpad { ptr, i32 }
          cleanup
  %1899 = extractvalue { ptr, i32 } %1898, 0
  store ptr %1899, ptr %18, align 8
  %1900 = extractvalue { ptr, i32 } %1898, 1
  store i32 %1900, ptr %19, align 4
  br label %1905

1901:                                             ; preds = %1888
  %1902 = landingpad { ptr, i32 }
          cleanup
  %1903 = extractvalue { ptr, i32 } %1902, 0
  store ptr %1903, ptr %18, align 8
  %1904 = extractvalue { ptr, i32 } %1902, 1
  store i32 %1904, ptr %19, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %171) #8
  br label %1905

1905:                                             ; preds = %1901, %1897
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %172) #8
  br label %1906

1906:                                             ; preds = %1905, %1893
  call void @llvm.lifetime.end.p0(i64 24, ptr %171) #8
  br label %1907

1907:                                             ; preds = %1906, %1878
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #8
  br label %1959

1908:                                             ; preds = %1877
  br label %1909

1909:                                             ; preds = %1908
  store i8 0, ptr %169, align 1, !tbaa !18
  br label %1865, !llvm.loop !95

1910:                                             ; preds = %1868
  br label %1957

1911:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #8
  store i8 1, ptr %173, align 1, !tbaa !18
  br label %1912

1912:                                             ; preds = %1955, %1911
  %1913 = load i8, ptr %173, align 1, !tbaa !18, !range !20, !noundef !21
  %1914 = trunc i8 %1913 to i1
  br i1 %1914, label %1916, label %1915

1915:                                             ; preds = %1912
  store i32 149, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #8
  br label %1956

1916:                                             ; preds = %1912
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #8
  %1917 = load ptr, ptr %164, align 8, !tbaa !5
  %1918 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %1917)
          to label %1919 unwind label %1925

1919:                                             ; preds = %1916
  store ptr %1918, ptr %174, align 8, !tbaa !5
  br label %1920

1920:                                             ; preds = %1943, %1919
  %1921 = load ptr, ptr %174, align 8, !tbaa !5
  %1922 = load i8, ptr %173, align 1, !tbaa !18, !range !20, !noundef !21
  %1923 = trunc i8 %1922 to i1
  br i1 %1923, label %1929, label %1924

1924:                                             ; preds = %1920
  store i32 152, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #8
  br label %1954

1925:                                             ; preds = %1916
  %1926 = landingpad { ptr, i32 }
          cleanup
  %1927 = extractvalue { ptr, i32 } %1926, 0
  store ptr %1927, ptr %18, align 8
  %1928 = extractvalue { ptr, i32 } %1926, 1
  store i32 %1928, ptr %19, align 4
  br label %1953

1929:                                             ; preds = %1920
  call void @llvm.lifetime.start.p0(i64 24, ptr %175) #8
  %1930 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %176, i32 0, i32 0
  store ptr null, ptr %1930, align 8, !tbaa !86
  %1931 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %176, i32 0, i32 1
  %1932 = load ptr, ptr %174, align 8, !tbaa !5
  %1933 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1932)
          to label %1934 unwind label %1944

1934:                                             ; preds = %1929
  store ptr %1933, ptr %1931, align 8, !tbaa !88
  %1935 = getelementptr inbounds { ptr, ptr }, ptr %176, i32 0, i32 0
  %1936 = load ptr, ptr %1935, align 8
  %1937 = getelementptr inbounds { ptr, ptr }, ptr %176, i32 0, i32 1
  %1938 = load ptr, ptr %1937, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %175, ptr %1936, ptr %1938)
          to label %1939 unwind label %1944

1939:                                             ; preds = %1934
  %1940 = getelementptr inbounds %"struct.AST::PathBinding.62", ptr %157, i32 0, i32 1
  %1941 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1940, ptr noundef nonnull align 8 dereferenceable(24) %175)
          to label %1942 unwind label %1948

1942:                                             ; preds = %1939
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %175) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %175) #8
  br label %1943

1943:                                             ; preds = %1942
  store i8 0, ptr %173, align 1, !tbaa !18
  br label %1920, !llvm.loop !96

1944:                                             ; preds = %1934, %1929
  %1945 = landingpad { ptr, i32 }
          cleanup
  %1946 = extractvalue { ptr, i32 } %1945, 0
  store ptr %1946, ptr %18, align 8
  %1947 = extractvalue { ptr, i32 } %1945, 1
  store i32 %1947, ptr %19, align 4
  br label %1952

1948:                                             ; preds = %1939
  %1949 = landingpad { ptr, i32 }
          cleanup
  %1950 = extractvalue { ptr, i32 } %1949, 0
  store ptr %1950, ptr %18, align 8
  %1951 = extractvalue { ptr, i32 } %1949, 1
  store i32 %1951, ptr %19, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %175) #8
  br label %1952

1952:                                             ; preds = %1948, %1944
  call void @llvm.lifetime.end.p0(i64 24, ptr %175) #8
  br label %1953

1953:                                             ; preds = %1952, %1925
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #8
  br label %1959

1954:                                             ; preds = %1924
  br label %1955

1955:                                             ; preds = %1954
  store i8 0, ptr %173, align 1, !tbaa !18
  br label %1912, !llvm.loop !97

1956:                                             ; preds = %1915
  br label %1957

1957:                                             ; preds = %1956, %1910, %1863, %1815
  br label %1958

1958:                                             ; preds = %1957
  store i8 0, ptr %163, align 1, !tbaa !18
  br label %1808, !llvm.loop !98

1959:                                             ; preds = %1953, %1907, %1860, %1816
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #8
  br label %1978

1960:                                             ; preds = %1811
  br label %1961

1961:                                             ; preds = %1960
  store i8 0, ptr %163, align 1, !tbaa !18
  br label %1800, !llvm.loop !99

1962:                                             ; preds = %1803
  %1963 = load ptr, ptr %8, align 8, !tbaa !5
  %1964 = load ptr, ptr %10, align 8, !tbaa !5
  %1965 = load ptr, ptr %155, align 8, !tbaa !5
  %1966 = getelementptr inbounds %"struct.std::pair.566", ptr %1965, i32 0, i32 0
  %1967 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(240) %177, ptr noundef nonnull align 8 dereferenceable(56) %157)
          to label %1968 unwind label %1970

1968:                                             ; preds = %1962
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1963, ptr noundef nonnull align 8 dereferenceable(480) %1964, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %1966, ptr noundef nonnull align 8 dereferenceable(36) %1967, ptr noundef %177, i1 noundef zeroext false)
          to label %1969 unwind label %1974

1969:                                             ; preds = %1968
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %177) #8
  call void @_ZN3AST11PathBindingINS_17PathBinding_MacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %157) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %157) #8
  br label %1980

1970:                                             ; preds = %1962
  %1971 = landingpad { ptr, i32 }
          cleanup
  %1972 = extractvalue { ptr, i32 } %1971, 0
  store ptr %1972, ptr %18, align 8
  %1973 = extractvalue { ptr, i32 } %1971, 1
  store i32 %1973, ptr %19, align 4
  br label %1978

1974:                                             ; preds = %1968
  %1975 = landingpad { ptr, i32 }
          cleanup
  %1976 = extractvalue { ptr, i32 } %1975, 0
  store ptr %1976, ptr %18, align 8
  %1977 = extractvalue { ptr, i32 } %1975, 1
  store i32 %1977, ptr %19, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %177) #8
  br label %1978

1978:                                             ; preds = %1974, %1970, %1959, %1804
  call void @_ZN3AST11PathBindingINS_17PathBinding_MacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %157) #8
  br label %1979

1979:                                             ; preds = %1978, %1765
  call void @llvm.lifetime.end.p0(i64 56, ptr %157) #8
  br label %1983

1980:                                             ; preds = %1969, %1731
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  br label %1981

1981:                                             ; preds = %1980
  %1982 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %153) #8
  br label %1720

1983:                                             ; preds = %1979, %1761
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #8
  br label %1985

1984:                                             ; preds = %1722
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %15) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %15) #8
  ret void

1985:                                             ; preds = %1983, %1708, %1000
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %15) #8
  br label %1986

1986:                                             ; preds = %1985, %198
  call void @llvm.lifetime.end.p0(i64 40, ptr %15) #8
  br label %1987

1987:                                             ; preds = %1986
  %1988 = load ptr, ptr %18, align 8
  %1989 = load i32, ptr %19, align 4
  %1990 = insertvalue { ptr, i32 } poison, ptr %1988, 0
  %1991 = insertvalue { ptr, i32 } %1990, i32 %1989, 1
  resume { ptr, i32 } %1991

1992:                                             ; preds = %1703, %1423, %1288, %1207, %1072, %995, %602, %468, %257
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

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

; 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)) #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(408)) #3 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)) #3 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)) #0 align 2

; 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)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #0 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)) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR8TypeItem7is_EnumEv(ptr noundef nonnull align 8 dereferenceable(408)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8) #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408)) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 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)) #3 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)) #3 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)) #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408)) #3 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)) #3 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)) #3 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)) #3 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)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408)) #3 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)) #3 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)) #3 align 2

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

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

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

; 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)) #3 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR9ValueItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(368)) #3 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)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 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)) #3 align 2

declare noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 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) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368)) #3 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)) #3 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)) #3 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)) #3 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) #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)) #3 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)) #3 align 2

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

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

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

; 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)) #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56)) #3 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)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #0 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)) #3 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) #0 align 2

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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, !6, i64 0}
!10 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !6, i64 0, !11, i64 8}
!11 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!12 = !{!11, !6, i64 0}
!13 = !{!11, !6, i64 8}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = !{!19, !19, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = distinct !{!22, !17}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17}
!25 = distinct !{!25, !17}
!26 = !{!27, !6, i64 0}
!27 = !{!"_ZTSN3AST16PathBinding_Type10Data_TraitE", !6, i64 0, !6, i64 8}
!28 = !{!27, !6, i64 8}
!29 = distinct !{!29, !17}
!30 = distinct !{!30, !17}
!31 = !{!32, !6, i64 0}
!32 = !{!"_ZTSN3AST16PathBinding_Type11Data_StructE", !6, i64 0, !6, i64 8}
!33 = !{!32, !6, i64 8}
!34 = distinct !{!34, !17}
!35 = distinct !{!35, !17}
!36 = !{!37, !6, i64 0}
!37 = !{!"_ZTSN3AST16PathBinding_Type15Data_TraitAliasE", !6, i64 0, !6, i64 8}
!38 = !{!37, !6, i64 8}
!39 = distinct !{!39, !17}
!40 = distinct !{!40, !17}
!41 = !{!42, !6, i64 0}
!42 = !{!"_ZTSN3AST16PathBinding_Type10Data_UnionE", !6, i64 0, !6, i64 8}
!43 = !{!42, !6, i64 8}
!44 = distinct !{!44, !17}
!45 = distinct !{!45, !17}
!46 = !{!47, !6, i64 0}
!47 = !{!"_ZTSN3AST16PathBinding_Type9Data_EnumE", !6, i64 0, !6, i64 8}
!48 = !{!47, !6, i64 8}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = !{!52, !6, i64 0}
!52 = !{!"_ZTSN3AST16PathBinding_Type14Data_TypeAliasE", !6, i64 0}
!53 = distinct !{!53, !17}
!54 = distinct !{!54, !17}
!55 = distinct !{!55, !17}
!56 = distinct !{!56, !17}
!57 = distinct !{!57, !17}
!58 = distinct !{!58, !17}
!59 = !{!60, !60, i64 0}
!60 = !{!"long", !7, i64 0}
!61 = !{!62, !15, i64 8}
!62 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !15, i64 8, !6, i64 16}
!63 = distinct !{!63, !17}
!64 = distinct !{!64, !17}
!65 = distinct !{!65, !17}
!66 = !{!67, !6, i64 0}
!67 = !{!"_ZTSN3AST17PathBinding_Value11Data_StaticE", !6, i64 0, !6, i64 8}
!68 = !{!67, !6, i64 8}
!69 = distinct !{!69, !17}
!70 = distinct !{!70, !17}
!71 = distinct !{!71, !17}
!72 = distinct !{!72, !17}
!73 = !{!74, !6, i64 0}
!74 = !{!"_ZTSN3AST17PathBinding_Value11Data_StructE", !6, i64 0, !6, i64 8}
!75 = !{!74, !6, i64 8}
!76 = distinct !{!76, !17}
!77 = distinct !{!77, !17}
!78 = distinct !{!78, !17}
!79 = distinct !{!79, !17}
!80 = !{!81, !6, i64 0}
!81 = !{!"_ZTSN3AST17PathBinding_Value13Data_FunctionE", !6, i64 0}
!82 = distinct !{!82, !17}
!83 = distinct !{!83, !17}
!84 = distinct !{!84, !17}
!85 = distinct !{!85, !17}
!86 = !{!87, !6, i64 0}
!87 = !{!"_ZTSN3AST17PathBinding_Macro15Data_MacroRulesE", !6, i64 0, !6, i64 8}
!88 = !{!87, !6, i64 8}
!89 = distinct !{!89, !17}
!90 = distinct !{!90, !17}
!91 = !{!92, !6, i64 0}
!92 = !{!"_ZTSN3AST17PathBinding_Macro14Data_ProcMacroE", !6, i64 0, !93, i64 8}
!93 = !{!"_ZTS8RcString", !6, i64 0}
!94 = distinct !{!94, !17}
!95 = distinct !{!95, !17}
!96 = distinct !{!96, !17}
!97 = distinct !{!97, !17}
!98 = distinct !{!98, !17}
!99 = distinct !{!99, !17}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector" }
%class.RcString = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::PathBinding_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 }
%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.247 = type { ptr, ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base.300" }
%"struct.std::__detail::_Node_iterator_base.300" = type { ptr }
%"struct.AST::PathBinding.61" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.std::span" = type { ptr, i64 }
%struct.Span = type { ptr }
%class.anon.420 = type { 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.45", %"class.std::unique_ptr.53", %"class.std::vector.40" }
%"class.std::unique_ptr.45" = type { %"struct.std::__uniq_ptr_data.46" }
%"struct.std::__uniq_ptr_data.46" = type { %"class.std::__uniq_ptr_impl.47" }
%"class.std::__uniq_ptr_impl.47" = type { %"class.std::tuple.48" }
%"class.std::tuple.48" = type { %"struct.std::_Tuple_impl.49" }
%"struct.std::_Tuple_impl.49" = type { %"struct.std::_Head_base.52" }
%"struct.std::_Head_base.52" = type { ptr }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.61", %"struct.AST::PathBinding.62" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::PathBinding.62" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%class.anon.520 = type { ptr, ptr, ptr }
%class.anon.521 = type { ptr, ptr }
%"struct.std::__detail::_Node_const_iterator.522" = type { %"struct.std::__detail::_Node_iterator_base.523" }
%"struct.std::__detail::_Node_iterator_base.523" = type { ptr }
%class.anon.561 = type { ptr }
%class.anon.562 = type { ptr }
%class.anon.563 = type { ptr, ptr, ptr }
%"struct.std::__detail::_Node_const_iterator.564" = type { %"struct.std::__detail::_Node_iterator_base.565" }
%"struct.std::__detail::_Node_iterator_base.565" = type { ptr }
%"struct.AST::PathBinding_Macro::Data_ProcMacro" = type { ptr, %class.RcString }

@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZTIPKc = external constant ptr
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [24 x i8], align 1
@__func__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE = external hidden unnamed_addr constant [47 x i8], align 1
@__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE = external hidden unnamed_addr constant [191 x i8], align 1

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), i32 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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 #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0 align 2

; 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 #3 align 2

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #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 #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 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 #0 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 #0 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 #0 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 #0 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 #0 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 #0 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 #0 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 #0 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 #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 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 #0 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 #0 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 #0 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 #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(1112) %1, ptr noundef nonnull align 8 dereferenceable(480) %2, ptr noundef nonnull align 8 dereferenceable(216) %3, ptr nocapture noundef nonnull readnone align 8 dereferenceable(240) %4, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef %6) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %8 = alloca %class.TraceLog, align 8
  %9 = alloca %"class.std::function", align 8
  %10 = alloca %class.anon.247, align 8
  %11 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %12 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %13 = alloca %"struct.AST::PathBinding.61", align 8
  %14 = alloca %"class.std::vector", align 8
  %15 = alloca %"class.std::span", align 8
  %16 = alloca %struct.Span, align 8
  %17 = alloca %"class.std::function", align 8
  %18 = alloca %class.anon.420, align 8
  %19 = alloca %"class.std::span", align 8
  %20 = alloca %"class.AST::PathBinding_Type", align 8
  %21 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %22 = alloca %"class.AST::Path", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::span", align 8
  %25 = alloca %"class.std::span", align 8
  %26 = alloca %"class.std::span", align 8
  %27 = alloca %"class.AST::PathBinding_Type", align 8
  %28 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %29 = alloca %"class.AST::Path", align 8
  %30 = alloca %struct.Span, align 8
  %31 = alloca %"class.std::function", align 8
  %32 = alloca %class.anon.520, align 8
  %33 = alloca %"class.std::span", align 8
  %34 = alloca %"struct.AST::AbsolutePath", align 8
  %35 = alloca %class.RcString, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %struct.Span, align 8
  %38 = alloca %"class.std::function", align 8
  %39 = alloca %class.anon.521, align 8
  %40 = alloca %"class.AST::PathBinding_Type", align 8
  %41 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %42 = alloca %"class.AST::PathBinding_Type", align 8
  %43 = alloca %"class.AST::PathBinding_Type", align 8
  %44 = alloca %"class.AST::PathBinding_Type", align 8
  %45 = alloca %"class.AST::PathBinding_Type", align 8
  %46 = alloca %"class.AST::PathBinding_Type", align 8
  %47 = alloca %"class.AST::PathBinding_Type", align 8
  %48 = alloca %"class.AST::PathBinding_Type", align 8
  %49 = alloca %"class.AST::Path", align 8
  %50 = alloca %"struct.std::__detail::_Node_const_iterator.522", align 8
  %51 = alloca %"struct.std::__detail::_Node_const_iterator.522", align 8
  %52 = alloca %"struct.AST::PathBinding", align 8
  %53 = alloca %"class.std::vector", align 8
  %54 = alloca %"class.std::span", align 8
  %55 = alloca %struct.Span, align 8
  %56 = alloca %"class.std::function", align 8
  %57 = alloca %class.anon.561, align 8
  %58 = alloca i32, align 4
  %59 = alloca %"class.std::span", align 8
  %60 = alloca %"class.std::span", align 8
  %61 = alloca %"class.std::span", align 8
  %62 = alloca %"class.std::span", align 8
  %63 = alloca %struct.Span, align 8
  %64 = alloca %"class.std::function", align 8
  %65 = alloca %class.anon.562, align 8
  %66 = alloca %"class.AST::PathBinding_Value", align 8
  %67 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %68 = alloca %"class.AST::Path", align 8
  %69 = alloca %struct.Span, align 8
  %70 = alloca %"class.std::function", align 8
  %71 = alloca %class.anon.563, align 8
  %72 = alloca %"class.std::span", align 8
  %73 = alloca %"struct.AST::AbsolutePath", align 8
  %74 = alloca %class.RcString, align 8
  %75 = alloca %"class.AST::PathBinding_Value", align 8
  %76 = alloca %"class.AST::PathBinding_Value", align 8
  %77 = alloca %"class.AST::PathBinding_Value", align 8
  %78 = alloca %"class.AST::PathBinding_Value", align 8
  %79 = alloca %"class.AST::PathBinding_Value", align 8
  %80 = alloca %"class.AST::Path", align 8
  %81 = alloca %"struct.std::__detail::_Node_const_iterator.564", align 8
  %82 = alloca %"struct.std::__detail::_Node_const_iterator.564", align 8
  %83 = alloca %"struct.AST::PathBinding.62", align 8
  %84 = alloca %"class.std::vector", align 8
  %85 = alloca %"class.std::span", align 8
  %86 = alloca %"struct.AST::AbsolutePath", align 8
  %87 = alloca %class.RcString, align 8
  %88 = alloca %"class.AST::PathBinding_Macro", align 8
  %89 = alloca %"class.AST::PathBinding_Macro", align 8
  %90 = alloca %"struct.AST::PathBinding_Macro::Data_ProcMacro", align 8
  %91 = alloca %"class.AST::PathBinding_Macro", align 8
  %92 = alloca %"class.AST::Path", align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #8
  %93 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %94 = select i1 %93, ptr @__func__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #8
  store ptr %2, ptr %10, align 8, !tbaa !5
  %95 = getelementptr inbounds i8, ptr %10, i64 8
  store ptr %6, ptr %95, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(16) %10) #8
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %8, ptr noundef %94, ptr noundef nonnull %9)
          to label %96 unwind label %126

96:                                               ; preds = %7
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #8
  %97 = getelementptr inbounds i8, ptr %3, i64 80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %98 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %97) #8
  store ptr %98, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %99 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %97) #8
  store ptr %99, ptr %12, align 8
  %100 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br i1 %100, label %.lr.ph795, label %._crit_edge

.lr.ph795:                                        ; preds = %96
  %101 = getelementptr inbounds i8, ptr %15, i64 8
  %102 = getelementptr inbounds i8, ptr %13, i64 8
  %103 = getelementptr inbounds i8, ptr %1, i64 576
  %104 = getelementptr inbounds i8, ptr %19, i64 8
  %105 = getelementptr inbounds i8, ptr %24, i64 8
  %106 = getelementptr inbounds i8, ptr %25, i64 8
  %107 = getelementptr inbounds i8, ptr %26, i64 8
  %108 = getelementptr inbounds i8, ptr %33, i64 8
  %109 = getelementptr inbounds i8, ptr %13, i64 32
  %110 = getelementptr inbounds i8, ptr %41, i64 16
  %111 = getelementptr inbounds i8, ptr %21, i64 16
  br label %128

._crit_edge:                                      ; preds = %340, %96
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  %112 = getelementptr inbounds i8, ptr %3, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #8
  %113 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %112) #8
  store ptr %113, ptr %50, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #8
  %114 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %112) #8
  store ptr %114, ptr %51, align 8
  %115 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  br i1 %115, label %.lr.ph935, label %._crit_edge936

.lr.ph935:                                        ; preds = %._crit_edge
  %116 = getelementptr inbounds i8, ptr %54, i64 8
  %117 = getelementptr inbounds i8, ptr %52, i64 8
  %118 = getelementptr inbounds i8, ptr %1, i64 576
  %119 = getelementptr inbounds i8, ptr %59, i64 8
  %120 = getelementptr inbounds i8, ptr %60, i64 8
  %121 = getelementptr inbounds i8, ptr %61, i64 8
  %122 = getelementptr inbounds i8, ptr %72, i64 8
  %123 = getelementptr inbounds i8, ptr %52, i64 32
  %124 = getelementptr inbounds i8, ptr %62, i64 8
  %125 = getelementptr inbounds i8, ptr %67, i64 8
  br label %351

126:                                              ; preds = %7
  %127 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #8
  br label %637

128:                                              ; preds = %.lr.ph795, %340
  %129 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  %130 = getelementptr inbounds i8, ptr %129, i64 8
  %131 = call noundef nonnull align 8 dereferenceable(424) ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %130) #8
  %132 = call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %131)
  br i1 %132, label %133, label %340

133:                                              ; preds = %128
  %134 = getelementptr inbounds i8, ptr %131, i64 16
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #8
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %13)
          to label %135 unwind label %158

135:                                              ; preds = %133
  %136 = call noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %134)
  br i1 %136, label %137, label %286

137:                                              ; preds = %135
  %138 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %134)
  %139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %140 unwind label %.loopexit471

140:                                              ; preds = %137
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %139)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  %142 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %143 unwind label %162

143:                                              ; preds = %140
  %144 = extractvalue { ptr, i64 } %142, 0
  store ptr %144, ptr %15, align 8
  %145 = extractvalue { ptr, i64 } %142, 1
  store i64 %145, ptr %101, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %14, ptr noundef nonnull align 8 dereferenceable(16) %15)
          to label %146 unwind label %162

146:                                              ; preds = %143
  %147 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %102, ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #8
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %149 unwind label %.loopexit471

149:                                              ; preds = %146
  %150 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %103, ptr noundef nonnull align 8 dereferenceable(8) %148)
          to label %151 unwind label %.loopexit471

151:                                              ; preds = %149
  %152 = icmp eq i64 %150, 1
  br i1 %152, label %171, label %153

153:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %154 unwind label %164

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  store ptr %138, ptr %18, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull %17)
          to label %155 unwind label %166

155:                                              ; preds = %154
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  %156 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %156, ptr noundef nonnull @.str.5)
          to label %157 unwind label %169

157:                                              ; preds = %155
  invoke void @__cxa_throw(ptr nonnull %156, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %638 unwind label %.loopexit.split-lp472

158:                                              ; preds = %133
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %339

160:                                              ; preds = %.loopexit470
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %338

.loopexit471:                                     ; preds = %137, %146, %149
  %lpad.loopexit473 = landingpad { ptr, i32 }
          cleanup
  br label %338

.loopexit.split-lp472:                            ; preds = %157
  %lpad.loopexit.split-lp474 = landingpad { ptr, i32 }
          cleanup
  br label %338

162:                                              ; preds = %143, %140
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #8
  br label %338

164:                                              ; preds = %153
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %168

166:                                              ; preds = %154
  %167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br label %168

168:                                              ; preds = %166, %164
  %.pn370 = phi { ptr, i32 } [ %167, %166 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %338

169:                                              ; preds = %155
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %156) #8
  br label %338

171:                                              ; preds = %151
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %173 unwind label %190

173:                                              ; preds = %171
  %174 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %103, ptr noundef nonnull align 8 dereferenceable(8) %172)
          to label %175 unwind label %190

175:                                              ; preds = %173
  %176 = getelementptr inbounds i8, ptr %174, i64 48
  %177 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %176)
  %178 = getelementptr inbounds i8, ptr %177, i64 16
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #8
  %179 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %180 unwind label %192

180:                                              ; preds = %175
  %181 = extractvalue { ptr, i64 } %179, 0
  store ptr %181, ptr %19, align 8
  %182 = extractvalue { ptr, i64 } %179, 1
  store i64 %182, ptr %104, align 8
  %183 = call noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
  %184 = icmp eq i64 %183, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  br i1 %184, label %185, label %198

185:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, i8 0, i64 16, i1 false)
  store ptr %178, ptr %111, align 8, !tbaa !9
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %20, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %21)
          to label %186 unwind label %194

186:                                              ; preds = %185
  %187 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %20)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %22, ptr noundef nonnull align 8 dereferenceable(64) %13)
          to label %188 unwind label %190

188:                                              ; preds = %186
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(480) %2, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef nonnull %22, i1 noundef zeroext false)
          to label %189 unwind label %196

189:                                              ; preds = %188
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %22) #8
  br label %.thread399

190:                                              ; preds = %186, %173, %171
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %338

192:                                              ; preds = %175
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #8
  br label %338

194:                                              ; preds = %185
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  br label %338

196:                                              ; preds = %188
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %22) #8
  br label %338

198:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #8
  br label %199

199:                                              ; preds = %267, %198
  %200 = phi i32 [ 0, %198 ], [ %271, %267 ]
  %.0294 = phi ptr [ %178, %198 ], [ %270, %267 ]
  store i32 %200, ptr %23, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #8
  %201 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %202 unwind label %209

202:                                              ; preds = %199
  %203 = zext i32 %200 to i64
  %204 = extractvalue { ptr, i64 } %201, 0
  store ptr %204, ptr %24, align 8
  %205 = extractvalue { ptr, i64 } %201, 1
  store i64 %205, ptr %105, align 8
  %206 = call noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %24)
  %207 = add i64 %206, -1
  %208 = icmp ugt i64 %207, %203
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  br i1 %208, label %211, label %273

209:                                              ; preds = %199
  %210 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  br label %272

211:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #8
  %212 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %213 unwind label %237

213:                                              ; preds = %211
  %214 = getelementptr inbounds i8, ptr %.0294, i64 80
  %215 = extractvalue { ptr, i64 } %212, 0
  store ptr %215, ptr %25, align 8
  %216 = extractvalue { ptr, i64 } %212, 1
  store i64 %216, ptr %106, align 8
  %217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringEixEm(ptr noundef nonnull align 8 dereferenceable(16) %25, i64 noundef %203)
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %214, ptr noundef nonnull align 8 dereferenceable(8) %217)
          to label %219 unwind label %237

219:                                              ; preds = %213
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #8
  %220 = load i32, ptr %23, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #8
  %221 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %222 unwind label %239

222:                                              ; preds = %219
  %223 = zext i32 %220 to i64
  %224 = extractvalue { ptr, i64 } %221, 0
  store ptr %224, ptr %26, align 8
  %225 = extractvalue { ptr, i64 } %221, 1
  store i64 %225, ptr %107, align 8
  %226 = call noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %26)
  %227 = add i64 %226, -2
  %228 = icmp eq i64 %227, %223
  br i1 %228, label %229, label %.critedge

229:                                              ; preds = %222
  %230 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %218) #8
  %231 = getelementptr inbounds i8, ptr %230, i64 16
  %232 = call noundef zeroext i1 @_ZNK3HIR8TypeItem7is_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %231)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  br i1 %232, label %233, label %245

233:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %28, i8 0, i64 24, i1 false)
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %27, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %28)
          to label %234 unwind label %241

234:                                              ; preds = %233
  %235 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %27)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %29, ptr noundef nonnull align 8 dereferenceable(64) %13)
          to label %236 unwind label %.loopexit476

236:                                              ; preds = %234
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(480) %2, ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef nonnull %29, i1 noundef zeroext false)
          to label %.thread396 unwind label %243

237:                                              ; preds = %213, %211
  %238 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #8
  br label %272

239:                                              ; preds = %219
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  br label %272

241:                                              ; preds = %233
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %272

.loopexit476:                                     ; preds = %234
  %lpad.loopexit478 = landingpad { ptr, i32 }
          cleanup
  br label %272

.loopexit.split-lp477:                            ; preds = %256
  %lpad.loopexit.split-lp479 = landingpad { ptr, i32 }
          cleanup
  br label %272

243:                                              ; preds = %236
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %29) #8
  br label %272

.critedge:                                        ; preds = %222
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  br label %245

245:                                              ; preds = %229, %.critedge
  %246 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %218) #8
  %247 = getelementptr inbounds i8, ptr %246, i64 16
  %248 = call noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %247)
  br i1 %248, label %267, label %249

249:                                              ; preds = %245
  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) %0)
          to label %250 unwind label %257

250:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #8
  store ptr %138, ptr %32, align 8, !tbaa !5
  %251 = getelementptr inbounds i8, ptr %32, i64 8
  store ptr %23, ptr %251, align 8, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %32, i64 16
  store ptr %218, ptr %252, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %253 unwind label %259

253:                                              ; preds = %250
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull %31)
          to label %254 unwind label %261

254:                                              ; preds = %253
  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
  %255 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %255, ptr noundef nonnull @.str.5)
          to label %256 unwind label %265

256:                                              ; preds = %254
  invoke void @__cxa_throw(ptr nonnull %255, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %638 unwind label %.loopexit.split-lp477

257:                                              ; preds = %249
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %264

259:                                              ; preds = %250
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %263

261:                                              ; preds = %253
  %262 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %263

263:                                              ; preds = %261, %259
  %.pn373 = phi { ptr, i32 } [ %262, %261 ], [ %260, %259 ]
  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 %264

264:                                              ; preds = %263, %257
  %.pn373.pn = phi { ptr, i32 } [ %.pn373, %263 ], [ %258, %257 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  br label %272

265:                                              ; preds = %254
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %255) #8
  br label %272

.thread396:                                       ; preds = %236
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  br label %.thread399

267:                                              ; preds = %245
  %268 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %218) #8
  %269 = getelementptr inbounds i8, ptr %268, i64 16
  %270 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %269)
  %271 = add i32 %220, 1
  br label %199, !llvm.loop !13

272:                                              ; preds = %.loopexit476, %.loopexit.split-lp477, %237, %239, %241, %243, %264, %265, %209
  %.pn376.pn = phi { ptr, i32 } [ %210, %209 ], [ %244, %243 ], [ %242, %241 ], [ %266, %265 ], [ %.pn373.pn, %264 ], [ %240, %239 ], [ %238, %237 ], [ %lpad.loopexit478, %.loopexit476 ], [ %lpad.loopexit.split-lp479, %.loopexit.split-lp477 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  br label %338

273:                                              ; preds = %202
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #8
  %274 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %275 unwind label %284

275:                                              ; preds = %273
  %276 = getelementptr inbounds i8, ptr %.0294, i64 80
  %277 = extractvalue { ptr, i64 } %274, 0
  store ptr %277, ptr %33, align 8
  %278 = extractvalue { ptr, i64 } %274, 1
  store i64 %278, ptr %108, align 8
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %276, ptr noundef nonnull align 8 dereferenceable(8) %279)
          to label %281 unwind label %284

281:                                              ; preds = %275
  %282 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %280) #8
  %283 = getelementptr inbounds i8, ptr %282, i64 16
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #8
  br label %.lr.ph

284:                                              ; preds = %275, %273
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #8
  br label %338

286:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %129)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %35)
          to label %287 unwind label %289

287:                                              ; preds = %286
  %288 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %34)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %.lr.ph

289:                                              ; preds = %286
  %290 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  br label %338

.loopexit470:                                     ; preds = %.lr.ph, %..loopexit445_crit_edge, %..loopexit446_crit_edge, %..loopexit447_crit_edge, %..loopexit448_crit_edge, %..loopexit449_crit_edge, %..loopexit450_crit_edge, %..loopexit451_crit_edge, %..loopexit452_crit_edge
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %49, ptr noundef nonnull align 8 dereferenceable(64) %13)
          to label %334 unwind label %160

.lr.ph:                                           ; preds = %287, %281
  %.1291 = phi ptr [ %283, %281 ], [ %134, %287 ]
  %291 = call noundef i32 @_ZNK3HIR8TypeItem3tagEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  switch i32 %291, label %.loopexit470 [
    i32 0, label %300
    i32 1, label %301
    i32 2, label %.preheader453
    i32 9, label %.preheader455
    i32 7, label %.preheader457
    i32 4, label %.preheader459
    i32 8, label %.preheader461
    i32 6, label %.preheader463
    i32 3, label %.preheader465
    i32 5, label %.preheader467
  ]

.preheader467:                                    ; preds = %.lr.ph
  %292 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK3HIR8TypeItem13as_ExternTypeEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %48, ptr null)
          to label %..loopexit452_crit_edge unwind label %.split.split

.preheader465:                                    ; preds = %.lr.ph
  %293 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK3HIR8TypeItem12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %47, ptr null)
          to label %..loopexit451_crit_edge unwind label %.split560.split

.preheader463:                                    ; preds = %.lr.ph
  %294 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZNK3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %46, ptr null, ptr null)
          to label %..loopexit450_crit_edge unwind label %.split585.split

.preheader461:                                    ; preds = %.lr.ph
  %295 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR8TypeItem8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #8
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %45, ptr null, ptr nonnull %295)
          to label %..loopexit449_crit_edge unwind label %.split612.split

.preheader459:                                    ; preds = %.lr.ph
  %296 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNK3HIR8TypeItem13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %44, ptr null, ptr nonnull %296)
          to label %..loopexit448_crit_edge unwind label %.split643.split

.preheader457:                                    ; preds = %.lr.ph
  %297 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #8
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %43, ptr null, ptr nonnull %297)
          to label %..loopexit447_crit_edge unwind label %.split676.split

.preheader455:                                    ; preds = %.lr.ph
  %298 = call noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR8TypeItem8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %42, ptr null, ptr nonnull %298)
          to label %..loopexit446_crit_edge unwind label %.split711.split

.preheader453:                                    ; preds = %.lr.ph
  %299 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %41, i8 0, i64 16, i1 false)
  store ptr %299, ptr %110, align 8, !tbaa !9
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %40, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %41)
          to label %..loopexit445_crit_edge unwind label %.split748.split

300:                                              ; preds = %.lr.ph
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 379, ptr noundef nonnull @__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE) #10
  unreachable

301:                                              ; preds = %.lr.ph
  %302 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR8TypeItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(408) %.1291)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  store ptr @__func__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %303 unwind label %308

303:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #8
  store ptr %36, ptr %39, align 8, !tbaa !5
  %304 = getelementptr inbounds i8, ptr %39, i64 8
  store ptr %302, ptr %304, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull %38)
          to label %305 unwind label %310

305:                                              ; preds = %303
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  %306 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %306, ptr noundef nonnull @.str.27)
          to label %307 unwind label %313

307:                                              ; preds = %305
  invoke void @__cxa_throw(ptr nonnull %306, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %638 unwind label %315

308:                                              ; preds = %301
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %312

310:                                              ; preds = %303
  %311 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  br label %312

312:                                              ; preds = %310, %308
  %.pn383 = phi { ptr, i32 } [ %311, %310 ], [ %309, %308 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  br label %317

313:                                              ; preds = %305
  %314 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %306) #8
  br label %317

315:                                              ; preds = %307
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %317

317:                                              ; preds = %315, %313, %312
  %.pn385 = phi { ptr, i32 } [ %316, %315 ], [ %314, %313 ], [ %.pn383, %312 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  br label %338

..loopexit445_crit_edge:                          ; preds = %.preheader453
  %318 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %40)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %.loopexit470

.split748.split:                                  ; preds = %.preheader453
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %338

..loopexit446_crit_edge:                          ; preds = %.preheader455
  %320 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %42)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  br label %.loopexit470

.split711.split:                                  ; preds = %.preheader455
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  br label %338

..loopexit447_crit_edge:                          ; preds = %.preheader457
  %322 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %43)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  br label %.loopexit470

.split676.split:                                  ; preds = %.preheader457
  %323 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  br label %338

..loopexit448_crit_edge:                          ; preds = %.preheader459
  %324 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %44)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %.loopexit470

.split643.split:                                  ; preds = %.preheader459
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %338

..loopexit449_crit_edge:                          ; preds = %.preheader461
  %326 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %45)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  br label %.loopexit470

.split612.split:                                  ; preds = %.preheader461
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  br label %338

..loopexit450_crit_edge:                          ; preds = %.preheader463
  %328 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %46)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %.loopexit470

.split585.split:                                  ; preds = %.preheader463
  %329 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %338

..loopexit451_crit_edge:                          ; preds = %.preheader465
  %330 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %47)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  br label %.loopexit470

.split560.split:                                  ; preds = %.preheader465
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  br label %338

..loopexit452_crit_edge:                          ; preds = %.preheader467
  %332 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %48)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  br label %.loopexit470

.split.split:                                     ; preds = %.preheader467
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  br label %338

334:                                              ; preds = %.loopexit470
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(480) %2, ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef nonnull %49, i1 noundef zeroext false)
          to label %335 unwind label %336

335:                                              ; preds = %334
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %49) #8
  br label %.thread399

.thread399:                                       ; preds = %.thread396, %189, %335
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %13) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #8
  br label %340

336:                                              ; preds = %334
  %337 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %49) #8
  br label %338

338:                                              ; preds = %.loopexit471, %.loopexit.split-lp472, %317, %.split748.split, %.split711.split, %.split676.split, %.split643.split, %.split612.split, %.split585.split, %.split560.split, %.split.split, %162, %168, %169, %284, %272, %196, %194, %192, %190, %336, %289, %160
  %.pn387.pn = phi { ptr, i32 } [ %337, %336 ], [ %161, %160 ], [ %290, %289 ], [ %170, %169 ], [ %.pn370, %168 ], [ %163, %162 ], [ %197, %196 ], [ %191, %190 ], [ %195, %194 ], [ %285, %284 ], [ %.pn376.pn, %272 ], [ %193, %192 ], [ %333, %.split.split ], [ %331, %.split560.split ], [ %329, %.split585.split ], [ %327, %.split612.split ], [ %325, %.split643.split ], [ %323, %.split676.split ], [ %321, %.split711.split ], [ %319, %.split748.split ], [ %.pn385, %317 ], [ %lpad.loopexit473, %.loopexit471 ], [ %lpad.loopexit.split-lp474, %.loopexit.split-lp472 ]
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %13) #8
  br label %339

339:                                              ; preds = %338, %158
  %.pn387.pn.pn = phi { ptr, i32 } [ %.pn387.pn, %338 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  br label %636

340:                                              ; preds = %.thread399, %128
  %341 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  %342 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_8TypeItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br i1 %342, label %128, label %._crit_edge

._crit_edge936:                                   ; preds = %571, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #8
  %343 = getelementptr inbounds i8, ptr %3, i64 136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #8
  %344 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %343) #8
  store ptr %344, ptr %81, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #8
  %345 = call ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %343) #8
  store ptr %345, ptr %82, align 8
  %346 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  br i1 %346, label %.lr.ph1178, label %._crit_edge1179

.lr.ph1178:                                       ; preds = %._crit_edge936
  %347 = getelementptr inbounds i8, ptr %85, i64 8
  %348 = getelementptr inbounds i8, ptr %83, i64 8
  %349 = getelementptr inbounds i8, ptr %83, i64 32
  %350 = getelementptr inbounds i8, ptr %90, i64 8
  br label %574

351:                                              ; preds = %.lr.ph935, %571
  %352 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  %353 = getelementptr inbounds i8, ptr %352, i64 8
  %354 = call noundef nonnull align 8 dereferenceable(384) ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %353) #8
  %355 = call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %354)
  br i1 %355, label %356, label %571

356:                                              ; preds = %351
  %357 = getelementptr inbounds i8, ptr %354, i64 16
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %52) #8
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %52)
          to label %358 unwind label %381

358:                                              ; preds = %356
  %359 = call noundef zeroext i1 @_ZNK3HIR9ValueItem9is_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %357)
  br i1 %359, label %360, label %519

360:                                              ; preds = %358
  %361 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %357)
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %363 unwind label %.loopexit439

363:                                              ; preds = %360
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %362)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #8
  %365 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %366 unwind label %385

366:                                              ; preds = %363
  %367 = extractvalue { ptr, i64 } %365, 0
  store ptr %367, ptr %54, align 8
  %368 = extractvalue { ptr, i64 } %365, 1
  store i64 %368, ptr %116, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %53, ptr noundef nonnull align 8 dereferenceable(16) %54)
          to label %369 unwind label %385

369:                                              ; preds = %366
  %370 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %117, ptr noundef nonnull align 8 dereferenceable(24) %53) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #8
  %371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %372 unwind label %.loopexit439

372:                                              ; preds = %369
  %373 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %118, ptr noundef nonnull align 8 dereferenceable(8) %371)
          to label %374 unwind label %.loopexit439

374:                                              ; preds = %372
  %375 = icmp eq i64 %373, 1
  br i1 %375, label %394, label %376

376:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %377 unwind label %387

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #8
  store ptr %361, ptr %57, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull %56)
          to label %378 unwind label %389

378:                                              ; preds = %377
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  %379 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %379, ptr noundef nonnull @.str.5)
          to label %380 unwind label %392

380:                                              ; preds = %378
  invoke void @__cxa_throw(ptr nonnull %379, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %638 unwind label %.loopexit.split-lp

381:                                              ; preds = %356
  %382 = landingpad { ptr, i32 }
          cleanup
  br label %570

383:                                              ; preds = %.loopexit438
  %384 = landingpad { ptr, i32 }
          cleanup
  br label %569

.loopexit439:                                     ; preds = %360, %369, %372
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %569

.loopexit.split-lp:                               ; preds = %380
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %569

385:                                              ; preds = %366, %363
  %386 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #8
  br label %569

387:                                              ; preds = %376
  %388 = landingpad { ptr, i32 }
          cleanup
  br label %391

389:                                              ; preds = %377
  %390 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %391

391:                                              ; preds = %389, %387
  %.pn350 = phi { ptr, i32 } [ %390, %389 ], [ %388, %387 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #8
  br label %569

392:                                              ; preds = %378
  %393 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %379) #8
  br label %569

394:                                              ; preds = %374
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %396 unwind label %412

396:                                              ; preds = %394
  %397 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %118, ptr noundef nonnull align 8 dereferenceable(8) %395)
          to label %398 unwind label %412

398:                                              ; preds = %396
  %399 = getelementptr inbounds i8, ptr %397, i64 48
  %400 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %399)
  %401 = getelementptr inbounds i8, ptr %400, i64 16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #8
  br label %402

402:                                              ; preds = %500, %398
  %403 = phi i32 [ 0, %398 ], [ %504, %500 ]
  %.0324 = phi ptr [ %401, %398 ], [ %503, %500 ]
  store i32 %403, ptr %58, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %59) #8
  %404 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %405 unwind label %414

405:                                              ; preds = %402
  %406 = zext i32 %403 to i64
  %407 = extractvalue { ptr, i64 } %404, 0
  store ptr %407, ptr %59, align 8
  %408 = extractvalue { ptr, i64 } %404, 1
  store i64 %408, ptr %119, align 8
  %409 = call noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %59)
  %410 = add i64 %409, -1
  %411 = icmp ugt i64 %410, %406
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #8
  br i1 %411, label %416, label %506

412:                                              ; preds = %396, %394
  %413 = landingpad { ptr, i32 }
          cleanup
  br label %569

414:                                              ; preds = %402
  %415 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #8
  br label %505

416:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %60) #8
  %417 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %418 unwind label %454

418:                                              ; preds = %416
  %419 = getelementptr inbounds i8, ptr %.0324, i64 80
  %420 = extractvalue { ptr, i64 } %417, 0
  store ptr %420, ptr %60, align 8
  %421 = extractvalue { ptr, i64 } %417, 1
  store i64 %421, ptr %120, align 8
  %422 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringEixEm(ptr noundef nonnull align 8 dereferenceable(16) %60, i64 noundef %406)
  %423 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %419, ptr noundef nonnull align 8 dereferenceable(8) %422)
          to label %424 unwind label %454

424:                                              ; preds = %418
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #8
  %425 = load i32, ptr %58, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #8
  %426 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %427 unwind label %456

427:                                              ; preds = %424
  %428 = zext i32 %425 to i64
  %429 = extractvalue { ptr, i64 } %426, 0
  store ptr %429, ptr %61, align 8
  %430 = extractvalue { ptr, i64 } %426, 1
  store i64 %430, ptr %121, align 8
  %431 = call noundef i64 @_ZNKSt4spanIK8RcStringE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %61)
  %432 = add i64 %431, -2
  %433 = icmp eq i64 %432, %428
  br i1 %433, label %434, label %.critedge9

434:                                              ; preds = %427
  %435 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %423) #8
  %436 = getelementptr inbounds i8, ptr %435, i64 16
  %437 = call noundef zeroext i1 @_ZNK3HIR8TypeItem7is_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %436)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  br i1 %437, label %438, label %476

438:                                              ; preds = %434
  %439 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %423) #8
  %440 = getelementptr inbounds i8, ptr %439, i64 16
  %441 = call noundef nonnull align 8 dereferenceable(200) ptr @_ZN3HIR8TypeItem7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(408) %440)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %62) #8
  %442 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %443 unwind label %458

443:                                              ; preds = %438
  %444 = extractvalue { ptr, i64 } %442, 0
  store ptr %444, ptr %62, align 8
  %445 = extractvalue { ptr, i64 } %442, 1
  store i64 %445, ptr %124, align 8
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
  %447 = invoke noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200) %441, ptr noundef nonnull align 8 dereferenceable(8) %446)
          to label %448 unwind label %458

448:                                              ; preds = %443
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #8
  %.not355 = icmp eq i64 %447, -1
  br i1 %.not355, label %449, label %467

449:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %450 unwind label %460

450:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #8
  store ptr %361, ptr %65, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull %64)
          to label %451 unwind label %462

451:                                              ; preds = %450
  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 @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  %452 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %452, ptr noundef nonnull @.str.5)
          to label %453 unwind label %465

453:                                              ; preds = %451
  invoke void @__cxa_throw(ptr nonnull %452, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %638 unwind label %.loopexit.split-lp441

454:                                              ; preds = %418, %416
  %455 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #8
  br label %505

456:                                              ; preds = %424
  %457 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  br label %505

.loopexit440:                                     ; preds = %469
  %lpad.loopexit442 = landingpad { ptr, i32 }
          cleanup
  br label %505

.loopexit.split-lp441:                            ; preds = %453
  %lpad.loopexit.split-lp443 = landingpad { ptr, i32 }
          cleanup
  br label %505

458:                                              ; preds = %443, %438
  %459 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #8
  br label %505

460:                                              ; preds = %449
  %461 = landingpad { ptr, i32 }
          cleanup
  br label %464

462:                                              ; preds = %450
  %463 = landingpad { ptr, i32 }
          cleanup
  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 @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br label %464

464:                                              ; preds = %462, %460
  %.pn356 = phi { ptr, i32 } [ %463, %462 ], [ %461, %460 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #8
  br label %505

465:                                              ; preds = %451
  %466 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %452) #8
  br label %505

467:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %67, i8 0, i64 24, i1 false)
  %468 = trunc i64 %447 to i32
  store i32 %468, ptr %125, align 8, !tbaa !15
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %66, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %67)
          to label %469 unwind label %472

469:                                              ; preds = %467
  %470 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %66)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %68, ptr noundef nonnull align 8 dereferenceable(64) %52)
          to label %471 unwind label %.loopexit440

471:                                              ; preds = %469
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(480) %2, ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef nonnull %68, i1 noundef zeroext false)
          to label %.thread410 unwind label %474

472:                                              ; preds = %467
  %473 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  br label %505

474:                                              ; preds = %471
  %475 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %68) #8
  br label %505

.critedge9:                                       ; preds = %427
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  br label %476

476:                                              ; preds = %434, %.critedge9
  %477 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %423) #8
  %478 = getelementptr inbounds i8, ptr %477, i64 16
  %479 = call noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %478)
  br i1 %479, label %500, label %480

480:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %0)
          to label %481 unwind label %490

481:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %71) #8
  store ptr %361, ptr %71, align 8, !tbaa !5
  %482 = getelementptr inbounds i8, ptr %71, i64 8
  store ptr %58, ptr %482, align 8, !tbaa !5
  %483 = getelementptr inbounds i8, ptr %71, i64 16
  store ptr %423, ptr %483, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %484 unwind label %492

484:                                              ; preds = %481
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull %70)
          to label %485 unwind label %494

485:                                              ; preds = %484
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #8
  %486 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %486, ptr noundef nonnull @.str.5)
          to label %487 unwind label %498

487:                                              ; preds = %485
  invoke void @__cxa_throw(ptr nonnull %486, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %638 unwind label %488

488:                                              ; preds = %487
  %489 = landingpad { ptr, i32 }
          cleanup
  br label %505

490:                                              ; preds = %480
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %497

492:                                              ; preds = %481
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %496

494:                                              ; preds = %484
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %496

496:                                              ; preds = %494, %492
  %.pn352 = phi { ptr, i32 } [ %495, %494 ], [ %493, %492 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %497

497:                                              ; preds = %496, %490
  %.pn352.pn = phi { ptr, i32 } [ %.pn352, %496 ], [ %491, %490 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #8
  br label %505

498:                                              ; preds = %485
  %499 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %486) #8
  br label %505

.thread410:                                       ; preds = %471
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %68) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #8
  br label %566

500:                                              ; preds = %476
  %501 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %423) #8
  %502 = getelementptr inbounds i8, ptr %501, i64 16
  %503 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408) %502)
  %504 = add i32 %425, 1
  br label %402, !llvm.loop !17

505:                                              ; preds = %.loopexit440, %.loopexit.split-lp441, %454, %456, %488, %497, %498, %474, %472, %465, %464, %458, %414
  %.pn358.pn.pn = phi { ptr, i32 } [ %415, %414 ], [ %489, %488 ], [ %499, %498 ], [ %.pn352.pn, %497 ], [ %457, %456 ], [ %455, %454 ], [ %475, %474 ], [ %473, %472 ], [ %466, %465 ], [ %.pn356, %464 ], [ %459, %458 ], [ %lpad.loopexit442, %.loopexit440 ], [ %lpad.loopexit.split-lp443, %.loopexit.split-lp441 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #8
  br label %569

506:                                              ; preds = %405
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #8
  %507 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %361)
          to label %508 unwind label %517

508:                                              ; preds = %506
  %509 = getelementptr inbounds i8, ptr %.0324, i64 24
  %510 = extractvalue { ptr, i64 } %507, 0
  store ptr %510, ptr %72, align 8
  %511 = extractvalue { ptr, i64 } %507, 1
  store i64 %511, ptr %122, align 8
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %72)
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56) %509, ptr noundef nonnull align 8 dereferenceable(8) %512)
          to label %514 unwind label %517

514:                                              ; preds = %508
  %515 = call noundef ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9ValueItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %513) #8
  %516 = getelementptr inbounds i8, ptr %515, i64 16
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  br label %.lr.ph931

517:                                              ; preds = %508, %506
  %518 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  br label %569

519:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %352)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %74)
          to label %520 unwind label %522

520:                                              ; preds = %519
  %521 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %73)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #8
  br label %.lr.ph931

522:                                              ; preds = %519
  %523 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #8
  br label %569

.loopexit438:                                     ; preds = %.lr.ph931, %..loopexit422_crit_edge, %..loopexit423_crit_edge, %..loopexit424_crit_edge, %..loopexit425_crit_edge, %..loopexit426_crit_edge
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %80, ptr noundef nonnull align 8 dereferenceable(64) %52)
          to label %564 unwind label %383

.lr.ph931:                                        ; preds = %520, %514
  %.1323 = phi ptr [ %516, %514 ], [ %357, %520 ]
  %524 = call noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368) %.1323)
  switch i32 %524, label %.loopexit438 [
    i32 0, label %532
    i32 1, label %533
    i32 2, label %.preheader427
    i32 3, label %.preheader429
    i32 4, label %.preheader431
    i32 6, label %.preheader433
    i32 5, label %.preheader435
  ]

.preheader435:                                    ; preds = %.lr.ph931
  %525 = call noundef nonnull align 8 dereferenceable(352) ptr @_ZNK3HIR9ValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %.1323)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #8
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %79, ptr null)
          to label %..loopexit426_crit_edge unwind label %.split799.split

.preheader433:                                    ; preds = %.lr.ph931
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem20as_StructConstructorEv(ptr noundef nonnull align 8 dereferenceable(368) %.1323)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #8
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %526)
          to label %552 unwind label %.split818.split

.preheader431:                                    ; preds = %.lr.ph931
  %528 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9ValueItem17as_StructConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %.1323)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #8
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %528)
          to label %542 unwind label %.split847.split

.preheader429:                                    ; preds = %.lr.ph931
  %530 = call noundef nonnull align 8 dereferenceable(360) ptr @_ZNK3HIR9ValueItem9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(368) %.1323)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %76, ptr null, ptr null)
          to label %..loopexit423_crit_edge unwind label %.split878.split

.preheader427:                                    ; preds = %.lr.ph931
  %531 = call noundef nonnull align 8 dereferenceable(280) ptr @_ZNK3HIR9ValueItem11as_ConstantEv(ptr noundef nonnull align 8 dereferenceable(368) %.1323)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %75, ptr null, ptr null)
          to label %..loopexit422_crit_edge unwind label %.split905.split

532:                                              ; preds = %.lr.ph931
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 446, ptr noundef nonnull @__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE) #10
  unreachable

533:                                              ; preds = %.lr.ph931
  %534 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3HIR9ValueItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(368) %.1323)
  %535 = call ptr @__cxa_allocate_exception(i64 8) #8
  store ptr @.str.4, ptr %535, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr nonnull %535, ptr nonnull @_ZTIPKc, ptr null) #9
          to label %638 unwind label %536

536:                                              ; preds = %533
  %537 = landingpad { ptr, i32 }
          cleanup
  br label %569

..loopexit422_crit_edge:                          ; preds = %.preheader427
  %538 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %75)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  br label %.loopexit438

.split905.split:                                  ; preds = %.preheader427
  %539 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #8
  br label %569

..loopexit423_crit_edge:                          ; preds = %.preheader429
  %540 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %76)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  br label %.loopexit438

.split878.split:                                  ; preds = %.preheader429
  %541 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  br label %569

542:                                              ; preds = %.preheader431
  %543 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %118, ptr noundef nonnull align 8 dereferenceable(8) %529)
          to label %544 unwind label %.split847.split

544:                                              ; preds = %542
  %545 = getelementptr inbounds i8, ptr %543, i64 48
  %546 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %545)
  %547 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %546, ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %528, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %548 unwind label %.split847.split

548:                                              ; preds = %544
  %549 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %547)
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %77, ptr null, ptr nonnull %549)
          to label %..loopexit424_crit_edge unwind label %.split847.split

..loopexit424_crit_edge:                          ; preds = %548
  %550 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %77)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  br label %.loopexit438

.split847.split:                                  ; preds = %548, %544, %542, %.preheader431
  %551 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  br label %569

552:                                              ; preds = %.preheader433
  %553 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %118, ptr noundef nonnull align 8 dereferenceable(8) %527)
          to label %554 unwind label %.split818.split

554:                                              ; preds = %552
  %555 = getelementptr inbounds i8, ptr %553, i64 48
  %556 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %555)
  %557 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZNK3HIR5Crate20get_typeitem_by_pathERK4SpanRKNS_10SimplePathEbb(ptr noundef nonnull align 8 dereferenceable(944) %556, ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(8) %526, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %558 unwind label %.split818.split

558:                                              ; preds = %554
  %559 = call noundef nonnull align 8 dereferenceable(252) ptr @_ZNK3HIR8TypeItem9as_StructEv(ptr noundef nonnull align 8 dereferenceable(408) %557)
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %78, ptr null, ptr nonnull %559)
          to label %..loopexit425_crit_edge unwind label %.split818.split

..loopexit425_crit_edge:                          ; preds = %558
  %560 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %78)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #8
  br label %.loopexit438

.split818.split:                                  ; preds = %558, %554, %552, %.preheader433
  %561 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #8
  br label %569

..loopexit426_crit_edge:                          ; preds = %.preheader435
  %562 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %79)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  br label %.loopexit438

.split799.split:                                  ; preds = %.preheader435
  %563 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  br label %569

564:                                              ; preds = %.loopexit438
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(480) %2, ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef nonnull %80, i1 noundef zeroext false)
          to label %565 unwind label %567

565:                                              ; preds = %564
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %80) #8
  br label %566

566:                                              ; preds = %.thread410, %565
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %52) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %52) #8
  br label %571

567:                                              ; preds = %564
  %568 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %80) #8
  br label %569

569:                                              ; preds = %.loopexit439, %.loopexit.split-lp, %536, %.split905.split, %.split878.split, %.split847.split, %.split818.split, %.split799.split, %385, %391, %392, %517, %505, %412, %567, %522, %383
  %.pn366.pn = phi { ptr, i32 } [ %568, %567 ], [ %384, %383 ], [ %523, %522 ], [ %393, %392 ], [ %.pn350, %391 ], [ %386, %385 ], [ %518, %517 ], [ %.pn358.pn.pn, %505 ], [ %413, %412 ], [ %563, %.split799.split ], [ %561, %.split818.split ], [ %551, %.split847.split ], [ %541, %.split878.split ], [ %539, %.split905.split ], [ %537, %536 ], [ %lpad.loopexit, %.loopexit439 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %52) #8
  br label %570

570:                                              ; preds = %569, %381
  %.pn366.pn.pn = phi { ptr, i32 } [ %.pn366.pn, %569 ], [ %382, %381 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #8
  br label %636

571:                                              ; preds = %566, %351
  %572 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  %573 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9ValueItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #8
  br i1 %573, label %351, label %._crit_edge936

._crit_edge1179:                                  ; preds = %633, %._crit_edge936
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #8
  ret void

574:                                              ; preds = %.lr.ph1178, %633
  %575 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  %576 = getelementptr inbounds i8, ptr %575, i64 8
  %577 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %576) #8
  %578 = call noundef zeroext i1 @_ZNK3HIR9Publicity9is_globalEv(ptr noundef nonnull align 8 dereferenceable(16) %577)
  br i1 %578, label %579, label %633

579:                                              ; preds = %574
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %83) #8
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %83)
          to label %580 unwind label %593

580:                                              ; preds = %579
  %581 = getelementptr inbounds i8, ptr %577, i64 16
  %582 = call noundef ptr @_ZNK3HIR9MacroItem10opt_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %581)
  %.not = icmp eq ptr %582, null
  br i1 %.not, label %599, label %583

583:                                              ; preds = %580
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR10SimplePath10crate_nameEv(ptr noundef nonnull align 8 dereferenceable(8) %582)
          to label %585 unwind label %595

585:                                              ; preds = %583
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %584)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %84) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %85) #8
  %587 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %582)
          to label %588 unwind label %597

588:                                              ; preds = %585
  %589 = extractvalue { ptr, i64 } %587, 0
  store ptr %589, ptr %85, align 8
  %590 = extractvalue { ptr, i64 } %587, 1
  store i64 %590, ptr %347, align 8
  invoke void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %84, ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %591 unwind label %597

591:                                              ; preds = %588
  %592 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %348, ptr noundef nonnull align 8 dereferenceable(24) %84) #8
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #8
  br label %.split1104

593:                                              ; preds = %579
  %594 = landingpad { ptr, i32 }
          cleanup
  br label %632

595:                                              ; preds = %583
  %596 = landingpad { ptr, i32 }
          cleanup
  br label %631

597:                                              ; preds = %588, %585
  %598 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %84) #8
  br label %631

599:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(8) %575)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %87)
          to label %600 unwind label %602

600:                                              ; preds = %599
  %601 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %86)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  br label %.split1104

602:                                              ; preds = %599
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  br label %631

.split1104:                                       ; preds = %600, %591
  %604 = call noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56) %581)
  switch i32 %604, label %..loopexit421_crit_edge [
    i32 0, label %.split1048
    i32 1, label %.preheader
    i32 3, label %.preheader416
    i32 2, label %.preheader418
  ]

.preheader418:                                    ; preds = %.split1104
  %605 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %581)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %91) #8
  %606 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %605)
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %91, ptr null, ptr nonnull %606)
          to label %620 unwind label %.split940.split.split.split

.preheader416:                                    ; preds = %.split1104
  %607 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3HIR9MacroItem12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(56) %581)
  %608 = getelementptr inbounds i8, ptr %607, i64 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %89) #8
  store ptr null, ptr %90, align 8, !tbaa !18
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef nonnull align 8 dereferenceable(8) %608)
  invoke void @_ZN3AST17PathBinding_Macro14make_ProcMacroENS0_14Data_ProcMacroE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %89, ptr noundef nonnull %90)
          to label %615 unwind label %.split971.split.split.split

.preheader:                                       ; preds = %.split1104
  %609 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR9MacroItem9as_ImportEv(ptr noundef nonnull align 8 dereferenceable(56) %581)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %88) #8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %88, ptr null, ptr null)
          to label %610 unwind label %.split1012.split.split.split

.split1048:                                       ; preds = %.split1104
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 483, ptr noundef nonnull @__PRETTY_FUNCTION__._Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE) #10
  unreachable

610:                                              ; preds = %.preheader
  %611 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %349, ptr noundef nonnull align 8 dereferenceable(24) %88)
          to label %..loopexit_crit_edge unwind label %.split1015.split.split.split

..loopexit_crit_edge:                             ; preds = %610
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %88) #8
  br label %..loopexit421_crit_edge

.split1012.split.split.split:                     ; preds = %.preheader
  %612 = landingpad { ptr, i32 }
          cleanup
  br label %614

.split1015.split.split.split:                     ; preds = %610
  %613 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #8
  br label %614

614:                                              ; preds = %.split1015.split.split.split, %.split1012.split.split.split
  %.pn345 = phi { ptr, i32 } [ %613, %.split1015.split.split.split ], [ %612, %.split1012.split.split.split ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %88) #8
  br label %631

615:                                              ; preds = %.preheader416
  %616 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %349, ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %..loopexit413_crit_edge unwind label %.split974.split.split.split

..loopexit413_crit_edge:                          ; preds = %615
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #8
  br label %..loopexit421_crit_edge

.split971.split.split.split:                      ; preds = %.preheader416
  %617 = landingpad { ptr, i32 }
          cleanup
  br label %619

.split974.split.split.split:                      ; preds = %615
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  br label %619

619:                                              ; preds = %.split974.split.split.split, %.split971.split.split.split
  %.pn343 = phi { ptr, i32 } [ %618, %.split974.split.split.split ], [ %617, %.split971.split.split.split ]
  call void @_ZN3AST17PathBinding_Macro14Data_ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #8
  br label %631

620:                                              ; preds = %.preheader418
  %621 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %349, ptr noundef nonnull align 8 dereferenceable(24) %91)
          to label %..loopexit414_crit_edge unwind label %.split943.split.split.split

..loopexit414_crit_edge:                          ; preds = %620
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %91) #8
  br label %..loopexit421_crit_edge

.split940.split.split.split:                      ; preds = %.preheader418
  %622 = landingpad { ptr, i32 }
          cleanup
  br label %624

.split943.split.split.split:                      ; preds = %620
  %623 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #8
  br label %624

624:                                              ; preds = %.split943.split.split.split, %.split940.split.split.split
  %.pn341 = phi { ptr, i32 } [ %623, %.split943.split.split.split ], [ %622, %.split940.split.split.split ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %91) #8
  br label %631

..loopexit421_crit_edge:                          ; preds = %..loopexit414_crit_edge, %..loopexit413_crit_edge, %..loopexit_crit_edge, %.split1104
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(240) %92, ptr noundef nonnull align 8 dereferenceable(56) %83)
          to label %625 unwind label %627

625:                                              ; preds = %..loopexit421_crit_edge
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(480) %2, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %575, ptr noundef nonnull align 8 dereferenceable(36) %5, ptr noundef nonnull %92, i1 noundef zeroext false)
          to label %626 unwind label %629

626:                                              ; preds = %625
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %92) #8
  call void @_ZN3AST11PathBindingINS_17PathBinding_MacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %83) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %83) #8
  br label %633

627:                                              ; preds = %..loopexit421_crit_edge
  %628 = landingpad { ptr, i32 }
          cleanup
  br label %631

629:                                              ; preds = %625
  %630 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %92) #8
  br label %631

631:                                              ; preds = %614, %619, %624, %595, %597, %602, %629, %627
  %.pn341.pn.pn = phi { ptr, i32 } [ %630, %629 ], [ %628, %627 ], [ %598, %597 ], [ %596, %595 ], [ %603, %602 ], [ %.pn341, %624 ], [ %.pn343, %619 ], [ %.pn345, %614 ]
  call void @_ZN3AST11PathBindingINS_17PathBinding_MacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %83) #8
  br label %632

632:                                              ; preds = %631, %593
  %.pn341.pn.pn.pn = phi { ptr, i32 } [ %.pn341.pn.pn, %631 ], [ %594, %593 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %83) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  br label %636

633:                                              ; preds = %626, %574
  %634 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  %635 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringSt10unique_ptrIN3HIR6VisEntINS5_9MacroItemEEESt14default_deleteIS8_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82) #8
  br i1 %635, label %574, label %._crit_edge1179

636:                                              ; preds = %632, %570, %339
  %.pn387.pn.pn.pn = phi { ptr, i32 } [ %.pn387.pn.pn, %339 ], [ %.pn366.pn.pn, %570 ], [ %.pn341.pn.pn.pn, %632 ]
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #8
  br label %637

637:                                              ; preds = %636, %126
  %.pn387.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn387.pn.pn.pn, %636 ], [ %127, %126 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #8
  resume { ptr, i32 } %.pn387.pn.pn.pn.pn

638:                                              ; preds = %533, %487, %453, %380, %307, %256, %157
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

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

; 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detailneERKNS_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 #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(424) ptr @_ZNKSt10unique_ptrIN3HIR6VisEntINS0_8TypeItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 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 #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #0 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 #3 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 #3 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 #0 align 2

; 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 #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt4spanIK8RcStringE6to_vecEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 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 #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringEixEm(ptr noundef nonnull align 8 dereferenceable(16), i64 noundef) local_unnamed_addr #3 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR8TypeItem7is_EnumEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR8TypeItem9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 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 #3 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 #3 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 #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3HIR8TypeItem9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #3 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 #3 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 #3 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 #3 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 #3 align 2

; 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 #3 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 #3 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 #3 align 2

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

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

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

; 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detailneERKNS_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 #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #0 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 #3 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 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 #3 align 2

declare noundef i64 @_ZNK3HIR4Enum12find_variantERK8RcString(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 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 #0 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS7_6ModuleERKN3HIR6ModuleERKNS7_4PathERKNS7_10VisibilityENS7_12AbsolutePathEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE2atERSE_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3HIR9ValueItem3tagEv(ptr noundef nonnull align 8 dereferenceable(368)) local_unnamed_addr #3 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 #3 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 #3 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 #3 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 #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 #3 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 #3 align 2

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

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

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

; 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detailneERKNS_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 #3

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3HIR9MacroItem3tagEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #3 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 #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST17PathBinding_MacroaSEOS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 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 #3 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 #0 align 2

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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, !6, i64 8}
!10 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !12, i64 8}
!16 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !12, i64 8, !6, i64 16}
!17 = distinct !{!17, !14}
!18 = !{!19, !6, i64 0}
!19 = !{!"_ZTSN3AST17PathBinding_Macro14Data_ProcMacroE", !6, i64 0, !20, i64 8}
!20 = !{!"_ZTS8RcString", !6, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass