; LLVM IR from thepowersgang/mrustc :: src/hir/from_ast.ll (Z16LowerHIR_FromASTN3AST5CrateE)

; 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.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%class.RcString = type { ptr }
%"class.HIR::Publicity" = type { %"class.std::shared_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::unique_ptr.794" = type { %"struct.std::__uniq_ptr_data.795" }
%"struct.std::__uniq_ptr_data.795" = type { %"class.std::__uniq_ptr_impl.796" }
%"class.std::__uniq_ptr_impl.796" = type { %"class.std::tuple.797" }
%"class.std::tuple.797" = type { %"struct.std::_Tuple_impl.798" }
%"struct.std::_Tuple_impl.798" = type { %"struct.std::_Head_base.801" }
%"struct.std::_Head_base.801" = type { ptr }
%"class.HIR::Module" = type { %"class.std::vector.561", %"class.std::unordered_map.566", %"class.std::unordered_map.580", %"class.std::unordered_map.594", %"class.std::vector.608" }
%"class.std::vector.561" = type { %"struct.std::_Vector_base.562" }
%"struct.std::_Vector_base.562" = 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.566" = type { %"class.std::_Hashtable.567" }
%"class.std::_Hashtable.567" = 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.580" = type { %"class.std::_Hashtable.581" }
%"class.std::_Hashtable.581" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.594" = type { %"class.std::_Hashtable.595" }
%"class.std::_Hashtable.595" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.608" = type { %"struct.std::_Vector_base.609" }
%"struct.std::_Vector_base.609" = 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 }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"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.712" }
%"class.std::vector.712" = type { %"struct.std::_Vector_base.713" }
%"struct.std::_Vector_base.713" = 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.HIR::CratePtr" = type { ptr }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.613", %"class.std::vector.618", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.638", %"class.std::map.643", %"class.std::vector.648", %"struct.HIR::Crate::ImplGroup.653", %"class.std::map.664", %"class.std::map.669", %"class.std::vector", %"class.std::unordered_map.674", %"class.std::vector", %"class.std::unordered_map.693", %"class.std::vector.707", %"class.std::vector.712" }
%"class.std::vector.613" = type { %"struct.std::_Vector_base.614" }
%"struct.std::_Vector_base.614" = 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.618" = type { %"struct.std::_Vector_base.619" }
%"struct.std::_Vector_base.619" = 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.623", %"class.std::vector.628", %"class.std::vector.628" }
%"class.std::map.623" = type { %"class.std::_Rb_tree.624" }
%"class.std::_Rb_tree.624" = 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" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.628" = type { %"struct.std::_Vector_base.629" }
%"struct.std::_Vector_base.629" = 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.633" }
%"class.std::map.633" = type { %"class.std::_Rb_tree.634" }
%"class.std::_Rb_tree.634" = 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.638" = type { %"class.std::_Rb_tree.639" }
%"class.std::_Rb_tree.639" = 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.643" = type { %"class.std::_Rb_tree.644" }
%"class.std::_Rb_tree.644" = 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.648" = type { %"struct.std::_Vector_base.649" }
%"struct.std::_Vector_base.649" = 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.653" = type { %"class.std::map.654", %"class.std::vector.659", %"class.std::vector.659" }
%"class.std::map.654" = type { %"class.std::_Rb_tree.655" }
%"class.std::_Rb_tree.655" = 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.659" = type { %"struct.std::_Vector_base.660" }
%"struct.std::_Vector_base.660" = 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.664" = type { %"class.std::_Rb_tree.665" }
%"class.std::_Rb_tree.665" = 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.669" = type { %"class.std::_Rb_tree.670" }
%"class.std::_Rb_tree.670" = 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.674" = type { %"class.std::_Hashtable.675" }
%"class.std::_Hashtable.675" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", 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.std::unordered_map.693" = type { %"class.std::_Hashtable.694" }
%"class.std::_Hashtable.694" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.707" = type { %"struct.std::_Vector_base.708" }
%"struct.std::_Vector_base.708" = 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 }
%"class.std::map.969" = type { %"class.std::_Rb_tree.970" }
%"class.std::_Rb_tree.970" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::MacroItem>, std::_Select1st<std::pair<const RcString, HIR::MacroItem>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::MacroItem>, std::_Select1st<std::pair<const RcString, HIR::MacroItem>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%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.974 = type { i8 }
%class.anon.976 = type { i8 }
%"class.std::vector.978" = type { %"struct.std::_Vector_base.979" }
%"struct.std::_Vector_base.979" = type { %"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.829" = type { ptr }
%class.MacroRulesPtr = type { ptr }
%"struct.HIR::MacroItem::Data_Import" = type { %"struct.HIR::SimplePath" }
%struct.Span = type { ptr }
%class.anon.983 = type { ptr }
%"struct.std::pair.984" = type <{ %"struct.std::_Rb_tree_iterator.986", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator.986" = type { ptr }
%"struct.std::pair.988" = type { %class.RcString, %"class.HIR::MacroItem" }
%class.anon.992 = type { ptr }
%class.anon.993 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.994" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.995" = type { ptr }
%"struct.std::__detail::_Node_iterator.996" = type { %"struct.std::__detail::_Node_iterator_base.838" }
%"struct.std::__detail::_Node_iterator_base.838" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.997" = type { ptr }
%"struct.std::pair.998" = type { %class.RcString, %"class.HIR::ProcMacro" }
%"class.std::initializer_list" = type { ptr, i64 }
%class.anon.1000 = type { i8 }
%"struct.std::_Rb_tree_iterator.1002" = type { ptr }
%"struct.std::pair.1010" = type { %"class.std::__cxx11::basic_string", %"struct.HIR::SimplePath" }
%"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] }
%"struct.std::pair.1005" = type <{ %"struct.std::__detail::_Node_iterator.1007", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator.1007" = type { %"struct.std::__detail::_Node_iterator_base.1008" }
%"struct.std::__detail::_Node_iterator_base.1008" = type { ptr }
%"struct.std::_Rb_tree_iterator.1012" = type { ptr }
%"class.std::span" = type { ptr, i64 }
%class.anon.1017 = type { ptr, ptr, ptr }
%"struct.std::pair.1023" = type { %class.RcString, %"class.HIR::ExternCrate" }
%"class.HIR::ExternCrate" = type { %"class.HIR::CratePtr", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"struct.std::pair.1018" = type <{ %"struct.std::__detail::_Node_iterator.1020", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator.1020" = type { %"struct.std::__detail::_Node_iterator_base.1021" }
%"struct.std::__detail::_Node_iterator_base.1021" = type { ptr }
%class.anon.1025 = type { ptr }
%"struct.std::pair.792" = type { %class.RcString, %"class.std::unique_ptr.794" }
%"struct.HIR::VisEnt.802" = type { %"class.HIR::Publicity", %"class.HIR::MacroItem" }
%"struct.std::pair.787" = type <{ %"struct.std::__detail::_Node_iterator.789", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator.789" = type { %"struct.std::__detail::_Node_iterator_base.790" }
%"struct.std::__detail::_Node_iterator_base.790" = type { ptr }
%"class.std::allocator.56" = type { i8 }
%"class.std::initializer_list.1026" = type { ptr, i64 }
%"class.AST::Crate" = type { %"class.AST::AttributeList", %"class.std::map.722", %"class.AST::Module", %"class.std::vector", %"class.std::map.728", %"class.std::map.733", %class.RcString, %class.RcString, %class.RcString, %class.RcString, i8, %"class.std::vector.738", %"class.std::vector.712", %"class.std::vector.743", 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.38" }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = 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.722" = type { %"class.std::_Rb_tree.723" }
%"class.std::_Rb_tree.723" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.AST::Module" = type { %"struct.AST::AbsolutePath", %"class.std::vector.461", %"class.std::vector.466", %"class.std::vector.471", %"struct.AST::Module::FileInfo", i8, i8, %"class.std::unordered_map.476", %"class.std::unordered_map.476", %"class.std::unordered_map.476", %"class.std::unordered_map.476", %"class.std::vector.490", %"class.std::vector.495", %"class.std::vector.500" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector" }
%"class.std::vector.461" = type { %"struct.std::_Vector_base.462" }
%"struct.std::_Vector_base.462" = 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.466" = type { %"struct.std::_Vector_base.467" }
%"struct.std::_Vector_base.467" = 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.471" = type { %"struct.std::_Vector_base.472" }
%"struct.std::_Vector_base.472" = 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.476" = type { %"class.std::_Hashtable.477" }
%"class.std::_Hashtable.477" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.490" = type { %"struct.std::_Vector_base.491" }
%"struct.std::_Vector_base.491" = 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.495" = type { %"struct.std::_Vector_base.496" }
%"struct.std::_Vector_base.496" = 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.500" = type { %"struct.std::_Vector_base.501" }
%"struct.std::_Vector_base.501" = 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.728" = type { %"class.std::_Rb_tree.729" }
%"class.std::_Rb_tree.729" = 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.733" = type { %"class.std::_Rb_tree.734" }
%"class.std::_Rb_tree.734" = 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.738" = type { %"struct.std::_Vector_base.739" }
%"struct.std::_Vector_base.739" = 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.743" = type { %"struct.std::_Vector_base.744" }
%"struct.std::_Vector_base.744" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Path" = type { ptr, %"class.AST::Path::Class", %"struct.AST::Path::Bindings" }
%"class.AST::Path::Class" = type { i32, %"union.AST::Path::Class::DataUnion" }
%"union.AST::Path::Class::DataUnion" = type { %"struct.AST::Path::Class::Data_UFCS" }
%"struct.AST::Path::Class::Data_UFCS" = type { %"class.std::unique_ptr.59", %"class.std::unique_ptr.75", %"class.std::vector.99" }
%"class.std::unique_ptr.59" = type { %"struct.std::__uniq_ptr_data.60" }
%"struct.std::__uniq_ptr_data.60" = type { %"class.std::__uniq_ptr_impl.61" }
%"class.std::__uniq_ptr_impl.61" = type { %"class.std::tuple.62" }
%"class.std::tuple.62" = type { %"struct.std::_Tuple_impl.63" }
%"struct.std::_Tuple_impl.63" = type { %"struct.std::_Head_base.66" }
%"struct.std::_Head_base.66" = type { ptr }
%"class.std::unique_ptr.75" = type { %"struct.std::__uniq_ptr_data.76" }
%"struct.std::__uniq_ptr_data.76" = type { %"class.std::__uniq_ptr_impl.77" }
%"class.std::__uniq_ptr_impl.77" = type { %"class.std::tuple.78" }
%"class.std::tuple.78" = type { %"struct.std::_Tuple_impl.79" }
%"struct.std::_Tuple_impl.79" = type { %"struct.std::_Head_base.82" }
%"struct.std::_Head_base.82" = type { ptr }
%"class.std::vector.99" = type { %"struct.std::_Vector_base.100" }
%"struct.std::_Vector_base.100" = 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.104", %"struct.AST::PathBinding.105" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"class.AST::PathBinding_Value" = type { i32, %"union.AST::PathBinding_Value::DataUnion" }
%"union.AST::PathBinding_Value::DataUnion" = type { %"struct.AST::PathBinding_Value::Data_EnumVar" }
%"struct.AST::PathBinding_Value::Data_EnumVar" = type { ptr, i32, ptr }
%"struct.AST::PathBinding.104" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.AST::PathBinding_Type" = type { i32, %"union.AST::PathBinding_Type::DataUnion" }
%"union.AST::PathBinding_Type::DataUnion" = type { %"struct.AST::PathBinding_Type::Data_Module" }
%"struct.AST::PathBinding_Type::Data_Module" = type { ptr, %"struct.AST::PathBinding_Type::(anonymous struct)::Hir" }
%"struct.AST::PathBinding_Type::(anonymous struct)::Hir" = type { ptr, ptr }
%"struct.AST::PathBinding.105" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%"struct.AST::Named.830" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %class.MacroRulesPtr }
%"class.AST::Visibility" = type <{ %"class.std::shared_ptr.2", %"class.std::shared_ptr.5", i32, [4 x i8] }>
%"class.std::shared_ptr.2" = type { %"class.std::__shared_ptr.3" }
%"class.std::__shared_ptr.3" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }
%class.MacroRules = type { ptr, i8, i8, %class.RcString, i32, %"class.Ident::Hygiene", %"class.std::vector.832" }
%"class.Ident::Hygiene" = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.std::vector.832" = type { %"struct.std::_Vector_base.833" }
%"struct.std::_Vector_base.833" = type { %"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl" }
%"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl" = type { %"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.990" = type { %class.RcString, %"class.HIR::MacroItem" }
%"struct.AST::Named" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %"class.AST::Item" }
%"class.AST::Item" = type { i32, %"union.AST::Item::DataUnion" }
%"union.AST::Item::DataUnion" = type { %"class.AST::Module" }
%"struct.AST::Module::MacroImport" = type { i8, %class.RcString, %"struct.AST::AbsolutePath", %class.MacroRef }
%class.MacroRef = type { i32, %"union.MacroRef::DataUnion" }
%"union.MacroRef::DataUnion" = type { ptr }
%"struct.std::pair.839" = type { %class.RcString, %"struct.AST::Module::IndexEnt" }
%"struct.AST::Module::IndexEnt" = type { i8, [7 x i8], %"class.AST::Visibility", %"class.AST::Path" }
%"class.AST::ProcMacroDef" = type { i32, %class.RcString, %"struct.AST::AbsolutePath", %"class.std::vector.712" }
%"struct.std::pair.1003" = type { %"class.std::__cxx11::basic_string", %"struct.AST::AbsolutePath" }
%"struct.std::pair.1013" = type { %class.RcString, %"class.AST::ExternCrate" }
%"class.AST::ExternCrate" = type { %class.RcString, %class.RcString, %"class.std::__cxx11::basic_string", %"class.HIR::CratePtr" }
%"struct.std::pair.1015" = type { %"class.std::__cxx11::basic_string", %"struct.HIR::SimplePath" }

@path_Sized = external dso_local global %"struct.HIR::SimplePath", align 8
@g_core_crate = external dso_local global %class.RcString, align 8
@g_crate_name = external dso_local global %class.RcString, align 8
@g_crate_ptr = external dso_local global ptr, align 8
@g_ast_crate_ptr = external dso_local global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.9 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [24 x i8], align 1
@g_debug_indent_level = external global i32, align 4
@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@__func__._Z16LowerHIR_FromASTN3AST5CrateE = external hidden unnamed_addr constant [17 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [9 x i8], align 1
@__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE = external hidden unnamed_addr constant [47 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [5 x i8], align 1
@gTargetVersion = external global i32, align 4
@.str.79 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [8 x i8], align 1

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind noalias writable sret(%"class.HIR::Publicity") align 8) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4 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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) unnamed_addr #4 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #5

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_free_exception(ptr)

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() #6

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15make_unique_ptrIN3HIR6VisEntINS0_9MacroItemEEEESt10unique_ptrIT_St14default_deleteIS5_EEOS5_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.794") align 8, ptr noundef nonnull align 8 dereferenceable(72)) #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6VisEntINS_9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Module") align 8, ptr noundef nonnull align 8 dereferenceable(480), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216)) unnamed_addr #0 align 2

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

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

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

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

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

; 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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480)) #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind noalias writable sret(%"class.HIR::MacroItem") align 8, ptr noundef) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z21LowerHIR_Module_ImplsRKN3AST6ModuleERN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(944)) #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z16LowerHIR_FromASTN3AST5CrateE(ptr dead_on_unwind noalias writable sret(%"class.HIR::CratePtr") align 8 %0, ptr noundef %1) #4 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.HIR::Crate", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %class.RcString, align 8
  %9 = alloca %"class.std::map.969", align 8
  %10 = alloca %class.TraceLog, align 8
  %11 = alloca %"class.std::function", align 8
  %12 = alloca %class.anon.974, align 1
  %13 = alloca %"class.std::function", align 8
  %14 = alloca %class.anon.976, align 1
  %15 = alloca %"class.std::vector.978", align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca %"class.HIR::MacroItem", align 8
  %24 = alloca %"class.HIR::MacroItem", align 8
  %25 = alloca %class.MacroRulesPtr, align 8
  %26 = alloca %"class.std::vector", align 8
  %27 = alloca %"class.HIR::MacroItem", align 8
  %28 = alloca %"struct.HIR::MacroItem::Data_Import", align 8
  %29 = alloca %class.RcString, align 8
  %30 = alloca %"class.std::vector", align 8
  %31 = alloca %struct.Span, align 8
  %32 = alloca %"class.std::function", align 8
  %33 = alloca %class.anon.983, align 8
  %34 = alloca %"struct.std::pair.984", align 8
  %35 = alloca %"struct.std::pair.988", align 8
  %36 = alloca { ptr, i8 }, align 8
  %37 = alloca %struct.Span, align 8
  %38 = alloca %"class.std::function", align 8
  %39 = alloca %class.anon.992, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %42 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %43 = alloca ptr, align 8
  %44 = alloca %struct.Span, align 8
  %45 = alloca %"class.std::function", align 8
  %46 = alloca %class.anon.993, align 8
  %47 = alloca ptr, align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.994", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.994", align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.995", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator.995", align 8
  %55 = alloca ptr, align 8
  %56 = alloca %"struct.HIR::SimplePath", align 8
  %57 = alloca %class.RcString, align 8
  %58 = alloca %"class.std::vector", align 8
  %59 = alloca %"struct.std::pair.984", align 8
  %60 = alloca %"struct.std::pair.988", align 8
  %61 = alloca %"class.HIR::MacroItem", align 8
  %62 = alloca %"struct.HIR::MacroItem::Data_Import", align 8
  %63 = alloca { ptr, i8 }, align 8
  %64 = alloca ptr, align 8
  %65 = alloca %"struct.std::__detail::_Node_iterator.996", align 8
  %66 = alloca %"struct.std::__detail::_Node_iterator.996", align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca %"class.__gnu_cxx::__normal_iterator.997", align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator.997", align 8
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca %"struct.std::pair.998", align 8
  %74 = alloca %"class.HIR::ProcMacro", align 8
  %75 = alloca %class.RcString, align 8
  %76 = alloca %"class.std::initializer_list", align 8
  %77 = alloca [1 x %class.RcString], align 8
  %78 = alloca ptr, align 8
  %79 = alloca i1, align 1
  %80 = alloca %"struct.std::pair.984", align 8
  %81 = alloca %struct.Span, align 8
  %82 = alloca %"class.std::function", align 8
  %83 = alloca %class.anon.1000, align 1
  %84 = alloca %struct.Span, align 8
  %85 = alloca ptr, align 8
  %86 = alloca %"struct.std::_Rb_tree_iterator.1002", align 8
  %87 = alloca %"struct.std::_Rb_tree_iterator.1002", align 8
  %88 = alloca ptr, align 8
  %89 = alloca %"struct.std::pair.1010", align 8
  %90 = alloca %"struct.HIR::SimplePath", align 8
  %91 = alloca %class.RcString, align 8
  %92 = alloca %"class.std::vector", align 8
  %93 = alloca %"struct.std::pair.1005", align 8
  %94 = alloca ptr, align 8
  %95 = alloca %"struct.std::_Rb_tree_iterator.1012", align 8
  %96 = alloca %"struct.std::_Rb_tree_iterator.1012", align 8
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca %"struct.std::__detail::_Node_iterator.1007", align 8
  %100 = alloca %"struct.std::__detail::_Node_iterator.1007", align 8
  %101 = alloca ptr, align 8
  %102 = alloca ptr, align 8
  %103 = alloca ptr, align 8
  %104 = alloca %"struct.std::pair.1005", align 8
  %105 = alloca %"struct.std::pair.1010", align 8
  %106 = alloca { ptr, i8 }, align 8
  %107 = alloca %"class.std::span", align 8
  %108 = alloca %"class.std::span", align 8
  %109 = alloca %struct.Span, align 8
  %110 = alloca %"class.std::function", align 8
  %111 = alloca %class.anon.1017, align 8
  %112 = alloca i64, align 8
  %113 = alloca i64, align 8
  %114 = alloca i64, align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"struct.std::pair.1023", align 8
  %117 = alloca %"class.HIR::ExternCrate", align 8
  %118 = alloca %"struct.std::pair.1018", align 8
  %119 = alloca %"class.HIR::Module", align 8
  %120 = alloca %"class.HIR::ItemPath", align 8
  %121 = alloca %"class.std::vector.561", align 8
  %122 = alloca ptr, align 8
  %123 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %124 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %125 = alloca ptr, align 8
  %126 = alloca %struct.Span, align 8
  %127 = alloca %"class.std::function", align 8
  %128 = alloca %class.anon.1025, align 8
  %129 = alloca %"struct.std::pair.792", align 8
  %130 = alloca %"class.std::unique_ptr.794", align 8
  %131 = alloca %"struct.HIR::VisEnt.802", align 8
  %132 = alloca %"struct.std::pair.787", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::allocator.56", align 1
  %135 = alloca %"struct.std::pair.1010", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator.56", align 1
  %138 = alloca %"struct.HIR::SimplePath", align 8
  %139 = alloca %"class.std::initializer_list.1026", align 8
  %140 = alloca [2 x ptr], align 8
  %141 = alloca %"struct.std::pair.1005", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator.56", align 1
  %144 = alloca %"struct.std::pair.1010", align 8
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::allocator.56", align 1
  %147 = alloca %"struct.HIR::SimplePath", align 8
  %148 = alloca %"class.std::initializer_list.1026", align 8
  %149 = alloca [2 x ptr], align 8
  %150 = alloca %"struct.std::pair.1005", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::allocator.56", align 1
  %153 = alloca %"struct.std::pair.1010", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator.56", align 1
  %156 = alloca %"struct.HIR::SimplePath", align 8
  %157 = alloca %"class.std::initializer_list.1026", align 8
  %158 = alloca [2 x ptr], align 8
  %159 = alloca %"struct.std::pair.1005", align 8
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator.56", align 1
  %162 = alloca %"struct.std::pair.1010", align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::allocator.56", align 1
  %165 = alloca %"struct.HIR::SimplePath", align 8
  %166 = alloca %"class.std::initializer_list.1026", align 8
  %167 = alloca [2 x ptr], align 8
  %168 = alloca %"struct.std::pair.1005", align 8
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::allocator.56", align 1
  %171 = alloca %"struct.std::pair.1010", align 8
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator.56", align 1
  %174 = alloca %"struct.HIR::SimplePath", align 8
  %175 = alloca %"class.std::initializer_list.1026", align 8
  %176 = alloca [2 x ptr], align 8
  %177 = alloca %"struct.std::pair.1005", align 8
  %178 = alloca %"class.HIR::Crate", align 8
  store ptr %0, ptr %3, align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 944, ptr %5) #10
  call void @_ZN3HIR5CrateC2Ev(ptr noundef nonnull align 8 dereferenceable(944) %5)
  %179 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 15
  %180 = load i32, ptr %179, align 4, !tbaa !9
  %181 = icmp ne i32 %180, 4
  br i1 %181, label %182, label %191

182:                                              ; preds = %2
  %183 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 19
  %184 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 0
  %185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %184, ptr noundef nonnull align 8 dereferenceable(8) %183)
          to label %186 unwind label %187

186:                                              ; preds = %182
  br label %205

187:                                              ; preds = %211, %205, %182
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %6, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %7, align 4
  br label %1763

191:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #10
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef @.str.62)
          to label %192 unwind label %196

192:                                              ; preds = %191
  %193 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 0
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %195 unwind label %200

195:                                              ; preds = %192
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #10
  br label %205

196:                                              ; preds = %191
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %6, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %7, align 4
  br label %204

200:                                              ; preds = %192
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %6, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %7, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  br label %204

204:                                              ; preds = %200, %196
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #10
  br label %1763

205:                                              ; preds = %195, %186
  %206 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 14
  %207 = load i32, ptr %206, align 8, !tbaa !101
  %208 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 1
  store i32 %207, ptr %208, align 8, !tbaa !102
  store ptr %5, ptr @g_crate_ptr, align 8, !tbaa !5
  store ptr %1, ptr @g_ast_crate_ptr, align 8, !tbaa !5
  %209 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 0
  %210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name, ptr noundef nonnull align 8 dereferenceable(8) %209)
          to label %211 unwind label %187

211:                                              ; preds = %205
  %212 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 6
  %213 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) @g_core_crate, ptr noundef nonnull align 8 dereferenceable(8) %212)
          to label %214 unwind label %187

214:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 48, ptr %9) #10
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %10) #10
  %215 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %216 unwind label %237

216:                                              ; preds = %214
  %217 = zext i1 %215 to i64
  %218 = select i1 %215, ptr @__func__._Z16LowerHIR_FromASTN3AST5CrateE, ptr null
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #10
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #10
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 1 dereferenceable(1) %14) #10
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef %218, ptr noundef %11, ptr noundef %13)
          to label %219 unwind label %241

219:                                              ; preds = %216
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #10
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #10
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %220 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 2
  store ptr %220, ptr %16, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %221 unwind label %245

221:                                              ; preds = %219
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %222

222:                                              ; preds = %616, %221
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  %223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #10
  %224 = load ptr, ptr %223, align 8, !tbaa !5
  store ptr %224, ptr %17, align 8, !tbaa !5
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  %225 = load ptr, ptr %17, align 8, !tbaa !5
  %226 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %225)
          to label %227 unwind label %249

227:                                              ; preds = %222
  store ptr %226, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  %228 = load ptr, ptr %18, align 8, !tbaa !5
  %229 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %228) #10
  %230 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.829", ptr %19, i32 0, i32 0
  store ptr %229, ptr %230, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  %231 = load ptr, ptr %18, align 8, !tbaa !5
  %232 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %231) #10
  %233 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.829", ptr %20, i32 0, i32 0
  store ptr %232, ptr %233, align 8
  br label %234

234:                                              ; preds = %573, %227
  %235 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #10
  br i1 %235, label %253, label %236

236:                                              ; preds = %234
  store i32 4, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %577

237:                                              ; preds = %214
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %6, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %7, align 4
  br label %819

241:                                              ; preds = %216
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %6, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #10
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  br label %819

245:                                              ; preds = %219
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %6, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %818

249:                                              ; preds = %222
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %6, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %7, align 4
  br label %576

253:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %254 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  store ptr %254, ptr %22, align 8, !tbaa !5
  %255 = load ptr, ptr %22, align 8, !tbaa !5
  %256 = getelementptr inbounds %"struct.AST::Named.830", ptr %255, i32 0, i32 4
  %257 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %256)
          to label %258 unwind label %274

258:                                              ; preds = %253
  %259 = getelementptr inbounds %class.MacroRules, ptr %257, i32 0, i32 1
  %260 = load i8, ptr %259, align 8, !tbaa !173, !range !186, !noundef !187
  %261 = trunc i8 %260 to i1
  br i1 %261, label %262, label %549

262:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 56, ptr %23) #10
  invoke void @_ZN3HIR9MacroItemC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %23)
          to label %263 unwind label %278

263:                                              ; preds = %262
  %264 = load ptr, ptr %17, align 8, !tbaa !5
  %265 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 2
  %266 = icmp eq ptr %264, %265
  br i1 %266, label %267, label %296

267:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 56, ptr %24) #10
  %268 = load ptr, ptr %22, align 8, !tbaa !5
  %269 = getelementptr inbounds %"struct.AST::Named.830", ptr %268, i32 0, i32 4
  invoke void @_ZN13MacroRulesPtrC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %269)
          to label %270 unwind label %282

270:                                              ; preds = %267
  invoke void @_ZN3HIR9MacroItemC2E13MacroRulesPtr(ptr noundef nonnull align 8 dereferenceable(56) %24, ptr noundef %25)
          to label %271 unwind label %286

271:                                              ; preds = %270
  %272 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN3HIR9MacroItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(56) %23, ptr noundef nonnull align 8 dereferenceable(56) %24)
          to label %273 unwind label %290

273:                                              ; preds = %271
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %24) #10
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %24) #10
  br label %363

274:                                              ; preds = %566, %564, %562, %558, %556, %553, %550, %253
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %6, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %7, align 4
  br label %575

278:                                              ; preds = %262
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %6, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %7, align 4
  br label %548

282:                                              ; preds = %267
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %6, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %7, align 4
  br label %295

286:                                              ; preds = %270
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %6, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %7, align 4
  br label %294

290:                                              ; preds = %271
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %6, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %7, align 4
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %24) #10
  br label %294

294:                                              ; preds = %290, %286
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  br label %295

295:                                              ; preds = %294, %282
  call void @llvm.lifetime.end.p0(i64 56, ptr %24) #10
  br label %547

296:                                              ; preds = %263
  %297 = load ptr, ptr %22, align 8, !tbaa !5
  %298 = getelementptr inbounds %"struct.AST::Named.830", ptr %297, i32 0, i32 4
  %299 = invoke noundef zeroext i1 @_ZNK13MacroRulesPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %298)
          to label %300 unwind label %303

300:                                              ; preds = %296
  br i1 %299, label %301, label %302

301:                                              ; preds = %300
  br label %308

302:                                              ; preds = %300
  call void @__assert_fail(ptr noundef @.str.63, ptr noundef @.str.5, i32 noundef 2335, ptr noundef @__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE) #11
  unreachable

303:                                              ; preds = %392, %376, %364, %308, %296
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %6, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %7, align 4
  br label %547

307:                                              ; No predecessors!
  br label %308

308:                                              ; preds = %307, %301
  %309 = load ptr, ptr %22, align 8, !tbaa !5
  %310 = getelementptr inbounds %"struct.AST::Named.830", ptr %309, i32 0, i32 4
  %311 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %310)
          to label %312 unwind label %303

312:                                              ; preds = %308
  %313 = getelementptr inbounds %class.MacroRules, ptr %311, i32 0, i32 6
  %314 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %313) #10
  %315 = xor i1 %314, true
  br i1 %315, label %316, label %317

316:                                              ; preds = %312
  br label %319

317:                                              ; preds = %312
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.5, i32 noundef 2336, ptr noundef @__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE) #11
  unreachable

318:                                              ; No predecessors!
  br label %319

319:                                              ; preds = %318, %316
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #10
  %320 = load ptr, ptr %17, align 8, !tbaa !5
  %321 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %320)
          to label %322 unwind label %334

322:                                              ; preds = %319
  %323 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %321, i32 0, i32 1
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %323)
          to label %324 unwind label %334

324:                                              ; preds = %322
  %325 = load ptr, ptr %22, align 8, !tbaa !5
  %326 = getelementptr inbounds %"struct.AST::Named.830", ptr %325, i32 0, i32 3
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %327 unwind label %338

327:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 56, ptr %27) #10
  %328 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %28, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name)
          to label %329 unwind label %342

329:                                              ; preds = %327
  call void @_ZNSt6vectorI8RcStringSaIS0_EEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef %29, ptr noundef %30)
          to label %330 unwind label %346

330:                                              ; preds = %329
  invoke void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::MacroItem") align 8 %27, ptr noundef %28)
          to label %331 unwind label %350

331:                                              ; preds = %330
  %332 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN3HIR9MacroItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(56) %23, ptr noundef nonnull align 8 dereferenceable(56) %27)
          to label %333 unwind label %354

333:                                              ; preds = %331
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #10
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %27) #10
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #10
  br label %363

334:                                              ; preds = %322, %319
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %6, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %7, align 4
  br label %362

338:                                              ; preds = %324
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %6, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %7, align 4
  br label %361

342:                                              ; preds = %327
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %6, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %7, align 4
  br label %360

346:                                              ; preds = %329
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %6, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %7, align 4
  br label %359

350:                                              ; preds = %330
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %6, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %7, align 4
  br label %358

354:                                              ; preds = %331
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %6, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %7, align 4
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %27) #10
  br label %358

358:                                              ; preds = %354, %350
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  br label %359

359:                                              ; preds = %358, %346
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  br label %360

360:                                              ; preds = %359, %342
  call void @llvm.lifetime.end.p0(i64 56, ptr %27) #10
  br label %361

361:                                              ; preds = %360, %338
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  br label %362

362:                                              ; preds = %361, %334
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #10
  br label %547

363:                                              ; preds = %333, %273
  br label %364

364:                                              ; preds = %363
  %365 = load ptr, ptr %22, align 8, !tbaa !5
  %366 = getelementptr inbounds %"struct.AST::Named.830", ptr %365, i32 0, i32 3
  %367 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(8) %366)
          to label %368 unwind label %303

368:                                              ; preds = %364
  %369 = icmp eq i64 %367, 0
  br i1 %369, label %390, label %370

370:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %371 unwind label %377

371:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %372 = getelementptr inbounds %class.anon.983, ptr %33, i32 0, i32 0
  %373 = load ptr, ptr %22, align 8, !tbaa !5
  store ptr %373, ptr %372, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef %32)
          to label %374 unwind label %381

374:                                              ; preds = %371
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  %375 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %375, ptr noundef @.str.9)
          to label %376 unwind label %386

376:                                              ; preds = %374
  invoke void @__cxa_throw(ptr %375, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1769 unwind label %303

377:                                              ; preds = %370
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %6, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %7, align 4
  br label %385

381:                                              ; preds = %371
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %6, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  br label %385

385:                                              ; preds = %381, %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %547

386:                                              ; preds = %374
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %6, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %7, align 4
  call void @__cxa_free_exception(ptr %375) #10
  br label %547

390:                                              ; preds = %368
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  %393 = load ptr, ptr %22, align 8, !tbaa !5
  %394 = getelementptr inbounds %"struct.AST::Named.830", ptr %393, i32 0, i32 3
  %395 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(8) %394)
          to label %396 unwind label %303

396:                                              ; preds = %392
  %397 = icmp eq i64 %395, 0
  br i1 %397, label %398, label %489

398:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %35) #10
  %399 = load ptr, ptr %22, align 8, !tbaa !5
  %400 = getelementptr inbounds %"struct.AST::Named.830", ptr %399, i32 0, i32 3
  invoke void @_ZSt9make_pairIR8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind writable sret(%"struct.std::pair.988") align 8 %35, ptr noundef nonnull align 8 dereferenceable(8) %400, ptr noundef nonnull align 8 dereferenceable(56) %23)
          to label %401 unwind label %427

401:                                              ; preds = %398
  %402 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(64) %35)
          to label %403 unwind label %431

403:                                              ; preds = %401
  store { ptr, i8 } %402, ptr %36, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %34, ptr align 8 %36, i64 9, i1 false)
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %35) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %35) #10
  %404 = getelementptr inbounds %"struct.std::pair.984", ptr %34, i32 0, i32 1
  %405 = load i8, ptr %404, align 8, !tbaa !188, !range !186, !noundef !187
  %406 = trunc i8 %405 to i1
  br i1 %406, label %407, label %447

407:                                              ; preds = %403
  br label %408

408:                                              ; preds = %407
  %409 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %410 unwind label %436

410:                                              ; preds = %408
  br i1 %409, label %411, label %440

411:                                              ; preds = %410
  %412 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %413 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %412, ptr noundef @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %414 unwind label %436

414:                                              ; preds = %411
  %415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %413, ptr noundef @.str.65)
          to label %416 unwind label %436

416:                                              ; preds = %414
  %417 = load ptr, ptr %22, align 8, !tbaa !5
  %418 = getelementptr inbounds %"struct.AST::Named.830", ptr %417, i32 0, i32 3
  %419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %415, ptr noundef nonnull align 8 dereferenceable(8) %418)
          to label %420 unwind label %436

420:                                              ; preds = %416
  %421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef @.str.66)
          to label %422 unwind label %436

422:                                              ; preds = %420
  %423 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %421, ptr noundef @_ZSt3decRSt8ios_base)
          to label %424 unwind label %436

424:                                              ; preds = %422
  %425 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %423, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %426 unwind label %436

426:                                              ; preds = %424
  br label %440

427:                                              ; preds = %398
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %6, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %7, align 4
  br label %435

431:                                              ; preds = %401
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %6, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %7, align 4
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %35) #10
  br label %435

435:                                              ; preds = %431, %427
  call void @llvm.lifetime.end.p0(i64 64, ptr %35) #10
  br label %488

436:                                              ; preds = %470, %459, %454, %447, %442, %424, %422, %420, %416, %414, %411, %408
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %6, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %7, align 4
  br label %488

440:                                              ; preds = %426, %410
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  %443 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 13
  %444 = load ptr, ptr %22, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.AST::Named.830", ptr %444, i32 0, i32 3
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %443, ptr noundef nonnull align 8 dereferenceable(8) %445)
          to label %446 unwind label %436

446:                                              ; preds = %442
  br label %447

447:                                              ; preds = %446, %403
  %448 = getelementptr inbounds %"struct.std::pair.984", ptr %34, i32 0, i32 0
  %449 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %448) #10
  %450 = getelementptr inbounds %"struct.std::pair.990", ptr %449, i32 0, i32 1
  %451 = invoke noundef zeroext i1 @_ZNK3HIR9MacroItem13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %450)
          to label %452 unwind label %436

452:                                              ; preds = %447
  br i1 %451, label %453, label %487

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453
  %455 = getelementptr inbounds %"struct.std::pair.984", ptr %34, i32 0, i32 0
  %456 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %455) #10
  %457 = getelementptr inbounds %"struct.std::pair.990", ptr %456, i32 0, i32 1
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %457)
          to label %459 unwind label %436

459:                                              ; preds = %454
  %460 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %458)
          to label %461 unwind label %436

461:                                              ; preds = %459
  %462 = getelementptr inbounds %class.MacroRules, ptr %460, i32 0, i32 6
  %463 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %462) #10
  br i1 %463, label %464, label %484

464:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %465 unwind label %471

465:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %466 = getelementptr inbounds %class.anon.992, ptr %39, i32 0, i32 0
  %467 = load ptr, ptr %22, align 8, !tbaa !5
  store ptr %467, ptr %466, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef %38)
          to label %468 unwind label %475

468:                                              ; preds = %465
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  %469 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %469, ptr noundef @.str.9)
          to label %470 unwind label %480

470:                                              ; preds = %468
  invoke void @__cxa_throw(ptr %469, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1769 unwind label %436

471:                                              ; preds = %464
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %6, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %7, align 4
  br label %479

475:                                              ; preds = %465
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %6, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  br label %479

479:                                              ; preds = %475, %471
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %488

480:                                              ; preds = %468
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %6, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %7, align 4
  call void @__cxa_free_exception(ptr %469) #10
  br label %488

484:                                              ; preds = %461
  br label %485

485:                                              ; preds = %484
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486, %452
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #10
  br label %489

488:                                              ; preds = %480, %479, %436, %435
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #10
  br label %547

489:                                              ; preds = %487, %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  store ptr %9, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %490 = load ptr, ptr %40, align 8, !tbaa !5
  %491 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %490) #10
  %492 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.986", ptr %41, i32 0, i32 0
  store ptr %491, ptr %492, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %493 = load ptr, ptr %40, align 8, !tbaa !5
  %494 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %493) #10
  %495 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.986", ptr %42, i32 0, i32 0
  store ptr %494, ptr %495, align 8
  br label %496

496:                                              ; preds = %543, %489
  %497 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #10
  br i1 %497, label %499, label %498

498:                                              ; preds = %496
  store i32 12, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %546

499:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %500 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  store ptr %500, ptr %43, align 8, !tbaa !5
  %501 = load ptr, ptr %43, align 8, !tbaa !5
  %502 = getelementptr inbounds %"struct.std::pair.990", ptr %501, i32 0, i32 1
  %503 = invoke noundef zeroext i1 @_ZNK3HIR9MacroItem13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %502)
          to label %504 unwind label %522

504:                                              ; preds = %499
  br i1 %503, label %505, label %542

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  %507 = load ptr, ptr %43, align 8, !tbaa !5
  %508 = getelementptr inbounds %"struct.std::pair.990", ptr %507, i32 0, i32 1
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %508)
          to label %510 unwind label %522

510:                                              ; preds = %506
  %511 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %509)
          to label %512 unwind label %522

512:                                              ; preds = %510
  %513 = getelementptr inbounds %class.MacroRules, ptr %511, i32 0, i32 6
  %514 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %513) #10
  br i1 %514, label %515, label %539

515:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %516 unwind label %526

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  %517 = getelementptr inbounds %class.anon.993, ptr %46, i32 0, i32 0
  %518 = load ptr, ptr %43, align 8, !tbaa !5
  store ptr %518, ptr %517, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef %45)
          to label %519 unwind label %530

519:                                              ; preds = %516
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  %520 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %520, ptr noundef @.str.9)
          to label %521 unwind label %535

521:                                              ; preds = %519
  invoke void @__cxa_throw(ptr %520, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1769 unwind label %522

522:                                              ; preds = %521, %510, %506, %499
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %6, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %7, align 4
  br label %545

526:                                              ; preds = %515
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %6, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %7, align 4
  br label %534

530:                                              ; preds = %516
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %6, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  br label %534

534:                                              ; preds = %530, %526
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %545

535:                                              ; preds = %519
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %6, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %7, align 4
  call void @__cxa_free_exception(ptr %520) #10
  br label %545

539:                                              ; preds = %512
  br label %540

540:                                              ; preds = %539
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541, %504
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  br label %543

543:                                              ; preds = %542
  %544 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  br label %496

545:                                              ; preds = %535, %534, %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %547

546:                                              ; preds = %498
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %23) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %23) #10
  br label %572

547:                                              ; preds = %545, %488, %386, %385, %362, %303, %295
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %23) #10
  br label %548

548:                                              ; preds = %547, %278
  call void @llvm.lifetime.end.p0(i64 56, ptr %23) #10
  br label %575

549:                                              ; preds = %258
  br label %550

550:                                              ; preds = %549
  %551 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %552 unwind label %274

552:                                              ; preds = %550
  br i1 %551, label %553, label %569

553:                                              ; preds = %552
  %554 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %554, ptr noundef @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %556 unwind label %274

556:                                              ; preds = %553
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef @.str.67)
          to label %558 unwind label %274

558:                                              ; preds = %556
  %559 = load ptr, ptr %22, align 8, !tbaa !5
  %560 = getelementptr inbounds %"struct.AST::Named.830", ptr %559, i32 0, i32 3
  %561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %557, ptr noundef nonnull align 8 dereferenceable(8) %560)
          to label %562 unwind label %274

562:                                              ; preds = %558
  %563 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %561, ptr noundef @.str.66)
          to label %564 unwind label %274

564:                                              ; preds = %562
  %565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %563, ptr noundef @_ZSt3decRSt8ios_base)
          to label %566 unwind label %274

566:                                              ; preds = %564
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %565, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %568 unwind label %274

568:                                              ; preds = %566
  br label %569

569:                                              ; preds = %568, %552
  br label %570

570:                                              ; preds = %569
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571, %546
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  br label %573

573:                                              ; preds = %572
  %574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  br label %234

575:                                              ; preds = %548, %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  br label %576

576:                                              ; preds = %575, %249
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %631

577:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %578 = load ptr, ptr %17, align 8, !tbaa !5
  %579 = getelementptr inbounds %"class.AST::Module", ptr %578, i32 0, i32 1
  store ptr %579, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %580 = load ptr, ptr %47, align 8, !tbaa !5
  %581 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #10
  %582 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.994", ptr %48, i32 0, i32 0
  store ptr %581, ptr %582, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %583 = load ptr, ptr %47, align 8, !tbaa !5
  %584 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %583) #10
  %585 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.994", ptr %49, i32 0, i32 0
  store ptr %584, ptr %585, align 8
  br label %586

586:                                              ; preds = %612, %577
  %587 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #10
  br i1 %587, label %589, label %588

588:                                              ; preds = %586
  store i32 18, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  br label %615

589:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %590 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  store ptr %590, ptr %50, align 8, !tbaa !5
  %591 = load ptr, ptr %50, align 8, !tbaa !5
  %592 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %591) #10
  %593 = getelementptr inbounds %"struct.AST::Named", ptr %592, i32 0, i32 4
  %594 = invoke noundef zeroext i1 @_ZNK3AST4Item9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %593)
          to label %595 unwind label %603

595:                                              ; preds = %589
  br i1 %594, label %596, label %611

596:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  %597 = load ptr, ptr %50, align 8, !tbaa !5
  %598 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %597) #10
  %599 = getelementptr inbounds %"struct.AST::Named", ptr %598, i32 0, i32 4
  %600 = invoke noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %599)
          to label %601 unwind label %607

601:                                              ; preds = %596
  store ptr %600, ptr %51, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %602 unwind label %607

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

603:                                              ; preds = %589
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %6, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %7, align 4
  br label %614

607:                                              ; preds = %601, %596
  %608 = landingpad { ptr, i32 }
          cleanup
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %6, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %614

611:                                              ; preds = %602, %595
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  br label %612

612:                                              ; preds = %611
  %613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  br label %586

614:                                              ; preds = %607, %603
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  br label %631

615:                                              ; preds = %588
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  br label %616

616:                                              ; preds = %615
  %617 = call noundef i64 @_ZNKSt6vectorIPN3AST6ModuleESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #10
  %618 = icmp ugt i64 %617, 0
  br i1 %618, label %222, label %619, !llvm.loop !193

619:                                              ; preds = %616
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %620 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 2
  %621 = getelementptr inbounds %"class.AST::Module", ptr %620, i32 0, i32 12
  store ptr %621, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %622 = load ptr, ptr %52, align 8, !tbaa !5
  %623 = call ptr @_ZNSt6vectorIN3AST6Module11MacroImportESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %622) #10
  %624 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.995", ptr %53, i32 0, i32 0
  store ptr %623, ptr %624, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  %625 = load ptr, ptr %52, align 8, !tbaa !5
  %626 = call ptr @_ZNSt6vectorIN3AST6Module11MacroImportESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %625) #10
  %627 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.995", ptr %54, i32 0, i32 0
  store ptr %626, ptr %627, align 8
  br label %628

628:                                              ; preds = %767, %619
  %629 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #10
  br i1 %629, label %632, label %630

630:                                              ; preds = %628
  store i32 20, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  br label %770

631:                                              ; preds = %614, %576
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  br label %818

632:                                              ; preds = %628
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %633 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  store ptr %633, ptr %55, align 8, !tbaa !5
  %634 = load ptr, ptr %55, align 8, !tbaa !5
  %635 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %634, i32 0, i32 0
  %636 = load i8, ptr %635, align 8, !tbaa !195, !range !186, !noundef !187
  %637 = trunc i8 %636 to i1
  br i1 %637, label %652, label %638

638:                                              ; preds = %632
  %639 = load ptr, ptr %55, align 8, !tbaa !5
  %640 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %639, i32 0, i32 3
  %641 = invoke noundef zeroext i1 @_ZNK8MacroRef13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(16) %640)
          to label %642 unwind label %691

642:                                              ; preds = %638
  br i1 %641, label %643, label %766

643:                                              ; preds = %642
  %644 = load ptr, ptr %55, align 8, !tbaa !5
  %645 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %644, i32 0, i32 3
  %646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(16) %645)
          to label %647 unwind label %691

647:                                              ; preds = %643
  %648 = load ptr, ptr %646, align 8, !tbaa !5
  %649 = getelementptr inbounds %class.MacroRules, ptr %648, i32 0, i32 1
  %650 = load i8, ptr %649, align 8, !tbaa !173, !range !186, !noundef !187
  %651 = trunc i8 %650 to i1
  br i1 %651, label %652, label %766

652:                                              ; preds = %647, %632
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  %653 = load ptr, ptr %55, align 8, !tbaa !5
  %654 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %653, i32 0, i32 2
  %655 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %654, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %655)
          to label %656 unwind label %695

656:                                              ; preds = %652
  %657 = load ptr, ptr %55, align 8, !tbaa !5
  %658 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %657, i32 0, i32 2
  %659 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %658, i32 0, i32 1
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %58, ptr noundef nonnull align 8 dereferenceable(24) %659)
          to label %660 unwind label %699

660:                                              ; preds = %656
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef %57, ptr noundef %58)
          to label %661 unwind label %703

661:                                              ; preds = %660
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %60) #10
  %662 = load ptr, ptr %55, align 8, !tbaa !5
  %663 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %662, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 56, ptr %61) #10
  %664 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %62, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %664, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %665 unwind label %708

665:                                              ; preds = %661
  invoke void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::MacroItem") align 8 %61, ptr noundef %62)
          to label %666 unwind label %712

666:                                              ; preds = %665
  invoke void @_ZSt9make_pairIRK8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.988") align 8 %60, ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef nonnull align 8 dereferenceable(56) %61)
          to label %667 unwind label %716

667:                                              ; preds = %666
  %668 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(64) %60)
          to label %669 unwind label %720

669:                                              ; preds = %667
  store { ptr, i8 } %668, ptr %63, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %59, ptr align 8 %63, i64 9, i1 false)
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %60) #10
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %61) #10
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %60) #10
  %670 = getelementptr inbounds %"struct.std::pair.984", ptr %59, i32 0, i32 1
  %671 = load i8, ptr %670, align 8, !tbaa !188, !range !186, !noundef !187
  %672 = trunc i8 %671 to i1
  br i1 %672, label %734, label %673

673:                                              ; preds = %669
  br label %674

674:                                              ; preds = %673
  %675 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %676 unwind label %727

676:                                              ; preds = %674
  br i1 %675, label %677, label %731

677:                                              ; preds = %676
  %678 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %678, ptr noundef @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %680 unwind label %727

680:                                              ; preds = %677
  %681 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %679, ptr noundef @.str.68)
          to label %682 unwind label %727

682:                                              ; preds = %680
  %683 = load ptr, ptr %55, align 8, !tbaa !5
  %684 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %683, i32 0, i32 1
  %685 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %681, ptr noundef nonnull align 8 dereferenceable(8) %684)
          to label %686 unwind label %727

686:                                              ; preds = %682
  %687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %685, ptr noundef @_ZSt3decRSt8ios_base)
          to label %688 unwind label %727

688:                                              ; preds = %686
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %687, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %690 unwind label %727

690:                                              ; preds = %688
  br label %731

691:                                              ; preds = %643, %638
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %6, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %7, align 4
  br label %769

695:                                              ; preds = %652
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %6, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %7, align 4
  br label %765

699:                                              ; preds = %656
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %6, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %7, align 4
  br label %707

703:                                              ; preds = %660
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %6, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %7, align 4
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #10
  br label %707

707:                                              ; preds = %703, %699
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #10
  br label %765

708:                                              ; preds = %661
  %709 = landingpad { ptr, i32 }
          cleanup
  %710 = extractvalue { ptr, i32 } %709, 0
  store ptr %710, ptr %6, align 8
  %711 = extractvalue { ptr, i32 } %709, 1
  store i32 %711, ptr %7, align 4
  br label %726

712:                                              ; preds = %665
  %713 = landingpad { ptr, i32 }
          cleanup
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %6, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %7, align 4
  br label %725

716:                                              ; preds = %666
  %717 = landingpad { ptr, i32 }
          cleanup
  %718 = extractvalue { ptr, i32 } %717, 0
  store ptr %718, ptr %6, align 8
  %719 = extractvalue { ptr, i32 } %717, 1
  store i32 %719, ptr %7, align 4
  br label %724

720:                                              ; preds = %667
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %6, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %7, align 4
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %60) #10
  br label %724

724:                                              ; preds = %720, %716
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %61) #10
  br label %725

725:                                              ; preds = %724, %712
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  br label %726

726:                                              ; preds = %725, %708
  call void @llvm.lifetime.end.p0(i64 56, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %60) #10
  br label %764

727:                                              ; preds = %758, %753, %751, %749, %747, %743, %741, %738, %735, %688, %686, %682, %680, %677, %674
  %728 = landingpad { ptr, i32 }
          cleanup
  %729 = extractvalue { ptr, i32 } %728, 0
  store ptr %729, ptr %6, align 8
  %730 = extractvalue { ptr, i32 } %728, 1
  store i32 %730, ptr %7, align 4
  br label %764

731:                                              ; preds = %690, %676
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732
  br label %763

734:                                              ; preds = %669
  br label %735

735:                                              ; preds = %734
  %736 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %737 unwind label %727

737:                                              ; preds = %735
  br i1 %736, label %738, label %756

738:                                              ; preds = %737
  %739 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %740 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %739, ptr noundef @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %741 unwind label %727

741:                                              ; preds = %738
  %742 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %740, ptr noundef @.str.69)
          to label %743 unwind label %727

743:                                              ; preds = %741
  %744 = load ptr, ptr %55, align 8, !tbaa !5
  %745 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %744, i32 0, i32 1
  %746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %742, ptr noundef nonnull align 8 dereferenceable(8) %745)
          to label %747 unwind label %727

747:                                              ; preds = %743
  %748 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %746, ptr noundef @.str.70)
          to label %749 unwind label %727

749:                                              ; preds = %747
  %750 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %748, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %751 unwind label %727

751:                                              ; preds = %749
  %752 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %750, ptr noundef @_ZSt3decRSt8ios_base)
          to label %753 unwind label %727

753:                                              ; preds = %751
  %754 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %752, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %755 unwind label %727

755:                                              ; preds = %753
  br label %756

756:                                              ; preds = %755, %737
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  %759 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 13
  %760 = load ptr, ptr %55, align 8, !tbaa !5
  %761 = getelementptr inbounds %"struct.AST::Module::MacroImport", ptr %760, i32 0, i32 1
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %759, ptr noundef nonnull align 8 dereferenceable(8) %761)
          to label %762 unwind label %727

762:                                              ; preds = %758
  br label %763

763:                                              ; preds = %762, %733
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  br label %766

764:                                              ; preds = %727, %726
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  br label %765

765:                                              ; preds = %764, %707, %695
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  br label %769

766:                                              ; preds = %763, %647, %642
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  br label %767

767:                                              ; preds = %766
  %768 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  br label %628

769:                                              ; preds = %765, %691
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  br label %818

770:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %771 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 2
  %772 = getelementptr inbounds %"class.AST::Module", ptr %771, i32 0, i32 10
  store ptr %772, ptr %64, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %773 = load ptr, ptr %64, align 8, !tbaa !5
  %774 = call ptr @_ZNSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %773) #10
  %775 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.996", ptr %65, i32 0, i32 0
  %776 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %775, i32 0, i32 0
  store ptr %774, ptr %776, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  %777 = load ptr, ptr %64, align 8, !tbaa !5
  %778 = call ptr @_ZNSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %777) #10
  %779 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.996", ptr %66, i32 0, i32 0
  %780 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %779, i32 0, i32 0
  store ptr %778, ptr %780, align 8
  br label %781

781:                                              ; preds = %801, %770
  %782 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #10
  br i1 %782, label %784, label %783

783:                                              ; preds = %781
  store i32 26, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %803

784:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  %785 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  store ptr %785, ptr %67, align 8, !tbaa !5
  %786 = load ptr, ptr %67, align 8, !tbaa !5
  %787 = getelementptr inbounds %"struct.std::pair.839", ptr %786, i32 0, i32 1
  %788 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %787, i32 0, i32 2
  %789 = invoke noundef zeroext i1 @_ZNK3AST10Visibility9is_globalEv(ptr noundef nonnull align 8 dereferenceable(36) %788)
          to label %790 unwind label %796

790:                                              ; preds = %784
  br i1 %789, label %791, label %800

791:                                              ; preds = %790
  %792 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 13
  %793 = load ptr, ptr %67, align 8, !tbaa !5
  %794 = getelementptr inbounds %"struct.std::pair.839", ptr %793, i32 0, i32 0
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %792, ptr noundef nonnull align 8 dereferenceable(8) %794)
          to label %795 unwind label %796

795:                                              ; preds = %791
  br label %800

796:                                              ; preds = %791, %784
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %6, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %818

800:                                              ; preds = %795, %790
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  br label %801

801:                                              ; preds = %800
  %802 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  br label %781

803:                                              ; preds = %783
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #10
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %10) #10
  %804 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 15
  %805 = load i32, ptr %804, align 4, !tbaa !9
  %806 = icmp eq i32 %805, 5
  br i1 %806, label %807, label %947

807:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %808 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 13
  store ptr %808, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  %809 = load ptr, ptr %68, align 8, !tbaa !5
  %810 = call ptr @_ZNSt6vectorIN3AST12ProcMacroDefESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %809) #10
  %811 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.997", ptr %69, i32 0, i32 0
  store ptr %810, ptr %811, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %812 = load ptr, ptr %68, align 8, !tbaa !5
  %813 = call ptr @_ZNSt6vectorIN3AST12ProcMacroDefESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %812) #10
  %814 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.997", ptr %70, i32 0, i32 0
  store ptr %813, ptr %814, align 8
  br label %815

815:                                              ; preds = %943, %807
  %816 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST12ProcMacroDefESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70) #10
  br i1 %816, label %820, label %817

817:                                              ; preds = %815
  store i32 28, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %946

818:                                              ; preds = %796, %769, %631, %245
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #10
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #10
  br label %819

819:                                              ; preds = %818, %241, %237
  call void @llvm.lifetime.end.p0(i64 40, ptr %10) #10
  br label %1762

820:                                              ; preds = %815
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %821 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST12ProcMacroDefESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  store ptr %821, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %822 = load ptr, ptr %71, align 8, !tbaa !5
  %823 = getelementptr inbounds %"class.AST::ProcMacroDef", ptr %822, i32 0, i32 0
  %824 = load i32, ptr %823, align 8, !tbaa !199
  %825 = invoke noundef i32 @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12cvt_macro_tyENS_11ProcMacroTyE(i32 noundef %824)
          to label %826 unwind label %886

826:                                              ; preds = %820
  store i32 %825, ptr %72, align 4, !tbaa !202
  call void @llvm.lifetime.start.p0(i64 56, ptr %73) #10
  %827 = load ptr, ptr %71, align 8, !tbaa !5
  %828 = getelementptr inbounds %"class.AST::ProcMacroDef", ptr %827, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 48, ptr %74) #10
  %829 = getelementptr inbounds %"class.HIR::ProcMacro", ptr %74, i32 0, i32 0
  %830 = load i32, ptr %72, align 4, !tbaa !202
  store i32 %830, ptr %829, align 8, !tbaa !204
  %831 = getelementptr inbounds %"class.HIR::ProcMacro", ptr %74, i32 0, i32 1
  %832 = load ptr, ptr %71, align 8, !tbaa !5
  %833 = getelementptr inbounds %"class.AST::ProcMacroDef", ptr %832, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %831, ptr noundef nonnull align 8 dereferenceable(8) %833)
          to label %834 unwind label %890

834:                                              ; preds = %826
  store i1 true, ptr %79, align 1
  %835 = getelementptr inbounds %"class.HIR::ProcMacro", ptr %74, i32 0, i32 2
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef @.str.6)
          to label %836 unwind label %894

836:                                              ; preds = %834
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #10
  store ptr %77, ptr %78, align 8
  %837 = load ptr, ptr %71, align 8, !tbaa !5
  %838 = getelementptr inbounds %"class.AST::ProcMacroDef", ptr %837, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(8) %838)
          to label %839 unwind label %898

839:                                              ; preds = %836
  %840 = getelementptr inbounds %"class.std::initializer_list", ptr %76, i32 0, i32 0
  store ptr %77, ptr %840, align 8, !tbaa !208
  %841 = getelementptr inbounds %"class.std::initializer_list", ptr %76, i32 0, i32 1
  store i64 1, ptr %841, align 8, !tbaa !210
  %842 = getelementptr inbounds { ptr, i64 }, ptr %76, i32 0, i32 0
  %843 = load ptr, ptr %842, align 8
  %844 = getelementptr inbounds { ptr, i64 }, ptr %76, i32 0, i32 1
  %845 = load i64, ptr %844, align 8
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %835, ptr noundef %75, ptr %843, i64 %845)
          to label %846 unwind label %909

846:                                              ; preds = %839
  %847 = getelementptr inbounds %"class.HIR::ProcMacro", ptr %74, i32 0, i32 3
  %848 = load ptr, ptr %71, align 8, !tbaa !5
  %849 = getelementptr inbounds %"class.AST::ProcMacroDef", ptr %848, i32 0, i32 3
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %847, ptr noundef nonnull align 8 dereferenceable(24) %849)
          to label %850 unwind label %913

850:                                              ; preds = %846
  store i1 false, ptr %79, align 1
  invoke void @_ZSt9make_pairIRK8RcStringN3HIR9ProcMacroEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.998") align 8 %73, ptr noundef nonnull align 8 dereferenceable(8) %828, ptr noundef nonnull align 8 dereferenceable(48) %74)
          to label %851 unwind label %917

851:                                              ; preds = %850
  %852 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_NS1_9ProcMacroEEEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(56) %73)
          to label %853 unwind label %921

853:                                              ; preds = %851
  %854 = getelementptr inbounds { ptr, i8 }, ptr %80, i32 0, i32 0
  %855 = extractvalue { ptr, i8 } %852, 0
  store ptr %855, ptr %854, align 8
  %856 = getelementptr inbounds { ptr, i8 }, ptr %80, i32 0, i32 1
  %857 = extractvalue { ptr, i8 } %852, 1
  store i8 %857, ptr %856, align 8
  call void @_ZNSt4pairI8RcStringN3HIR9ProcMacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %73) #10
  call void @_ZN3HIR9ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %74) #10
  %858 = getelementptr inbounds [1 x %class.RcString], ptr %77, i32 0, i32 0
  %859 = getelementptr inbounds %class.RcString, ptr %858, i64 1
  br label %860

860:                                              ; preds = %860, %853
  %861 = phi ptr [ %859, %853 ], [ %862, %860 ]
  %862 = getelementptr inbounds %class.RcString, ptr %861, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %862) #10
  %863 = icmp eq ptr %862, %858
  br i1 %863, label %864, label %860

864:                                              ; preds = %860
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %73) #10
  %865 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 13
  %866 = load ptr, ptr %71, align 8, !tbaa !5
  %867 = getelementptr inbounds %"class.AST::ProcMacroDef", ptr %866, i32 0, i32 1
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %865, ptr noundef nonnull align 8 dereferenceable(8) %867)
          to label %868 unwind label %886

868:                                              ; preds = %864
  br label %869

869:                                              ; preds = %868
  %870 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %871 unwind label %886

871:                                              ; preds = %869
  br i1 %870, label %872, label %940

872:                                              ; preds = %871
  %873 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %874 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %873, ptr noundef @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %875 unwind label %886

875:                                              ; preds = %872
  %876 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %874, ptr noundef @.str.71)
          to label %877 unwind label %886

877:                                              ; preds = %875
  %878 = load ptr, ptr %71, align 8, !tbaa !5
  %879 = getelementptr inbounds %"class.AST::ProcMacroDef", ptr %878, i32 0, i32 1
  %880 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %876, ptr noundef nonnull align 8 dereferenceable(8) %879)
          to label %881 unwind label %886

881:                                              ; preds = %877
  %882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %880, ptr noundef @_ZSt3decRSt8ios_base)
          to label %883 unwind label %886

883:                                              ; preds = %881
  %884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %882, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %885 unwind label %886

885:                                              ; preds = %883
  br label %940

886:                                              ; preds = %883, %881, %877, %875, %872, %869, %864, %820
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %6, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %7, align 4
  br label %945

890:                                              ; preds = %826
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %6, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %7, align 4
  br label %939

894:                                              ; preds = %834
  %895 = landingpad { ptr, i32 }
          cleanup
  %896 = extractvalue { ptr, i32 } %895, 0
  store ptr %896, ptr %6, align 8
  %897 = extractvalue { ptr, i32 } %895, 1
  store i32 %897, ptr %7, align 4
  br label %935

898:                                              ; preds = %836
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %6, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %7, align 4
  %902 = load ptr, ptr %78, align 8
  %903 = icmp eq ptr %77, %902
  br i1 %903, label %908, label %904

904:                                              ; preds = %904, %898
  %905 = phi ptr [ %902, %898 ], [ %906, %904 ]
  %906 = getelementptr inbounds %class.RcString, ptr %905, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %906) #10
  %907 = icmp eq ptr %906, %77
  br i1 %907, label %908, label %904

908:                                              ; preds = %904, %898
  br label %934

909:                                              ; preds = %839
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %6, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %7, align 4
  br label %926

913:                                              ; preds = %846
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %6, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %7, align 4
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %835) #10
  br label %926

917:                                              ; preds = %850
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %6, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %7, align 4
  br label %925

921:                                              ; preds = %851
  %922 = landingpad { ptr, i32 }
          cleanup
  %923 = extractvalue { ptr, i32 } %922, 0
  store ptr %923, ptr %6, align 8
  %924 = extractvalue { ptr, i32 } %922, 1
  store i32 %924, ptr %7, align 4
  call void @_ZNSt4pairI8RcStringN3HIR9ProcMacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %73) #10
  br label %925

925:                                              ; preds = %921, %917
  call void @_ZN3HIR9ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %74) #10
  br label %926

926:                                              ; preds = %925, %913, %909
  %927 = getelementptr inbounds [1 x %class.RcString], ptr %77, i32 0, i32 0
  %928 = getelementptr inbounds %class.RcString, ptr %927, i64 1
  br label %929

929:                                              ; preds = %929, %926
  %930 = phi ptr [ %928, %926 ], [ %931, %929 ]
  %931 = getelementptr inbounds %class.RcString, ptr %930, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %931) #10
  %932 = icmp eq ptr %931, %927
  br i1 %932, label %933, label %929

933:                                              ; preds = %929
  br label %934

934:                                              ; preds = %933, %908
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  br label %935

935:                                              ; preds = %934, %894
  %936 = load i1, ptr %79, align 1
  br i1 %936, label %937, label %938

937:                                              ; preds = %935
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %831) #10
  br label %938

938:                                              ; preds = %937, %935
  br label %939

939:                                              ; preds = %938, %890
  call void @llvm.lifetime.end.p0(i64 48, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %73) #10
  br label %945

940:                                              ; preds = %885, %871
  br label %941

941:                                              ; preds = %940
  br label %942

942:                                              ; preds = %941
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %943

943:                                              ; preds = %942
  %944 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST12ProcMacroDefESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  br label %815

945:                                              ; preds = %939, %886
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %1762

946:                                              ; preds = %817
  br label %977

947:                                              ; preds = %803
  br label %948

948:                                              ; preds = %947
  %949 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 13
  %950 = call noundef i64 @_ZNKSt6vectorIN3AST12ProcMacroDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %949) #10
  %951 = icmp eq i64 %950, 0
  br i1 %951, label %974, label %952

952:                                              ; preds = %948
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %953 unwind label %957

953:                                              ; preds = %952
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #10
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 1 dereferenceable(1) %83) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef %82)
          to label %954 unwind label %961

954:                                              ; preds = %953
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  %955 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %955, ptr noundef @.str.9)
          to label %956 unwind label %966

956:                                              ; preds = %954
  invoke void @__cxa_throw(ptr %955, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1769 unwind label %970

957:                                              ; preds = %952
  %958 = landingpad { ptr, i32 }
          cleanup
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %6, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %7, align 4
  br label %965

961:                                              ; preds = %953
  %962 = landingpad { ptr, i32 }
          cleanup
  %963 = extractvalue { ptr, i32 } %962, 0
  store ptr %963, ptr %6, align 8
  %964 = extractvalue { ptr, i32 } %962, 1
  store i32 %964, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #10
  br label %965

965:                                              ; preds = %961, %957
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  br label %1762

966:                                              ; preds = %954
  %967 = landingpad { ptr, i32 }
          cleanup
  %968 = extractvalue { ptr, i32 } %967, 0
  store ptr %968, ptr %6, align 8
  %969 = extractvalue { ptr, i32 } %967, 1
  store i32 %969, ptr %7, align 4
  call void @__cxa_free_exception(ptr %955) #10
  br label %1762

970:                                              ; preds = %956
  %971 = landingpad { ptr, i32 }
          cleanup
  %972 = extractvalue { ptr, i32 } %971, 0
  store ptr %972, ptr %6, align 8
  %973 = extractvalue { ptr, i32 } %971, 1
  store i32 %973, ptr %7, align 4
  br label %1762

974:                                              ; preds = %948
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976, %946
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %978 unwind label %989

978:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %979 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 1
  store ptr %979, ptr %85, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %980 = load ptr, ptr %85, align 8, !tbaa !5
  %981 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %980) #10
  %982 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.1002", ptr %86, i32 0, i32 0
  store ptr %981, ptr %982, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %983 = load ptr, ptr %85, align 8, !tbaa !5
  %984 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %983) #10
  %985 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.1002", ptr %87, i32 0, i32 0
  store ptr %984, ptr %985, align 8
  br label %986

986:                                              ; preds = %1074, %978
  %987 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  br i1 %987, label %993, label %988

988:                                              ; preds = %986
  store i32 34, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %1077

989:                                              ; preds = %977
  %990 = landingpad { ptr, i32 }
          cleanup
  %991 = extractvalue { ptr, i32 } %990, 0
  store ptr %991, ptr %6, align 8
  %992 = extractvalue { ptr, i32 } %990, 1
  store i32 %992, ptr %7, align 4
  br label %1761

993:                                              ; preds = %986
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  %994 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  store ptr %994, ptr %88, align 8, !tbaa !5
  %995 = load ptr, ptr %88, align 8, !tbaa !5
  %996 = getelementptr inbounds %"struct.std::pair.1003", ptr %995, i32 0, i32 1
  %997 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %996, i32 0, i32 0
  %998 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %997, ptr noundef @.str.6)
          to label %999 unwind label %1002

999:                                              ; preds = %993
  br i1 %998, label %1000, label %1001

1000:                                             ; preds = %999
  br label %1007

1001:                                             ; preds = %999
  call void @__assert_fail(ptr noundef @.str.72, ptr noundef @.str.5, i32 noundef 2430, ptr noundef @__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE) #11
  unreachable

1002:                                             ; preds = %1044, %1042, %1038, %1036, %1032, %1030, %1027, %1024, %993
  %1003 = landingpad { ptr, i32 }
          cleanup
  %1004 = extractvalue { ptr, i32 } %1003, 0
  store ptr %1004, ptr %6, align 8
  %1005 = extractvalue { ptr, i32 } %1003, 1
  store i32 %1005, ptr %7, align 4
  br label %1076

1006:                                             ; No predecessors!
  br label %1007

1007:                                             ; preds = %1006, %1000
  %1008 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 40, ptr %89) #10
  %1009 = load ptr, ptr %88, align 8, !tbaa !5
  %1010 = getelementptr inbounds %"struct.std::pair.1003", ptr %1009, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #10
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name)
          to label %1011 unwind label %1047

1011:                                             ; preds = %1007
  %1012 = load ptr, ptr %88, align 8, !tbaa !5
  %1013 = getelementptr inbounds %"struct.std::pair.1003", ptr %1012, i32 0, i32 1
  %1014 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %1013, i32 0, i32 1
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %92, ptr noundef nonnull align 8 dereferenceable(24) %1014)
          to label %1015 unwind label %1051

1015:                                             ; preds = %1011
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef %91, ptr noundef %92)
          to label %1016 unwind label %1055

1016:                                             ; preds = %1015
  invoke void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind writable sret(%"struct.std::pair.1010") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %1010, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %1017 unwind label %1059

1017:                                             ; preds = %1016
  %1018 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %1008, ptr noundef nonnull align 8 dereferenceable(40) %89)
          to label %1019 unwind label %1063

1019:                                             ; preds = %1017
  %1020 = getelementptr inbounds { ptr, i8 }, ptr %93, i32 0, i32 0
  %1021 = extractvalue { ptr, i8 } %1018, 0
  store ptr %1021, ptr %1020, align 8
  %1022 = getelementptr inbounds { ptr, i8 }, ptr %93, i32 0, i32 1
  %1023 = extractvalue { ptr, i8 } %1018, 1
  store i8 %1023, ptr %1022, align 8
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %89) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #10
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %89) #10
  br label %1024

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

1026:                                             ; preds = %1024
  br i1 %1025, label %1027, label %1071

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

1030:                                             ; preds = %1027
  %1031 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1029, ptr noundef @.str.73)
          to label %1032 unwind label %1002

1032:                                             ; preds = %1030
  %1033 = load ptr, ptr %88, align 8, !tbaa !5
  %1034 = getelementptr inbounds %"struct.std::pair.1003", ptr %1033, i32 0, i32 0
  %1035 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %1031, ptr noundef nonnull align 8 dereferenceable(32) %1034)
          to label %1036 unwind label %1002

1036:                                             ; preds = %1032
  %1037 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1035, ptr noundef @.str.74)
          to label %1038 unwind label %1002

1038:                                             ; preds = %1036
  %1039 = load ptr, ptr %88, align 8, !tbaa !5
  %1040 = getelementptr inbounds %"struct.std::pair.1003", ptr %1039, i32 0, i32 1
  %1041 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %1037, ptr noundef nonnull align 8 dereferenceable(32) %1040)
          to label %1042 unwind label %1002

1042:                                             ; preds = %1038
  %1043 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1041, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1044 unwind label %1002

1044:                                             ; preds = %1042
  %1045 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1043, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1046 unwind label %1002

1046:                                             ; preds = %1044
  br label %1071

1047:                                             ; preds = %1007
  %1048 = landingpad { ptr, i32 }
          cleanup
  %1049 = extractvalue { ptr, i32 } %1048, 0
  store ptr %1049, ptr %6, align 8
  %1050 = extractvalue { ptr, i32 } %1048, 1
  store i32 %1050, ptr %7, align 4
  br label %1070

1051:                                             ; preds = %1011
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %6, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %7, align 4
  br label %1069

1055:                                             ; preds = %1015
  %1056 = landingpad { ptr, i32 }
          cleanup
  %1057 = extractvalue { ptr, i32 } %1056, 0
  store ptr %1057, ptr %6, align 8
  %1058 = extractvalue { ptr, i32 } %1056, 1
  store i32 %1058, ptr %7, align 4
  br label %1068

1059:                                             ; preds = %1016
  %1060 = landingpad { ptr, i32 }
          cleanup
  %1061 = extractvalue { ptr, i32 } %1060, 0
  store ptr %1061, ptr %6, align 8
  %1062 = extractvalue { ptr, i32 } %1060, 1
  store i32 %1062, ptr %7, align 4
  br label %1067

1063:                                             ; preds = %1017
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %6, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %7, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %89) #10
  br label %1067

1067:                                             ; preds = %1063, %1059
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #10
  br label %1068

1068:                                             ; preds = %1067, %1055
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #10
  br label %1069

1069:                                             ; preds = %1068, %1051
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  br label %1070

1070:                                             ; preds = %1069, %1047
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %89) #10
  br label %1076

1071:                                             ; preds = %1046, %1026
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

1073:                                             ; preds = %1072
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  br label %1074

1074:                                             ; preds = %1073
  %1075 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  br label %986

1076:                                             ; preds = %1070, %1002
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %1760

1077:                                             ; preds = %988
  %1078 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 3
  %1079 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 15
  %1080 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1079, ptr noundef nonnull align 8 dereferenceable(24) %1078)
          to label %1081 unwind label %1092

1081:                                             ; preds = %1077
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #10
  %1082 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 4
  store ptr %1082, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  %1083 = load ptr, ptr %94, align 8, !tbaa !5
  %1084 = call ptr @_ZNSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1083) #10
  %1085 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.1012", ptr %95, i32 0, i32 0
  store ptr %1084, ptr %1085, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #10
  %1086 = load ptr, ptr %94, align 8, !tbaa !5
  %1087 = call ptr @_ZNSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1086) #10
  %1088 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.1012", ptr %96, i32 0, i32 0
  store ptr %1087, ptr %1088, align 8
  br label %1089

1089:                                             ; preds = %1326, %1081
  %1090 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3AST11ExternCrateEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #10
  br i1 %1090, label %1096, label %1091

1091:                                             ; preds = %1089
  store i32 38, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  br label %1362

1092:                                             ; preds = %1753, %1750, %1747, %1745, %1476, %1474, %1364, %1362, %1077
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %6, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %7, align 4
  br label %1760

1096:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %1097 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3AST11ExternCrateEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #10
  store ptr %1097, ptr %97, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  %1098 = load ptr, ptr %97, align 8, !tbaa !5
  %1099 = getelementptr inbounds %"struct.std::pair.1013", ptr %1098, i32 0, i32 1
  %1100 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1099, i32 0, i32 3
  %1101 = invoke noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1100)
          to label %1102 unwind label %1115

1102:                                             ; preds = %1096
  %1103 = getelementptr inbounds %"class.HIR::Crate", ptr %1101, i32 0, i32 14
  store ptr %1103, ptr %98, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  %1104 = load ptr, ptr %98, align 8, !tbaa !5
  %1105 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %1104) #10
  %1106 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.1007", ptr %99, i32 0, i32 0
  %1107 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.1008", ptr %1106, i32 0, i32 0
  store ptr %1105, ptr %1107, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #10
  %1108 = load ptr, ptr %98, align 8, !tbaa !5
  %1109 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1108) #10
  %1110 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.1007", ptr %100, i32 0, i32 0
  %1111 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.1008", ptr %1110, i32 0, i32 0
  store ptr %1109, ptr %1111, align 8
  br label %1112

1112:                                             ; preds = %1259, %1102
  %1113 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100) #10
  br i1 %1113, label %1119, label %1114

1114:                                             ; preds = %1112
  store i32 40, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %1263

1115:                                             ; preds = %1096
  %1116 = landingpad { ptr, i32 }
          cleanup
  %1117 = extractvalue { ptr, i32 } %1116, 0
  store ptr %1117, ptr %6, align 8
  %1118 = extractvalue { ptr, i32 } %1116, 1
  store i32 %1118, ptr %7, align 4
  br label %1262

1119:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  %1120 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  store ptr %1120, ptr %101, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  %1121 = load ptr, ptr %101, align 8, !tbaa !5
  %1122 = getelementptr inbounds %"struct.std::pair.1015", ptr %1121, i32 0, i32 0
  store ptr %1122, ptr %102, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #10
  %1123 = load ptr, ptr %101, align 8, !tbaa !5
  %1124 = getelementptr inbounds %"struct.std::pair.1015", ptr %1123, i32 0, i32 1
  store ptr %1124, ptr %103, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #10
  %1125 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 40, ptr %105) #10
  %1126 = load ptr, ptr %102, align 8, !tbaa !5
  %1127 = load ptr, ptr %103, align 8, !tbaa !5
  invoke void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSD_INSE_IT0_E4typeEE6__typeEEOSF_OSK_(ptr dead_on_unwind writable sret(%"struct.std::pair.1010") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %1126, ptr noundef nonnull align 8 dereferenceable(8) %1127)
          to label %1128 unwind label %1160

1128:                                             ; preds = %1119
  %1129 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %1125, ptr noundef nonnull align 8 dereferenceable(40) %105)
          to label %1130 unwind label %1164

1130:                                             ; preds = %1128
  store { ptr, i8 } %1129, ptr %106, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %104, ptr align 8 %106, i64 9, i1 false)
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %105) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %105) #10
  br label %1131

1131:                                             ; preds = %1130
  %1132 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1133 unwind label %1169

1133:                                             ; preds = %1131
  br i1 %1132, label %1134, label %1173

1134:                                             ; preds = %1133
  %1135 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %1136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1135, ptr noundef @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %1137 unwind label %1169

1137:                                             ; preds = %1134
  %1138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1136, ptr noundef @.str.75)
          to label %1139 unwind label %1169

1139:                                             ; preds = %1137
  %1140 = load ptr, ptr %101, align 8, !tbaa !5
  %1141 = getelementptr inbounds %"struct.std::pair.1015", ptr %1140, i32 0, i32 0
  %1142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %1138, ptr noundef nonnull align 8 dereferenceable(32) %1141)
          to label %1143 unwind label %1169

1143:                                             ; preds = %1139
  %1144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1142, ptr noundef @.str.74)
          to label %1145 unwind label %1169

1145:                                             ; preds = %1143
  %1146 = load ptr, ptr %101, align 8, !tbaa !5
  %1147 = getelementptr inbounds %"struct.std::pair.1015", ptr %1146, i32 0, i32 1
  %1148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %1144, ptr noundef nonnull align 8 dereferenceable(8) %1147)
          to label %1149 unwind label %1169

1149:                                             ; preds = %1145
  %1150 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1148, ptr noundef @.str.76)
          to label %1151 unwind label %1169

1151:                                             ; preds = %1149
  %1152 = load ptr, ptr %97, align 8, !tbaa !5
  %1153 = getelementptr inbounds %"struct.std::pair.1013", ptr %1152, i32 0, i32 0
  %1154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1150, ptr noundef nonnull align 8 dereferenceable(8) %1153)
          to label %1155 unwind label %1169

1155:                                             ; preds = %1151
  %1156 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1154, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1157 unwind label %1169

1157:                                             ; preds = %1155
  %1158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1156, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1159 unwind label %1169

1159:                                             ; preds = %1157
  br label %1173

1160:                                             ; preds = %1119
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %6, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %7, align 4
  br label %1168

1164:                                             ; preds = %1128
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %6, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %7, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %105) #10
  br label %1168

1168:                                             ; preds = %1164, %1160
  call void @llvm.lifetime.end.p0(i64 40, ptr %105) #10
  br label %1261

1169:                                             ; preds = %1235, %1182, %1157, %1155, %1151, %1149, %1145, %1143, %1139, %1137, %1134, %1131
  %1170 = landingpad { ptr, i32 }
          cleanup
  %1171 = extractvalue { ptr, i32 } %1170, 0
  store ptr %1171, ptr %6, align 8
  %1172 = extractvalue { ptr, i32 } %1170, 1
  store i32 %1172, ptr %7, align 4
  br label %1261

1173:                                             ; preds = %1159, %1133
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174
  %1176 = getelementptr inbounds %"struct.std::pair.1005", ptr %104, i32 0, i32 1
  %1177 = load i8, ptr %1176, align 8, !tbaa !211, !range !186, !noundef !187
  %1178 = trunc i8 %1177 to i1
  %1179 = zext i1 %1178 to i32
  %1180 = icmp eq i32 %1179, 1
  br i1 %1180, label %1181, label %1182

1181:                                             ; preds = %1175
  br label %1258

1182:                                             ; preds = %1175
  %1183 = getelementptr inbounds %"struct.std::pair.1005", ptr %104, i32 0, i32 0
  %1184 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1183) #10
  %1185 = getelementptr inbounds %"struct.std::pair.1015", ptr %1184, i32 0, i32 1
  %1186 = load ptr, ptr %103, align 8, !tbaa !5
  %1187 = invoke noundef zeroext i1 @_ZNK3HIR10SimplePatheqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1185, ptr noundef nonnull align 8 dereferenceable(8) %1186)
          to label %1188 unwind label %1169

1188:                                             ; preds = %1182
  br i1 %1187, label %1189, label %1190

1189:                                             ; preds = %1188
  br label %1257

1190:                                             ; preds = %1188
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #10
  %1191 = getelementptr inbounds %"struct.std::pair.1005", ptr %104, i32 0, i32 0
  %1192 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1191) #10
  %1193 = getelementptr inbounds %"struct.std::pair.1015", ptr %1192, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr %108) #10
  %1194 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1193)
          to label %1195 unwind label %1215

1195:                                             ; preds = %1190
  %1196 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 0
  %1197 = extractvalue { ptr, i64 } %1194, 0
  store ptr %1197, ptr %1196, align 8
  %1198 = getelementptr inbounds { ptr, i64 }, ptr %107, i32 0, i32 1
  %1199 = extractvalue { ptr, i64 } %1194, 1
  store i64 %1199, ptr %1198, align 8
  %1200 = invoke noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %107)
          to label %1201 unwind label %1215

1201:                                             ; preds = %1195
  br i1 %1200, label %1202, label %1212

1202:                                             ; preds = %1201
  %1203 = load ptr, ptr %103, align 8, !tbaa !5
  %1204 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %1203)
          to label %1205 unwind label %1219

1205:                                             ; preds = %1202
  %1206 = getelementptr inbounds { ptr, i64 }, ptr %108, i32 0, i32 0
  %1207 = extractvalue { ptr, i64 } %1204, 0
  store ptr %1207, ptr %1206, align 8
  %1208 = getelementptr inbounds { ptr, i64 }, ptr %108, i32 0, i32 1
  %1209 = extractvalue { ptr, i64 } %1204, 1
  store i64 %1209, ptr %1208, align 8
  %1210 = invoke noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %108)
          to label %1211 unwind label %1219

1211:                                             ; preds = %1205
  br label %1212

1212:                                             ; preds = %1211, %1201
  %1213 = phi i1 [ false, %1201 ], [ %1210, %1211 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #10
  br i1 %1213, label %1214, label %1224

1214:                                             ; preds = %1212
  br label %1256

1215:                                             ; preds = %1195, %1190
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %6, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %7, align 4
  br label %1223

1219:                                             ; preds = %1205, %1202
  %1220 = landingpad { ptr, i32 }
          cleanup
  %1221 = extractvalue { ptr, i32 } %1220, 0
  store ptr %1221, ptr %6, align 8
  %1222 = extractvalue { ptr, i32 } %1220, 1
  store i32 %1222, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #10
  br label %1223

1223:                                             ; preds = %1219, %1215
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #10
  br label %1261

1224:                                             ; preds = %1212
  br label %1225

1225:                                             ; preds = %1224
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #10
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %1226 unwind label %1236

1226:                                             ; preds = %1225
  call void @llvm.lifetime.start.p0(i64 24, ptr %111) #10
  %1227 = getelementptr inbounds %class.anon.1017, ptr %111, i32 0, i32 0
  %1228 = load ptr, ptr %102, align 8, !tbaa !5
  store ptr %1228, ptr %1227, align 8, !tbaa !5
  %1229 = getelementptr inbounds %class.anon.1017, ptr %111, i32 0, i32 1
  %1230 = load ptr, ptr %103, align 8, !tbaa !5
  store ptr %1230, ptr %1229, align 8, !tbaa !5
  %1231 = getelementptr inbounds %class.anon.1017, ptr %111, i32 0, i32 2
  store ptr %104, ptr %1231, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(24) %111)
          to label %1232 unwind label %1240

1232:                                             ; preds = %1226
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %109, i32 noundef 0, ptr noundef %110)
          to label %1233 unwind label %1244

1233:                                             ; preds = %1232
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  %1234 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1234, ptr noundef @.str.12)
          to label %1235 unwind label %1250

1235:                                             ; preds = %1233
  invoke void @__cxa_throw(ptr %1234, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1769 unwind label %1169

1236:                                             ; preds = %1225
  %1237 = landingpad { ptr, i32 }
          cleanup
  %1238 = extractvalue { ptr, i32 } %1237, 0
  store ptr %1238, ptr %6, align 8
  %1239 = extractvalue { ptr, i32 } %1237, 1
  store i32 %1239, ptr %7, align 4
  br label %1249

1240:                                             ; preds = %1226
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %6, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %7, align 4
  br label %1248

1244:                                             ; preds = %1232
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %6, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  br label %1248

1248:                                             ; preds = %1244, %1240
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #10
  br label %1249

1249:                                             ; preds = %1248, %1236
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  br label %1261

1250:                                             ; preds = %1233
  %1251 = landingpad { ptr, i32 }
          cleanup
  %1252 = extractvalue { ptr, i32 } %1251, 0
  store ptr %1252, ptr %6, align 8
  %1253 = extractvalue { ptr, i32 } %1251, 1
  store i32 %1253, ptr %7, align 4
  call void @__cxa_free_exception(ptr %1234) #10
  br label %1261

1254:                                             ; No predecessors!
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255, %1214
  br label %1257

1257:                                             ; preds = %1256, %1189
  br label %1258

1258:                                             ; preds = %1257, %1181
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  br label %1259

1259:                                             ; preds = %1258
  %1260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  br label %1112

1261:                                             ; preds = %1250, %1249, %1223, %1169, %1168
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  br label %1262

1262:                                             ; preds = %1261, %1115
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %1361

1263:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #10
  %1264 = load ptr, ptr %97, align 8, !tbaa !5
  %1265 = getelementptr inbounds %"struct.std::pair.1013", ptr %1264, i32 0, i32 1
  %1266 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1265, i32 0, i32 2
  %1267 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32) %1266, i8 noundef signext 47, i64 noundef -1) #10
  store i64 %1267, ptr %112, align 8, !tbaa !215
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #10
  %1268 = load ptr, ptr %97, align 8, !tbaa !5
  %1269 = getelementptr inbounds %"struct.std::pair.1013", ptr %1268, i32 0, i32 1
  %1270 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1269, i32 0, i32 2
  %1271 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32) %1270, i8 noundef signext 92, i64 noundef -1) #10
  store i64 %1271, ptr %113, align 8, !tbaa !215
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #10
  %1272 = load i64, ptr %112, align 8, !tbaa !215
  %1273 = icmp eq i64 %1272, -1
  br i1 %1273, label %1274, label %1276

1274:                                             ; preds = %1263
  %1275 = load i64, ptr %113, align 8, !tbaa !215
  br label %1287

1276:                                             ; preds = %1263
  %1277 = load i64, ptr %113, align 8, !tbaa !215
  %1278 = icmp eq i64 %1277, -1
  br i1 %1278, label %1279, label %1281

1279:                                             ; preds = %1276
  %1280 = load i64, ptr %112, align 8, !tbaa !215
  br label %1285

1281:                                             ; preds = %1276
  %1282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %113)
          to label %1283 unwind label %1328

1283:                                             ; preds = %1281
  %1284 = load i64, ptr %1282, align 8, !tbaa !215
  br label %1285

1285:                                             ; preds = %1283, %1279
  %1286 = phi i64 [ %1280, %1279 ], [ %1284, %1283 ]
  br label %1287

1287:                                             ; preds = %1285, %1274
  %1288 = phi i64 [ %1275, %1274 ], [ %1286, %1285 ]
  store i64 %1288, ptr %114, align 8, !tbaa !215
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #10
  %1289 = load i64, ptr %114, align 8, !tbaa !215
  %1290 = icmp eq i64 %1289, -1
  br i1 %1290, label %1291, label %1296

1291:                                             ; preds = %1287
  %1292 = load ptr, ptr %97, align 8, !tbaa !5
  %1293 = getelementptr inbounds %"struct.std::pair.1013", ptr %1292, i32 0, i32 1
  %1294 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1293, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %1294)
          to label %1295 unwind label %1332

1295:                                             ; preds = %1291
  br label %1303

1296:                                             ; preds = %1287
  %1297 = load ptr, ptr %97, align 8, !tbaa !5
  %1298 = getelementptr inbounds %"struct.std::pair.1013", ptr %1297, i32 0, i32 1
  %1299 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1298, i32 0, i32 2
  %1300 = load i64, ptr %114, align 8, !tbaa !215
  %1301 = add i64 %1300, 1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %1299, i64 noundef %1301, i64 noundef -1)
          to label %1302 unwind label %1332

1302:                                             ; preds = %1296
  br label %1303

1303:                                             ; preds = %1302, %1295
  %1304 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 16
  call void @llvm.lifetime.start.p0(i64 80, ptr %116) #10
  %1305 = load ptr, ptr %97, align 8, !tbaa !5
  %1306 = getelementptr inbounds %"struct.std::pair.1013", ptr %1305, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 72, ptr %117) #10
  %1307 = getelementptr inbounds %"class.HIR::ExternCrate", ptr %117, i32 0, i32 0
  %1308 = load ptr, ptr %97, align 8, !tbaa !5
  %1309 = getelementptr inbounds %"struct.std::pair.1013", ptr %1308, i32 0, i32 1
  %1310 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1309, i32 0, i32 3
  invoke void @_ZN3HIR8CratePtrC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %1307, ptr noundef nonnull align 8 dereferenceable(8) %1310)
          to label %1311 unwind label %1336

1311:                                             ; preds = %1303
  %1312 = getelementptr inbounds %"class.HIR::ExternCrate", ptr %117, i32 0, i32 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1312, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %1313 unwind label %1340

1313:                                             ; preds = %1311
  %1314 = getelementptr inbounds %"class.HIR::ExternCrate", ptr %117, i32 0, i32 2
  %1315 = load ptr, ptr %97, align 8, !tbaa !5
  %1316 = getelementptr inbounds %"struct.std::pair.1013", ptr %1315, i32 0, i32 1
  %1317 = getelementptr inbounds %"class.AST::ExternCrate", ptr %1316, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1314, ptr noundef nonnull align 8 dereferenceable(32) %1317)
          to label %1318 unwind label %1344

1318:                                             ; preds = %1313
  invoke void @_ZSt9make_pairIRK8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind writable sret(%"struct.std::pair.1023") align 8 %116, ptr noundef nonnull align 8 dereferenceable(8) %1306, ptr noundef nonnull align 8 dereferenceable(72) %117)
          to label %1319 unwind label %1349

1319:                                             ; preds = %1318
  %1320 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56) %1304, ptr noundef nonnull align 8 dereferenceable(80) %116)
          to label %1321 unwind label %1353

1321:                                             ; preds = %1319
  %1322 = getelementptr inbounds { ptr, i8 }, ptr %118, i32 0, i32 0
  %1323 = extractvalue { ptr, i8 } %1320, 0
  store ptr %1323, ptr %1322, align 8
  %1324 = getelementptr inbounds { ptr, i8 }, ptr %118, i32 0, i32 1
  %1325 = extractvalue { ptr, i8 } %1320, 1
  store i8 %1325, ptr %1324, align 8
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %116) #10
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %117) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %117) #10
  call void @llvm.lifetime.end.p0(i64 80, ptr %116) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  br label %1326

1326:                                             ; preds = %1321
  %1327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringN3AST11ExternCrateEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #10
  br label %1089

1328:                                             ; preds = %1281
  %1329 = landingpad { ptr, i32 }
          cleanup
  %1330 = extractvalue { ptr, i32 } %1329, 0
  store ptr %1330, ptr %6, align 8
  %1331 = extractvalue { ptr, i32 } %1329, 1
  store i32 %1331, ptr %7, align 4
  br label %1360

1332:                                             ; preds = %1296, %1291
  %1333 = landingpad { ptr, i32 }
          cleanup
  %1334 = extractvalue { ptr, i32 } %1333, 0
  store ptr %1334, ptr %6, align 8
  %1335 = extractvalue { ptr, i32 } %1333, 1
  store i32 %1335, ptr %7, align 4
  br label %1359

1336:                                             ; preds = %1303
  %1337 = landingpad { ptr, i32 }
          cleanup
  %1338 = extractvalue { ptr, i32 } %1337, 0
  store ptr %1338, ptr %6, align 8
  %1339 = extractvalue { ptr, i32 } %1337, 1
  store i32 %1339, ptr %7, align 4
  br label %1358

1340:                                             ; preds = %1311
  %1341 = landingpad { ptr, i32 }
          cleanup
  %1342 = extractvalue { ptr, i32 } %1341, 0
  store ptr %1342, ptr %6, align 8
  %1343 = extractvalue { ptr, i32 } %1341, 1
  store i32 %1343, ptr %7, align 4
  br label %1348

1344:                                             ; preds = %1313
  %1345 = landingpad { ptr, i32 }
          cleanup
  %1346 = extractvalue { ptr, i32 } %1345, 0
  store ptr %1346, ptr %6, align 8
  %1347 = extractvalue { ptr, i32 } %1345, 1
  store i32 %1347, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1312) #10
  br label %1348

1348:                                             ; preds = %1344, %1340
  call void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %1307) #10
  br label %1358

1349:                                             ; preds = %1318
  %1350 = landingpad { ptr, i32 }
          cleanup
  %1351 = extractvalue { ptr, i32 } %1350, 0
  store ptr %1351, ptr %6, align 8
  %1352 = extractvalue { ptr, i32 } %1350, 1
  store i32 %1352, ptr %7, align 4
  br label %1357

1353:                                             ; preds = %1319
  %1354 = landingpad { ptr, i32 }
          cleanup
  %1355 = extractvalue { ptr, i32 } %1354, 0
  store ptr %1355, ptr %6, align 8
  %1356 = extractvalue { ptr, i32 } %1354, 1
  store i32 %1356, ptr %7, align 4
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %116) #10
  br label %1357

1357:                                             ; preds = %1353, %1349
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %117) #10
  br label %1358

1358:                                             ; preds = %1357, %1348, %1336
  call void @llvm.lifetime.end.p0(i64 72, ptr %117) #10
  call void @llvm.lifetime.end.p0(i64 80, ptr %116) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #10
  br label %1359

1359:                                             ; preds = %1358, %1332
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #10
  br label %1360

1360:                                             ; preds = %1359, %1328
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  br label %1361

1361:                                             ; preds = %1360, %1262
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  br label %1760

1362:                                             ; preds = %1091
  %1363 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944) %5, ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef @.str.77)
          to label %1364 unwind label %1092

1364:                                             ; preds = %1362
  %1365 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR10SimplePathaSERKS0_(ptr noundef nonnull align 8 dereferenceable(8) @path_Sized, ptr noundef nonnull align 8 dereferenceable(8) %1363)
          to label %1366 unwind label %1092

1366:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 216, ptr %119) #10
  %1367 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 2
  %1368 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 0
  invoke void @_ZN3HIR8ItemPathC2ERK8RcString(ptr noundef nonnull align 8 dereferenceable(56) %120, ptr noundef nonnull align 8 dereferenceable(8) %1368)
          to label %1369 unwind label %1382

1369:                                             ; preds = %1366
  call void @llvm.memset.p0.i64(ptr align 8 %121, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #10
  invoke void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind writable sret(%"class.HIR::Module") align 8 %119, ptr noundef nonnull align 8 dereferenceable(480) %1367, ptr noundef byval(%"class.HIR::ItemPath") align 8 %120, ptr noundef %121)
          to label %1370 unwind label %1386

1370:                                             ; preds = %1369
  %1371 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 2
  %1372 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR6ModuleaSEOS0_(ptr noundef nonnull align 8 dereferenceable(216) %1371, ptr noundef nonnull align 8 dereferenceable(216) %119) #10
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %119) #10
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #10
  call void @llvm.lifetime.end.p0(i64 216, ptr %119) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  store ptr %9, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  %1373 = load ptr, ptr %122, align 8, !tbaa !5
  %1374 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1373) #10
  %1375 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.986", ptr %123, i32 0, i32 0
  store ptr %1374, ptr %1375, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %1376 = load ptr, ptr %122, align 8, !tbaa !5
  %1377 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1376) #10
  %1378 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.986", ptr %124, i32 0, i32 0
  store ptr %1377, ptr %1378, align 8
  br label %1379

1379:                                             ; preds = %1452, %1370
  %1380 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  br i1 %1380, label %1391, label %1381

1381:                                             ; preds = %1379
  store i32 46, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  br label %1474

1382:                                             ; preds = %1366
  %1383 = landingpad { ptr, i32 }
          cleanup
  %1384 = extractvalue { ptr, i32 } %1383, 0
  store ptr %1384, ptr %6, align 8
  %1385 = extractvalue { ptr, i32 } %1383, 1
  store i32 %1385, ptr %7, align 4
  br label %1390

1386:                                             ; preds = %1369
  %1387 = landingpad { ptr, i32 }
          cleanup
  %1388 = extractvalue { ptr, i32 } %1387, 0
  store ptr %1388, ptr %6, align 8
  %1389 = extractvalue { ptr, i32 } %1387, 1
  store i32 %1389, ptr %7, align 4
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #10
  br label %1390

1390:                                             ; preds = %1386, %1382
  call void @llvm.lifetime.end.p0(i64 216, ptr %119) #10
  br label %1760

1391:                                             ; preds = %1379
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #10
  %1392 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  store ptr %1392, ptr %125, align 8, !tbaa !5
  %1393 = load ptr, ptr %125, align 8, !tbaa !5
  %1394 = getelementptr inbounds %"struct.std::pair.990", ptr %1393, i32 0, i32 1
  %1395 = invoke noundef zeroext i1 @_ZNK3HIR9MacroItem13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %1394)
          to label %1396 unwind label %1414

1396:                                             ; preds = %1391
  br i1 %1395, label %1397, label %1434

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397
  %1399 = load ptr, ptr %125, align 8, !tbaa !5
  %1400 = getelementptr inbounds %"struct.std::pair.990", ptr %1399, i32 0, i32 1
  %1401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %1400)
          to label %1402 unwind label %1414

1402:                                             ; preds = %1398
  %1403 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1401)
          to label %1404 unwind label %1414

1404:                                             ; preds = %1402
  %1405 = getelementptr inbounds %class.MacroRules, ptr %1403, i32 0, i32 6
  %1406 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %1405) #10
  br i1 %1406, label %1407, label %1431

1407:                                             ; preds = %1404
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %1408 unwind label %1418

1408:                                             ; preds = %1407
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %1409 = getelementptr inbounds %class.anon.1025, ptr %128, i32 0, i32 0
  %1410 = load ptr, ptr %125, align 8, !tbaa !5
  store ptr %1410, ptr %1409, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(8) %128) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef %127)
          to label %1411 unwind label %1422

1411:                                             ; preds = %1408
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  %1412 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1412, ptr noundef @.str.9)
          to label %1413 unwind label %1427

1413:                                             ; preds = %1411
  invoke void @__cxa_throw(ptr %1412, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1769 unwind label %1414

1414:                                             ; preds = %1413, %1402, %1398, %1391
  %1415 = landingpad { ptr, i32 }
          cleanup
  %1416 = extractvalue { ptr, i32 } %1415, 0
  store ptr %1416, ptr %6, align 8
  %1417 = extractvalue { ptr, i32 } %1415, 1
  store i32 %1417, ptr %7, align 4
  br label %1473

1418:                                             ; preds = %1407
  %1419 = landingpad { ptr, i32 }
          cleanup
  %1420 = extractvalue { ptr, i32 } %1419, 0
  store ptr %1420, ptr %6, align 8
  %1421 = extractvalue { ptr, i32 } %1419, 1
  store i32 %1421, ptr %7, align 4
  br label %1426

1422:                                             ; preds = %1408
  %1423 = landingpad { ptr, i32 }
          cleanup
  %1424 = extractvalue { ptr, i32 } %1423, 0
  store ptr %1424, ptr %6, align 8
  %1425 = extractvalue { ptr, i32 } %1423, 1
  store i32 %1425, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #10
  br label %1426

1426:                                             ; preds = %1422, %1418
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  br label %1473

1427:                                             ; preds = %1411
  %1428 = landingpad { ptr, i32 }
          cleanup
  %1429 = extractvalue { ptr, i32 } %1428, 0
  store ptr %1429, ptr %6, align 8
  %1430 = extractvalue { ptr, i32 } %1428, 1
  store i32 %1430, ptr %7, align 4
  call void @__cxa_free_exception(ptr %1412) #10
  br label %1473

1431:                                             ; preds = %1404
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433, %1396
  %1435 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 2
  %1436 = getelementptr inbounds %"class.HIR::Module", ptr %1435, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #10
  %1437 = load ptr, ptr %125, align 8, !tbaa !5
  %1438 = getelementptr inbounds %"struct.std::pair.990", ptr %1437, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #10
  call void @llvm.lifetime.start.p0(i64 72, ptr %131) #10
  %1439 = getelementptr inbounds %"struct.HIR::VisEnt.802", ptr %131, i32 0, i32 0
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %1439)
          to label %1440 unwind label %1454

1440:                                             ; preds = %1434
  %1441 = getelementptr inbounds %"struct.HIR::VisEnt.802", ptr %131, i32 0, i32 1
  %1442 = load ptr, ptr %125, align 8, !tbaa !5
  %1443 = getelementptr inbounds %"struct.std::pair.990", ptr %1442, i32 0, i32 1
  call void @_ZN3HIR9MacroItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56) %1441, ptr noundef nonnull align 8 dereferenceable(56) %1443) #10
  invoke void @_Z15make_unique_ptrIN3HIR6VisEntINS0_9MacroItemEEEESt10unique_ptrIT_St14default_deleteIS5_EEOS5_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.794") align 8 %130, ptr noundef nonnull align 8 dereferenceable(72) %131)
          to label %1444 unwind label %1458

1444:                                             ; preds = %1440
  invoke void @_ZSt9make_pairIRK8RcStringSt10unique_ptrIN3HIR6VisEntINS4_9MacroItemEEESt14default_deleteIS7_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSC_INSD_IT0_E4typeEE6__typeEEOSE_OSJ_(ptr dead_on_unwind writable sret(%"struct.std::pair.792") align 8 %129, ptr noundef nonnull align 8 dereferenceable(8) %1438, ptr noundef nonnull align 8 dereferenceable(8) %130)
          to label %1445 unwind label %1462

1445:                                             ; preds = %1444
  %1446 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %1436, ptr noundef nonnull align 8 dereferenceable(16) %129)
          to label %1447 unwind label %1466

1447:                                             ; preds = %1445
  %1448 = getelementptr inbounds { ptr, i8 }, ptr %132, i32 0, i32 0
  %1449 = extractvalue { ptr, i8 } %1446, 0
  store ptr %1449, ptr %1448, align 8
  %1450 = getelementptr inbounds { ptr, i8 }, ptr %132, i32 0, i32 1
  %1451 = extractvalue { ptr, i8 } %1446, 1
  store i8 %1451, ptr %1450, align 8
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %129) #10
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #10
  call void @_ZN3HIR6VisEntINS_9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %131) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  br label %1452

1452:                                             ; preds = %1447
  %1453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  br label %1379

1454:                                             ; preds = %1434
  %1455 = landingpad { ptr, i32 }
          cleanup
  %1456 = extractvalue { ptr, i32 } %1455, 0
  store ptr %1456, ptr %6, align 8
  %1457 = extractvalue { ptr, i32 } %1455, 1
  store i32 %1457, ptr %7, align 4
  br label %1472

1458:                                             ; preds = %1440
  %1459 = landingpad { ptr, i32 }
          cleanup
  %1460 = extractvalue { ptr, i32 } %1459, 0
  store ptr %1460, ptr %6, align 8
  %1461 = extractvalue { ptr, i32 } %1459, 1
  store i32 %1461, ptr %7, align 4
  br label %1471

1462:                                             ; preds = %1444
  %1463 = landingpad { ptr, i32 }
          cleanup
  %1464 = extractvalue { ptr, i32 } %1463, 0
  store ptr %1464, ptr %6, align 8
  %1465 = extractvalue { ptr, i32 } %1463, 1
  store i32 %1465, ptr %7, align 4
  br label %1470

1466:                                             ; preds = %1445
  %1467 = landingpad { ptr, i32 }
          cleanup
  %1468 = extractvalue { ptr, i32 } %1467, 0
  store ptr %1468, ptr %6, align 8
  %1469 = extractvalue { ptr, i32 } %1467, 1
  store i32 %1469, ptr %7, align 4
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %129) #10
  br label %1470

1470:                                             ; preds = %1466, %1462
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #10
  br label %1471

1471:                                             ; preds = %1470, %1458
  call void @_ZN3HIR6VisEntINS_9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %131) #10
  br label %1472

1472:                                             ; preds = %1471, %1454
  call void @llvm.lifetime.end.p0(i64 72, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #10
  br label %1473

1473:                                             ; preds = %1472, %1427, %1426, %1414
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  br label %1760

1474:                                             ; preds = %1381
  %1475 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 2
  invoke void @_Z21LowerHIR_Module_ImplsRKN3AST6ModuleERN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(480) %1475, ptr noundef nonnull align 8 dereferenceable(944) %5)
          to label %1476 unwind label %1092

1476:                                             ; preds = %1474
  %1477 = getelementptr inbounds %"class.AST::Crate", ptr %1, i32 0, i32 18
  %1478 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1477, ptr noundef @.str.78)
          to label %1479 unwind label %1092

1479:                                             ; preds = %1476
  br i1 %1478, label %1480, label %1745

1480:                                             ; preds = %1479
  %1481 = load i32, ptr @gTargetVersion, align 4, !tbaa !216
  %1482 = icmp sle i32 %1481, 0
  br i1 %1482, label %1483, label %1744

1483:                                             ; preds = %1480
  %1484 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %134) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.79, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %1485 unwind label %1507

1485:                                             ; preds = %1483
  %1486 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %1484, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %1487 unwind label %1511

1487:                                             ; preds = %1485
  %1488 = icmp eq i64 %1486, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #10
  br i1 %1488, label %1489, label %1535

1489:                                             ; preds = %1487
  %1490 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 40, ptr %135) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %137) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef @.str.79, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %1491 unwind label %1516

1491:                                             ; preds = %1489
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %140) #10
  store ptr @.str.80, ptr %140, align 8, !tbaa !5
  %1492 = getelementptr inbounds ptr, ptr %140, i64 1
  store ptr @.str.81, ptr %1492, align 8, !tbaa !5
  %1493 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %139, i32 0, i32 0
  store ptr %140, ptr %1493, align 8, !tbaa !218
  %1494 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %139, i32 0, i32 1
  store i64 2, ptr %1494, align 8, !tbaa !220
  %1495 = getelementptr inbounds { ptr, i64 }, ptr %139, i32 0, i32 0
  %1496 = load ptr, ptr %1495, align 8
  %1497 = getelementptr inbounds { ptr, i64 }, ptr %139, i32 0, i32 1
  %1498 = load i64, ptr %1497, align 8
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %138, ptr noundef nonnull align 8 dereferenceable(944) %5, i1 noundef zeroext false, ptr %1496, i64 %1498)
          to label %1499 unwind label %1520

1499:                                             ; preds = %1491
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind writable sret(%"struct.std::pair.1010") align 8 %135, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %1500 unwind label %1524

1500:                                             ; preds = %1499
  %1501 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %1490, ptr noundef nonnull align 8 dereferenceable(40) %135)
          to label %1502 unwind label %1528

1502:                                             ; preds = %1500
  %1503 = getelementptr inbounds { ptr, i8 }, ptr %141, i32 0, i32 0
  %1504 = extractvalue { ptr, i8 } %1501, 0
  store ptr %1504, ptr %1503, align 8
  %1505 = getelementptr inbounds { ptr, i8 }, ptr %141, i32 0, i32 1
  %1506 = extractvalue { ptr, i8 } %1501, 1
  store i8 %1506, ptr %1505, align 8
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %135) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %135) #10
  br label %1535

1507:                                             ; preds = %1483
  %1508 = landingpad { ptr, i32 }
          cleanup
  %1509 = extractvalue { ptr, i32 } %1508, 0
  store ptr %1509, ptr %6, align 8
  %1510 = extractvalue { ptr, i32 } %1508, 1
  store i32 %1510, ptr %7, align 4
  br label %1515

1511:                                             ; preds = %1485
  %1512 = landingpad { ptr, i32 }
          cleanup
  %1513 = extractvalue { ptr, i32 } %1512, 0
  store ptr %1513, ptr %6, align 8
  %1514 = extractvalue { ptr, i32 } %1512, 1
  store i32 %1514, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #10
  br label %1515

1515:                                             ; preds = %1511, %1507
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #10
  br label %1760

1516:                                             ; preds = %1489
  %1517 = landingpad { ptr, i32 }
          cleanup
  %1518 = extractvalue { ptr, i32 } %1517, 0
  store ptr %1518, ptr %6, align 8
  %1519 = extractvalue { ptr, i32 } %1517, 1
  store i32 %1519, ptr %7, align 4
  br label %1534

1520:                                             ; preds = %1491
  %1521 = landingpad { ptr, i32 }
          cleanup
  %1522 = extractvalue { ptr, i32 } %1521, 0
  store ptr %1522, ptr %6, align 8
  %1523 = extractvalue { ptr, i32 } %1521, 1
  store i32 %1523, ptr %7, align 4
  br label %1533

1524:                                             ; preds = %1499
  %1525 = landingpad { ptr, i32 }
          cleanup
  %1526 = extractvalue { ptr, i32 } %1525, 0
  store ptr %1526, ptr %6, align 8
  %1527 = extractvalue { ptr, i32 } %1525, 1
  store i32 %1527, ptr %7, align 4
  br label %1532

1528:                                             ; preds = %1500
  %1529 = landingpad { ptr, i32 }
          cleanup
  %1530 = extractvalue { ptr, i32 } %1529, 0
  store ptr %1530, ptr %6, align 8
  %1531 = extractvalue { ptr, i32 } %1529, 1
  store i32 %1531, ptr %7, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %135) #10
  br label %1532

1532:                                             ; preds = %1528, %1524
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #10
  br label %1533

1533:                                             ; preds = %1532, %1520
  call void @llvm.lifetime.end.p0(i64 16, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #10
  br label %1534

1534:                                             ; preds = %1533, %1516
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %135) #10
  br label %1760

1535:                                             ; preds = %1502, %1487
  %1536 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %1537 unwind label %1559

1537:                                             ; preds = %1535
  %1538 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %1536, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1539 unwind label %1563

1539:                                             ; preds = %1537
  %1540 = icmp eq i64 %1538, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #10
  br i1 %1540, label %1541, label %1587

1541:                                             ; preds = %1539
  %1542 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 40, ptr %144) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %145) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %146) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %146)
          to label %1543 unwind label %1568

1543:                                             ; preds = %1541
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %149) #10
  store ptr @.str.80, ptr %149, align 8, !tbaa !5
  %1544 = getelementptr inbounds ptr, ptr %149, i64 1
  store ptr @.str.83, ptr %1544, align 8, !tbaa !5
  %1545 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %148, i32 0, i32 0
  store ptr %149, ptr %1545, align 8, !tbaa !218
  %1546 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %148, i32 0, i32 1
  store i64 2, ptr %1546, align 8, !tbaa !220
  %1547 = getelementptr inbounds { ptr, i64 }, ptr %148, i32 0, i32 0
  %1548 = load ptr, ptr %1547, align 8
  %1549 = getelementptr inbounds { ptr, i64 }, ptr %148, i32 0, i32 1
  %1550 = load i64, ptr %1549, align 8
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %147, ptr noundef nonnull align 8 dereferenceable(944) %5, i1 noundef zeroext false, ptr %1548, i64 %1550)
          to label %1551 unwind label %1572

1551:                                             ; preds = %1543
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind writable sret(%"struct.std::pair.1010") align 8 %144, ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %1552 unwind label %1576

1552:                                             ; preds = %1551
  %1553 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %1542, ptr noundef nonnull align 8 dereferenceable(40) %144)
          to label %1554 unwind label %1580

1554:                                             ; preds = %1552
  %1555 = getelementptr inbounds { ptr, i8 }, ptr %150, i32 0, i32 0
  %1556 = extractvalue { ptr, i8 } %1553, 0
  store ptr %1556, ptr %1555, align 8
  %1557 = getelementptr inbounds { ptr, i8 }, ptr %150, i32 0, i32 1
  %1558 = extractvalue { ptr, i8 } %1553, 1
  store i8 %1558, ptr %1557, align 8
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %144) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %149) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %146) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %144) #10
  br label %1587

1559:                                             ; preds = %1535
  %1560 = landingpad { ptr, i32 }
          cleanup
  %1561 = extractvalue { ptr, i32 } %1560, 0
  store ptr %1561, ptr %6, align 8
  %1562 = extractvalue { ptr, i32 } %1560, 1
  store i32 %1562, ptr %7, align 4
  br label %1567

1563:                                             ; preds = %1537
  %1564 = landingpad { ptr, i32 }
          cleanup
  %1565 = extractvalue { ptr, i32 } %1564, 0
  store ptr %1565, ptr %6, align 8
  %1566 = extractvalue { ptr, i32 } %1564, 1
  store i32 %1566, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #10
  br label %1567

1567:                                             ; preds = %1563, %1559
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #10
  br label %1760

1568:                                             ; preds = %1541
  %1569 = landingpad { ptr, i32 }
          cleanup
  %1570 = extractvalue { ptr, i32 } %1569, 0
  store ptr %1570, ptr %6, align 8
  %1571 = extractvalue { ptr, i32 } %1569, 1
  store i32 %1571, ptr %7, align 4
  br label %1586

1572:                                             ; preds = %1543
  %1573 = landingpad { ptr, i32 }
          cleanup
  %1574 = extractvalue { ptr, i32 } %1573, 0
  store ptr %1574, ptr %6, align 8
  %1575 = extractvalue { ptr, i32 } %1573, 1
  store i32 %1575, ptr %7, align 4
  br label %1585

1576:                                             ; preds = %1551
  %1577 = landingpad { ptr, i32 }
          cleanup
  %1578 = extractvalue { ptr, i32 } %1577, 0
  store ptr %1578, ptr %6, align 8
  %1579 = extractvalue { ptr, i32 } %1577, 1
  store i32 %1579, ptr %7, align 4
  br label %1584

1580:                                             ; preds = %1552
  %1581 = landingpad { ptr, i32 }
          cleanup
  %1582 = extractvalue { ptr, i32 } %1581, 0
  store ptr %1582, ptr %6, align 8
  %1583 = extractvalue { ptr, i32 } %1581, 1
  store i32 %1583, ptr %7, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %144) #10
  br label %1584

1584:                                             ; preds = %1580, %1576
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #10
  br label %1585

1585:                                             ; preds = %1584, %1572
  call void @llvm.lifetime.end.p0(i64 16, ptr %149) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #10
  br label %1586

1586:                                             ; preds = %1585, %1568
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %146) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %144) #10
  br label %1760

1587:                                             ; preds = %1554, %1539
  %1588 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %152) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %1589 unwind label %1611

1589:                                             ; preds = %1587
  %1590 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %1588, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1591 unwind label %1615

1591:                                             ; preds = %1589
  %1592 = icmp eq i64 %1590, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #10
  br i1 %1592, label %1593, label %1639

1593:                                             ; preds = %1591
  %1594 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 40, ptr %153) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %1595 unwind label %1620

1595:                                             ; preds = %1593
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %158) #10
  store ptr @.str.80, ptr %158, align 8, !tbaa !5
  %1596 = getelementptr inbounds ptr, ptr %158, i64 1
  store ptr @.str.85, ptr %1596, align 8, !tbaa !5
  %1597 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %157, i32 0, i32 0
  store ptr %158, ptr %1597, align 8, !tbaa !218
  %1598 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %157, i32 0, i32 1
  store i64 2, ptr %1598, align 8, !tbaa !220
  %1599 = getelementptr inbounds { ptr, i64 }, ptr %157, i32 0, i32 0
  %1600 = load ptr, ptr %1599, align 8
  %1601 = getelementptr inbounds { ptr, i64 }, ptr %157, i32 0, i32 1
  %1602 = load i64, ptr %1601, align 8
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %156, ptr noundef nonnull align 8 dereferenceable(944) %5, i1 noundef zeroext false, ptr %1600, i64 %1602)
          to label %1603 unwind label %1624

1603:                                             ; preds = %1595
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind writable sret(%"struct.std::pair.1010") align 8 %153, ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 8 dereferenceable(8) %156)
          to label %1604 unwind label %1628

1604:                                             ; preds = %1603
  %1605 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %1594, ptr noundef nonnull align 8 dereferenceable(40) %153)
          to label %1606 unwind label %1632

1606:                                             ; preds = %1604
  %1607 = getelementptr inbounds { ptr, i8 }, ptr %159, i32 0, i32 0
  %1608 = extractvalue { ptr, i8 } %1605, 0
  store ptr %1608, ptr %1607, align 8
  %1609 = getelementptr inbounds { ptr, i8 }, ptr %159, i32 0, i32 1
  %1610 = extractvalue { ptr, i8 } %1605, 1
  store i8 %1610, ptr %1609, align 8
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %153) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %153) #10
  br label %1639

1611:                                             ; preds = %1587
  %1612 = landingpad { ptr, i32 }
          cleanup
  %1613 = extractvalue { ptr, i32 } %1612, 0
  store ptr %1613, ptr %6, align 8
  %1614 = extractvalue { ptr, i32 } %1612, 1
  store i32 %1614, ptr %7, align 4
  br label %1619

1615:                                             ; preds = %1589
  %1616 = landingpad { ptr, i32 }
          cleanup
  %1617 = extractvalue { ptr, i32 } %1616, 0
  store ptr %1617, ptr %6, align 8
  %1618 = extractvalue { ptr, i32 } %1616, 1
  store i32 %1618, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #10
  br label %1619

1619:                                             ; preds = %1615, %1611
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #10
  br label %1760

1620:                                             ; preds = %1593
  %1621 = landingpad { ptr, i32 }
          cleanup
  %1622 = extractvalue { ptr, i32 } %1621, 0
  store ptr %1622, ptr %6, align 8
  %1623 = extractvalue { ptr, i32 } %1621, 1
  store i32 %1623, ptr %7, align 4
  br label %1638

1624:                                             ; preds = %1595
  %1625 = landingpad { ptr, i32 }
          cleanup
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %6, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %7, align 4
  br label %1637

1628:                                             ; preds = %1603
  %1629 = landingpad { ptr, i32 }
          cleanup
  %1630 = extractvalue { ptr, i32 } %1629, 0
  store ptr %1630, ptr %6, align 8
  %1631 = extractvalue { ptr, i32 } %1629, 1
  store i32 %1631, ptr %7, align 4
  br label %1636

1632:                                             ; preds = %1604
  %1633 = landingpad { ptr, i32 }
          cleanup
  %1634 = extractvalue { ptr, i32 } %1633, 0
  store ptr %1634, ptr %6, align 8
  %1635 = extractvalue { ptr, i32 } %1633, 1
  store i32 %1635, ptr %7, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %153) #10
  br label %1636

1636:                                             ; preds = %1632, %1628
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #10
  br label %1637

1637:                                             ; preds = %1636, %1624
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #10
  br label %1638

1638:                                             ; preds = %1637, %1620
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %153) #10
  br label %1760

1639:                                             ; preds = %1606, %1591
  %1640 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %161) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %1641 unwind label %1663

1641:                                             ; preds = %1639
  %1642 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %1640, ptr noundef nonnull align 8 dereferenceable(32) %160)
          to label %1643 unwind label %1667

1643:                                             ; preds = %1641
  %1644 = icmp eq i64 %1642, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #10
  br i1 %1644, label %1645, label %1691

1645:                                             ; preds = %1643
  %1646 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 40, ptr %162) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %1647 unwind label %1672

1647:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %167) #10
  store ptr @.str.80, ptr %167, align 8, !tbaa !5
  %1648 = getelementptr inbounds ptr, ptr %167, i64 1
  store ptr @.str.87, ptr %1648, align 8, !tbaa !5
  %1649 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %166, i32 0, i32 0
  store ptr %167, ptr %1649, align 8, !tbaa !218
  %1650 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %166, i32 0, i32 1
  store i64 2, ptr %1650, align 8, !tbaa !220
  %1651 = getelementptr inbounds { ptr, i64 }, ptr %166, i32 0, i32 0
  %1652 = load ptr, ptr %1651, align 8
  %1653 = getelementptr inbounds { ptr, i64 }, ptr %166, i32 0, i32 1
  %1654 = load i64, ptr %1653, align 8
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %165, ptr noundef nonnull align 8 dereferenceable(944) %5, i1 noundef zeroext false, ptr %1652, i64 %1654)
          to label %1655 unwind label %1676

1655:                                             ; preds = %1647
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind writable sret(%"struct.std::pair.1010") align 8 %162, ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %1656 unwind label %1680

1656:                                             ; preds = %1655
  %1657 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %1646, ptr noundef nonnull align 8 dereferenceable(40) %162)
          to label %1658 unwind label %1684

1658:                                             ; preds = %1656
  %1659 = getelementptr inbounds { ptr, i8 }, ptr %168, i32 0, i32 0
  %1660 = extractvalue { ptr, i8 } %1657, 0
  store ptr %1660, ptr %1659, align 8
  %1661 = getelementptr inbounds { ptr, i8 }, ptr %168, i32 0, i32 1
  %1662 = extractvalue { ptr, i8 } %1657, 1
  store i8 %1662, ptr %1661, align 8
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %162) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %167) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %162) #10
  br label %1691

1663:                                             ; preds = %1639
  %1664 = landingpad { ptr, i32 }
          cleanup
  %1665 = extractvalue { ptr, i32 } %1664, 0
  store ptr %1665, ptr %6, align 8
  %1666 = extractvalue { ptr, i32 } %1664, 1
  store i32 %1666, ptr %7, align 4
  br label %1671

1667:                                             ; preds = %1641
  %1668 = landingpad { ptr, i32 }
          cleanup
  %1669 = extractvalue { ptr, i32 } %1668, 0
  store ptr %1669, ptr %6, align 8
  %1670 = extractvalue { ptr, i32 } %1668, 1
  store i32 %1670, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #10
  br label %1671

1671:                                             ; preds = %1667, %1663
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #10
  br label %1760

1672:                                             ; preds = %1645
  %1673 = landingpad { ptr, i32 }
          cleanup
  %1674 = extractvalue { ptr, i32 } %1673, 0
  store ptr %1674, ptr %6, align 8
  %1675 = extractvalue { ptr, i32 } %1673, 1
  store i32 %1675, ptr %7, align 4
  br label %1690

1676:                                             ; preds = %1647
  %1677 = landingpad { ptr, i32 }
          cleanup
  %1678 = extractvalue { ptr, i32 } %1677, 0
  store ptr %1678, ptr %6, align 8
  %1679 = extractvalue { ptr, i32 } %1677, 1
  store i32 %1679, ptr %7, align 4
  br label %1689

1680:                                             ; preds = %1655
  %1681 = landingpad { ptr, i32 }
          cleanup
  %1682 = extractvalue { ptr, i32 } %1681, 0
  store ptr %1682, ptr %6, align 8
  %1683 = extractvalue { ptr, i32 } %1681, 1
  store i32 %1683, ptr %7, align 4
  br label %1688

1684:                                             ; preds = %1656
  %1685 = landingpad { ptr, i32 }
          cleanup
  %1686 = extractvalue { ptr, i32 } %1685, 0
  store ptr %1686, ptr %6, align 8
  %1687 = extractvalue { ptr, i32 } %1685, 1
  store i32 %1687, ptr %7, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %162) #10
  br label %1688

1688:                                             ; preds = %1684, %1680
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #10
  br label %1689

1689:                                             ; preds = %1688, %1676
  call void @llvm.lifetime.end.p0(i64 16, ptr %167) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #10
  br label %1690

1690:                                             ; preds = %1689, %1672
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %162) #10
  br label %1760

1691:                                             ; preds = %1658, %1643
  %1692 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %169) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %170) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %1693 unwind label %1715

1693:                                             ; preds = %1691
  %1694 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %1692, ptr noundef nonnull align 8 dereferenceable(32) %169)
          to label %1695 unwind label %1719

1695:                                             ; preds = %1693
  %1696 = icmp eq i64 %1694, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #10
  br i1 %1696, label %1697, label %1743

1697:                                             ; preds = %1695
  %1698 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 40, ptr %171) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %172) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %1699 unwind label %1724

1699:                                             ; preds = %1697
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %176) #10
  store ptr @.str.80, ptr %176, align 8, !tbaa !5
  %1700 = getelementptr inbounds ptr, ptr %176, i64 1
  store ptr @.str.89, ptr %1700, align 8, !tbaa !5
  %1701 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %175, i32 0, i32 0
  store ptr %176, ptr %1701, align 8, !tbaa !218
  %1702 = getelementptr inbounds %"class.std::initializer_list.1026", ptr %175, i32 0, i32 1
  store i64 2, ptr %1702, align 8, !tbaa !220
  %1703 = getelementptr inbounds { ptr, i64 }, ptr %175, i32 0, i32 0
  %1704 = load ptr, ptr %1703, align 8
  %1705 = getelementptr inbounds { ptr, i64 }, ptr %175, i32 0, i32 1
  %1706 = load i64, ptr %1705, align 8
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %174, ptr noundef nonnull align 8 dereferenceable(944) %5, i1 noundef zeroext false, ptr %1704, i64 %1706)
          to label %1707 unwind label %1728

1707:                                             ; preds = %1699
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind writable sret(%"struct.std::pair.1010") align 8 %171, ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(8) %174)
          to label %1708 unwind label %1732

1708:                                             ; preds = %1707
  %1709 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %1698, ptr noundef nonnull align 8 dereferenceable(40) %171)
          to label %1710 unwind label %1736

1710:                                             ; preds = %1708
  %1711 = getelementptr inbounds { ptr, i8 }, ptr %177, i32 0, i32 0
  %1712 = extractvalue { ptr, i8 } %1709, 0
  store ptr %1712, ptr %1711, align 8
  %1713 = getelementptr inbounds { ptr, i8 }, ptr %177, i32 0, i32 1
  %1714 = extractvalue { ptr, i8 } %1709, 1
  store i8 %1714, ptr %1713, align 8
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %171) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %174) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %176) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %171) #10
  br label %1743

1715:                                             ; preds = %1691
  %1716 = landingpad { ptr, i32 }
          cleanup
  %1717 = extractvalue { ptr, i32 } %1716, 0
  store ptr %1717, ptr %6, align 8
  %1718 = extractvalue { ptr, i32 } %1716, 1
  store i32 %1718, ptr %7, align 4
  br label %1723

1719:                                             ; preds = %1693
  %1720 = landingpad { ptr, i32 }
          cleanup
  %1721 = extractvalue { ptr, i32 } %1720, 0
  store ptr %1721, ptr %6, align 8
  %1722 = extractvalue { ptr, i32 } %1720, 1
  store i32 %1722, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #10
  br label %1723

1723:                                             ; preds = %1719, %1715
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #10
  br label %1760

1724:                                             ; preds = %1697
  %1725 = landingpad { ptr, i32 }
          cleanup
  %1726 = extractvalue { ptr, i32 } %1725, 0
  store ptr %1726, ptr %6, align 8
  %1727 = extractvalue { ptr, i32 } %1725, 1
  store i32 %1727, ptr %7, align 4
  br label %1742

1728:                                             ; preds = %1699
  %1729 = landingpad { ptr, i32 }
          cleanup
  %1730 = extractvalue { ptr, i32 } %1729, 0
  store ptr %1730, ptr %6, align 8
  %1731 = extractvalue { ptr, i32 } %1729, 1
  store i32 %1731, ptr %7, align 4
  br label %1741

1732:                                             ; preds = %1707
  %1733 = landingpad { ptr, i32 }
          cleanup
  %1734 = extractvalue { ptr, i32 } %1733, 0
  store ptr %1734, ptr %6, align 8
  %1735 = extractvalue { ptr, i32 } %1733, 1
  store i32 %1735, ptr %7, align 4
  br label %1740

1736:                                             ; preds = %1708
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %6, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %7, align 4
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %171) #10
  br label %1740

1740:                                             ; preds = %1736, %1732
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %174) #10
  br label %1741

1741:                                             ; preds = %1740, %1728
  call void @llvm.lifetime.end.p0(i64 16, ptr %176) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #10
  br label %1742

1742:                                             ; preds = %1741, %1724
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %171) #10
  br label %1760

1743:                                             ; preds = %1710, %1695
  br label %1744

1744:                                             ; preds = %1743, %1480
  br label %1745

1745:                                             ; preds = %1744, %1479
  %1746 = getelementptr inbounds %"class.HIR::Crate", ptr %5, i32 0, i32 2
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H17fix_macros_in_modE_1RN3HIR6ModuleE(ptr noundef nonnull align 8 dereferenceable(216) %1746)
          to label %1747 unwind label %1092

1747:                                             ; preds = %1745
  %1748 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) @g_core_crate, ptr noundef @.str.6)
          to label %1749 unwind label %1092

1749:                                             ; preds = %1747
  br i1 %1748, label %1750, label %1753

1750:                                             ; preds = %1749
  %1751 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) @g_core_crate, ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name)
          to label %1752 unwind label %1092

1752:                                             ; preds = %1750
  br label %1753

1753:                                             ; preds = %1752, %1749
  store ptr null, ptr @g_crate_ptr, align 8, !tbaa !5
  invoke void @_ZN3HIR5CrateC2EOS0_(ptr noundef nonnull align 8 dereferenceable(944) %178, ptr noundef nonnull align 8 dereferenceable(944) %5)
          to label %1754 unwind label %1092

1754:                                             ; preds = %1753
  invoke void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef %178)
          to label %1755 unwind label %1756

1755:                                             ; preds = %1754
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %178) #10
  store i32 1, ptr %21, align 4
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  call void @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %9) #10
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %5) #10
  call void @llvm.lifetime.end.p0(i64 944, ptr %5) #10
  ret void

1756:                                             ; preds = %1754
  %1757 = landingpad { ptr, i32 }
          cleanup
  %1758 = extractvalue { ptr, i32 } %1757, 0
  store ptr %1758, ptr %6, align 8
  %1759 = extractvalue { ptr, i32 } %1757, 1
  store i32 %1759, ptr %7, align 4
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %178) #10
  br label %1760

1760:                                             ; preds = %1756, %1742, %1723, %1690, %1671, %1638, %1619, %1586, %1567, %1534, %1515, %1473, %1390, %1361, %1092, %1076
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  br label %1761

1761:                                             ; preds = %1760, %989
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  br label %1762

1762:                                             ; preds = %1761, %970, %966, %965, %945, %819
  call void @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %9) #10
  br label %1763

1763:                                             ; preds = %1762, %204, %187
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %5) #10
  call void @llvm.lifetime.end.p0(i64 944, ptr %5) #10
  br label %1764

1764:                                             ; preds = %1763
  %1765 = load ptr, ptr %6, align 8
  %1766 = load i32, ptr %7, align 4
  %1767 = insertvalue { ptr, i32 } poison, ptr %1765, 0
  %1768 = insertvalue { ptr, i32 } %1767, i32 %1766, 1
  resume { ptr, i32 } %1768

1769:                                             ; preds = %1413, %1235, %956, %521, %470, %376
  unreachable
}

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

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

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

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef, ptr noundef) unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_2vEEOT_"(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 { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(64)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.988") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56)) #4

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_3vEEOT_"(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 ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRK8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.988") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56)) #4

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12cvt_macro_tyENS_11ProcMacroTyE(i32 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_NS1_9ProcMacroEEEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(56)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRK8RcStringN3HIR9ProcMacroEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.998") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(48)) #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR9ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(40)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1010") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSD_INSE_IT0_E4typeEE6__typeEEOSF_OSK_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1010") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #4

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

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

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #0

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(80)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRK8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1023") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(72)) #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #0 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #6

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_7vEEOT_"(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 @_ZSt9make_pairIRK8RcStringSt10unique_ptrIN3HIR6VisEntINS4_9MacroItemEEESt14default_deleteIS7_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSC_INSD_IT0_E4typeEE6__typeEEOSE_OSJ_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.792") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1010") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind noalias writable sret(%"struct.HIR::SimplePath") align 8, ptr noundef nonnull align 8 dereferenceable(944), i1 noundef zeroext, ptr, i64) #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H17fix_macros_in_modE_1RN3HIR6ModuleE(ptr noundef nonnull align 8 dereferenceable(216)) #4 align 2

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

declare void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944)) unnamed_addr #0 align 2

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

attributes #0 = { 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 #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind }
attributes #11 = { noreturn nounwind }
attributes #12 = { noreturn }

!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, !86, i64 788}
!10 = !{!"_ZTSN3AST5CrateE", !11, i64 0, !16, i64 24, !25, i64 72, !28, i64 552, !65, i64 576, !70, i64 624, !27, i64 672, !27, i64 680, !27, i64 688, !27, i64 696, !45, i64 704, !73, i64 712, !77, i64 736, !81, i64 760, !85, i64 784, !86, i64 788, !87, i64 792, !46, i64 800, !46, i64 832, !27, i64 864, !88, i64 872}
!11 = !{!"_ZTSN3AST13AttributeListE", !12, i64 0}
!12 = !{!"_ZTSSt6vectorIN3AST9AttributeESaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIN3AST9AttributeESaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !17, i64 0}
!17 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !18, i64 0}
!18 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !19, i64 0, !21, i64 8}
!19 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !20, i64 0}
!20 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!21 = !{!"_ZTSSt15_Rb_tree_header", !22, i64 0, !24, i64 32}
!22 = !{!"_ZTSSt18_Rb_tree_node_base", !23, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!23 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTSN3AST6ModuleE", !26, i64 0, !32, i64 32, !36, i64 56, !40, i64 80, !44, i64 104, !45, i64 176, !7, i64 177, !48, i64 184, !48, i64 240, !48, i64 296, !48, i64 352, !53, i64 408, !57, i64 432, !61, i64 456}
!26 = !{!"_ZTSN3AST12AbsolutePathE", !27, i64 0, !28, i64 8}
!27 = !{!"_ZTS8RcString", !6, i64 0}
!28 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!40 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!44 = !{!"_ZTSN3AST6Module8FileInfoE", !45, i64 0, !45, i64 1, !46, i64 8, !46, i64 40}
!45 = !{!"bool", !7, i64 0}
!46 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !47, i64 0, !24, i64 8, !7, i64 16}
!47 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!48 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !49, i64 0}
!49 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3AST6Module8IndexEntEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !50, i64 16, !24, i64 24, !51, i64 32, !6, i64 48}
!50 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!51 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !52, i64 0, !24, i64 8}
!52 = !{!"float", !7, i64 0}
!53 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !58, i64 0}
!58 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!61 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!65 = !{!"_ZTSSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !66, i64 0}
!66 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !67, i64 0}
!67 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !68, i64 0, !21, i64 8}
!68 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8RcStringEE", !69, i64 0}
!69 = !{!"_ZTSSt4lessI8RcStringE"}
!70 = !{!"_ZTSSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE", !71, i64 0}
!71 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !72, i64 0}
!72 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !68, i64 0, !21, i64 8}
!73 = !{!"_ZTSSt6vectorIN3AST8TestDescESaIS1_EE", !74, i64 0}
!74 = !{!"_ZTSSt12_Vector_baseIN3AST8TestDescESaIS1_EE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE12_Vector_implE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!77 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !78, i64 0}
!78 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!81 = !{!"_ZTSSt6vectorIN3AST12ProcMacroDefESaIS1_EE", !82, i64 0}
!82 = !{!"_ZTSSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE12_Vector_implE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!85 = !{!"_ZTSN3AST7EditionE", !7, i64 0}
!86 = !{!"_ZTSN3AST5Crate4TypeE", !7, i64 0}
!87 = !{!"_ZTSN3AST5Crate7LoadStdE", !7, i64 0}
!88 = !{!"_ZTSN3AST4PathE", !89, i64 8, !91, i64 56}
!89 = !{!"_ZTSN3AST4Path5ClassE", !90, i64 0, !7, i64 8}
!90 = !{!"_ZTSN3AST4Path5Class3TagE", !7, i64 0}
!91 = !{!"_ZTSN3AST4Path8BindingsE", !92, i64 0, !95, i64 64, !98, i64 128}
!92 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_ValueEEE", !26, i64 0, !93, i64 32}
!93 = !{!"_ZTSN3AST17PathBinding_ValueE", !94, i64 0, !7, i64 8}
!94 = !{!"_ZTSN3AST17PathBinding_Value3TagE", !7, i64 0}
!95 = !{!"_ZTSN3AST11PathBindingINS_16PathBinding_TypeEEE", !26, i64 0, !96, i64 32}
!96 = !{!"_ZTSN3AST16PathBinding_TypeE", !97, i64 0, !7, i64 8}
!97 = !{!"_ZTSN3AST16PathBinding_Type3TagE", !7, i64 0}
!98 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_MacroEEE", !26, i64 0, !99, i64 32}
!99 = !{!"_ZTSN3AST17PathBinding_MacroE", !100, i64 0, !7, i64 8}
!100 = !{!"_ZTSN3AST17PathBinding_Macro3TagE", !7, i64 0}
!101 = !{!10, !85, i64 784}
!102 = !{!103, !85, i64 8}
!103 = !{!"_ZTSN3HIR5CrateE", !27, i64 0, !85, i64 8, !104, i64 16, !119, i64 232, !123, i64 256, !127, i64 280, !137, i64 376, !141, i64 424, !144, i64 472, !147, i64 520, !151, i64 544, !159, i64 640, !162, i64 688, !28, i64 736, !165, i64 760, !28, i64 816, !167, i64 840, !169, i64 896, !77, i64 920}
!104 = !{!"_ZTSN3HIR6ModuleE", !105, i64 0, !109, i64 24, !111, i64 80, !113, i64 136, !115, i64 192}
!105 = !{!"_ZTSSt6vectorIN3HIR10SimplePathESaIS1_EE", !106, i64 0}
!106 = !{!"_ZTSSt12_Vector_baseIN3HIR10SimplePathESaIS1_EE", !107, i64 0}
!107 = !{!"_ZTSNSt12_Vector_baseIN3HIR10SimplePathESaIS1_EE12_Vector_implE", !108, i64 0}
!108 = !{!"_ZTSNSt12_Vector_baseIN3HIR10SimplePathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!109 = !{!"_ZTSSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE", !110, i64 0}
!110 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_St10unique_ptrIN3HIR6VisEntINS4_9ValueItemEEESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !50, i64 16, !24, i64 24, !51, i64 32, !6, i64 48}
!111 = !{!"_ZTSSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE", !112, i64 0}
!112 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_St10unique_ptrIN3HIR6VisEntINS4_8TypeItemEEESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !50, i64 16, !24, i64 24, !51, i64 32, !6, i64 48}
!113 = !{!"_ZTSSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE", !114, i64 0}
!114 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_St10unique_ptrIN3HIR6VisEntINS4_9MacroItemEEESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !50, i64 16, !24, i64 24, !51, i64 32, !6, i64 48}
!115 = !{!"_ZTSSt6vectorISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE", !116, i64 0}
!116 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE", !117, i64 0}
!117 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE12_Vector_implE", !118, i64 0}
!118 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!119 = !{!"_ZTSSt6vectorISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE", !120, i64 0}
!120 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE12_Vector_implE", !122, i64 0}
!122 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!123 = !{!"_ZTSSt6vectorISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE", !124, i64 0}
!124 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE12_Vector_implE", !126, i64 0}
!126 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!127 = !{!"_ZTSN3HIR5Crate9ImplGroupISt10unique_ptrINS_8TypeImplESt14default_deleteIS3_EEEE", !128, i64 0, !133, i64 48, !133, i64 72}
!128 = !{!"_ZTSSt3mapIN3HIR10SimplePathESt6vectorISt10unique_ptrINS0_8TypeImplESt14default_deleteIS4_EESaIS7_EESt4lessIS1_ESaISt4pairIKS1_S9_EEE", !129, i64 0}
!129 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorISt10unique_ptrINS0_8TypeImplESt14default_deleteIS6_EESaIS9_EEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE", !130, i64 0}
!130 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorISt10unique_ptrINS0_8TypeImplESt14default_deleteIS6_EESaIS9_EEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !131, i64 0, !21, i64 8}
!131 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !132, i64 0}
!132 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}
!133 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE", !134, i64 0}
!134 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE", !135, i64 0}
!135 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !136, i64 0}
!136 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!137 = !{!"_ZTSN3HIR13InherentCacheE", !138, i64 0}
!138 = !{!"_ZTSSt3mapI8RcStringN3HIR13InherentCache5InnerESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !139, i64 0}
!139 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR13InherentCache5InnerEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !140, i64 0}
!140 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR13InherentCache5InnerEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !68, i64 0, !21, i64 8}
!141 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupISt10unique_ptrINS0_9TraitImplESt14default_deleteIS5_EEEESt4lessIS1_ESaISt4pairIKS1_S9_EEE", !142, i64 0}
!142 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_9TraitImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE", !143, i64 0}
!143 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_9TraitImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !131, i64 0, !21, i64 8}
!144 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupISt10unique_ptrINS0_10MarkerImplESt14default_deleteIS5_EEEESt4lessIS1_ESaISt4pairIKS1_S9_EEE", !145, i64 0}
!145 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_10MarkerImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE", !146, i64 0}
!146 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_10MarkerImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !131, i64 0, !21, i64 8}
!147 = !{!"_ZTSSt6vectorIN3HIR14GlobalAssemblyESaIS1_EE", !148, i64 0}
!148 = !{!"_ZTSSt12_Vector_baseIN3HIR14GlobalAssemblyESaIS1_EE", !149, i64 0}
!149 = !{!"_ZTSNSt12_Vector_baseIN3HIR14GlobalAssemblyESaIS1_EE12_Vector_implE", !150, i64 0}
!150 = !{!"_ZTSNSt12_Vector_baseIN3HIR14GlobalAssemblyESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!151 = !{!"_ZTSN3HIR5Crate9ImplGroupIPKNS_8TypeImplEEE", !152, i64 0, !155, i64 48, !155, i64 72}
!152 = !{!"_ZTSSt3mapIN3HIR10SimplePathESt6vectorIPKNS0_8TypeImplESaIS5_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !153, i64 0}
!153 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorIPKNS0_8TypeImplESaIS7_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !154, i64 0}
!154 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorIPKNS0_8TypeImplESaIS7_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !131, i64 0, !21, i64 8}
!155 = !{!"_ZTSSt6vectorIPKN3HIR8TypeImplESaIS3_EE", !156, i64 0}
!156 = !{!"_ZTSSt12_Vector_baseIPKN3HIR8TypeImplESaIS3_EE", !157, i64 0}
!157 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR8TypeImplESaIS3_EE12_Vector_implE", !158, i64 0}
!158 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR8TypeImplESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!159 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupIPKNS0_9TraitImplEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !160, i64 0}
!160 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_9TraitImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !161, i64 0}
!161 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_9TraitImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !131, i64 0, !21, i64 8}
!162 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupIPKNS0_10MarkerImplEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !163, i64 0}
!163 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_10MarkerImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !164, i64 0}
!164 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_10MarkerImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !131, i64 0, !21, i64 8}
!165 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE", !166, i64 0}
!166 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3HIR10SimplePathEESaISA_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !50, i64 16, !24, i64 24, !51, i64 32, !6, i64 48}
!167 = !{!"_ZTSSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE", !168, i64 0}
!168 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3HIR11ExternCrateEESaIS5_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !50, i64 16, !24, i64 24, !51, i64 32, !6, i64 48}
!169 = !{!"_ZTSSt6vectorIN3HIR13ExternLibraryESaIS1_EE", !170, i64 0}
!170 = !{!"_ZTSSt12_Vector_baseIN3HIR13ExternLibraryESaIS1_EE", !171, i64 0}
!171 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ExternLibraryESaIS1_EE12_Vector_implE", !172, i64 0}
!172 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ExternLibraryESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!173 = !{!174, !45, i64 8}
!174 = !{!"_ZTS10MacroRules", !45, i64 8, !45, i64 9, !27, i64 16, !85, i64 24, !175, i64 32, !182, i64 40}
!175 = !{!"_ZTSN5Ident7HygieneE", !176, i64 0}
!176 = !{!"_ZTSSt10unique_ptrIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !177, i64 0}
!177 = !{!"_ZTSSt15__uniq_ptr_dataIN5Ident7Hygiene5InnerESt14default_deleteIS2_ELb1ELb1EE", !178, i64 0}
!178 = !{!"_ZTSSt15__uniq_ptr_implIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !179, i64 0}
!179 = !{!"_ZTSSt5tupleIJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !180, i64 0}
!180 = !{!"_ZTSSt11_Tuple_implILm0EJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !181, i64 0}
!181 = !{!"_ZTSSt10_Head_baseILm0EPN5Ident7Hygiene5InnerELb0EE", !6, i64 0}
!182 = !{!"_ZTSSt6vectorI13MacroRulesArmSaIS0_EE", !183, i64 0}
!183 = !{!"_ZTSSt12_Vector_baseI13MacroRulesArmSaIS0_EE", !184, i64 0}
!184 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE12_Vector_implE", !185, i64 0}
!185 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!186 = !{i8 0, i8 2}
!187 = !{}
!188 = !{!189, !45, i64 8}
!189 = !{!"_ZTSSt4pairISt17_Rb_tree_iteratorIS_IK8RcStringN3HIR9MacroItemEEEbE", !190, i64 0, !45, i64 8}
!190 = !{!"_ZTSSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEE", !6, i64 0}
!191 = !{!192, !192, i64 0}
!192 = !{!"int", !7, i64 0}
!193 = distinct !{!193, !194}
!194 = !{!"llvm.loop.mustprogress"}
!195 = !{!196, !45, i64 0}
!196 = !{!"_ZTSN3AST6Module11MacroImportE", !45, i64 0, !27, i64 8, !26, i64 16, !197, i64 48}
!197 = !{!"_ZTS8MacroRef", !198, i64 0, !7, i64 8}
!198 = !{!"_ZTSN8MacroRef3TagE", !7, i64 0}
!199 = !{!200, !201, i64 0}
!200 = !{!"_ZTSN3AST12ProcMacroDefE", !201, i64 0, !27, i64 8, !26, i64 16, !77, i64 48}
!201 = !{!"_ZTSN3AST11ProcMacroTyE", !7, i64 0}
!202 = !{!203, !203, i64 0}
!203 = !{!"_ZTSN3HIR9ProcMacro2TyE", !7, i64 0}
!204 = !{!205, !203, i64 0}
!205 = !{!"_ZTSN3HIR9ProcMacroE", !203, i64 0, !27, i64 8, !206, i64 16, !77, i64 24}
!206 = !{!"_ZTSN3HIR10SimplePathE", !207, i64 0}
!207 = !{!"_ZTS10ThinVectorI8RcStringE", !6, i64 0}
!208 = !{!209, !6, i64 0}
!209 = !{!"_ZTSSt16initializer_listI8RcStringE", !6, i64 0, !24, i64 8}
!210 = !{!209, !24, i64 8}
!211 = !{!212, !45, i64 8}
!212 = !{!"_ZTSSt4pairINSt8__detail14_Node_iteratorIS_IKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEEbE", !213, i64 0, !45, i64 8}
!213 = !{!"_ZTSNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEE", !214, i64 0}
!214 = !{!"_ZTSNSt8__detail19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb1EEE", !6, i64 0}
!215 = !{!24, !24, i64 0}
!216 = !{!217, !217, i64 0}
!217 = !{!"_ZTS13TargetVersion", !7, i64 0}
!218 = !{!219, !6, i64 0}
!219 = !{!"_ZTSSt16initializer_listIPKcE", !6, i64 0, !24, i64 8}
!220 = !{!219, !24, i64 8}


; 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.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%class.RcString = type { ptr }
%"class.HIR::Publicity" = type { %"class.std::shared_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::unique_ptr.794" = type { %"struct.std::__uniq_ptr_data.795" }
%"struct.std::__uniq_ptr_data.795" = type { %"class.std::__uniq_ptr_impl.796" }
%"class.std::__uniq_ptr_impl.796" = type { %"class.std::tuple.797" }
%"class.std::tuple.797" = type { %"struct.std::_Tuple_impl.798" }
%"struct.std::_Tuple_impl.798" = type { %"struct.std::_Head_base.801" }
%"struct.std::_Head_base.801" = type { ptr }
%"class.HIR::Module" = type { %"class.std::vector.561", %"class.std::unordered_map.566", %"class.std::unordered_map.580", %"class.std::unordered_map.594", %"class.std::vector.608" }
%"class.std::vector.561" = type { %"struct.std::_Vector_base.562" }
%"struct.std::_Vector_base.562" = 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.566" = type { %"class.std::_Hashtable.567" }
%"class.std::_Hashtable.567" = 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.580" = type { %"class.std::_Hashtable.581" }
%"class.std::_Hashtable.581" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.594" = type { %"class.std::_Hashtable.595" }
%"class.std::_Hashtable.595" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.608" = type { %"struct.std::_Vector_base.609" }
%"struct.std::_Vector_base.609" = 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 }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"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.712" }
%"class.std::vector.712" = type { %"struct.std::_Vector_base.713" }
%"struct.std::_Vector_base.713" = 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.HIR::CratePtr" = type { ptr }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.613", %"class.std::vector.618", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.638", %"class.std::map.643", %"class.std::vector.648", %"struct.HIR::Crate::ImplGroup.653", %"class.std::map.664", %"class.std::map.669", %"class.std::vector", %"class.std::unordered_map.674", %"class.std::vector", %"class.std::unordered_map.693", %"class.std::vector.707", %"class.std::vector.712" }
%"class.std::vector.613" = type { %"struct.std::_Vector_base.614" }
%"struct.std::_Vector_base.614" = 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.618" = type { %"struct.std::_Vector_base.619" }
%"struct.std::_Vector_base.619" = 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.623", %"class.std::vector.628", %"class.std::vector.628" }
%"class.std::map.623" = type { %"class.std::_Rb_tree.624" }
%"class.std::_Rb_tree.624" = 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" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.628" = type { %"struct.std::_Vector_base.629" }
%"struct.std::_Vector_base.629" = 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.633" }
%"class.std::map.633" = type { %"class.std::_Rb_tree.634" }
%"class.std::_Rb_tree.634" = 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.638" = type { %"class.std::_Rb_tree.639" }
%"class.std::_Rb_tree.639" = 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.643" = type { %"class.std::_Rb_tree.644" }
%"class.std::_Rb_tree.644" = 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.648" = type { %"struct.std::_Vector_base.649" }
%"struct.std::_Vector_base.649" = 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.653" = type { %"class.std::map.654", %"class.std::vector.659", %"class.std::vector.659" }
%"class.std::map.654" = type { %"class.std::_Rb_tree.655" }
%"class.std::_Rb_tree.655" = 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.659" = type { %"struct.std::_Vector_base.660" }
%"struct.std::_Vector_base.660" = 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.664" = type { %"class.std::_Rb_tree.665" }
%"class.std::_Rb_tree.665" = 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.669" = type { %"class.std::_Rb_tree.670" }
%"class.std::_Rb_tree.670" = 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.674" = type { %"class.std::_Hashtable.675" }
%"class.std::_Hashtable.675" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", 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.std::unordered_map.693" = type { %"class.std::_Hashtable.694" }
%"class.std::_Hashtable.694" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.707" = type { %"struct.std::_Vector_base.708" }
%"struct.std::_Vector_base.708" = 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 }
%"class.std::map.969" = type { %"class.std::_Rb_tree.970" }
%"class.std::_Rb_tree.970" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::MacroItem>, std::_Select1st<std::pair<const RcString, HIR::MacroItem>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::MacroItem>, std::_Select1st<std::pair<const RcString, HIR::MacroItem>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%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.974 = type { i8 }
%class.anon.976 = type { i8 }
%"class.std::vector.978" = type { %"struct.std::_Vector_base.979" }
%"struct.std::_Vector_base.979" = type { %"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module *, std::allocator<AST::Module *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.829" = type { ptr }
%class.MacroRulesPtr = type { ptr }
%"struct.HIR::MacroItem::Data_Import" = type { %"struct.HIR::SimplePath" }
%struct.Span = type { ptr }
%class.anon.983 = type { ptr }
%"struct.std::pair.984" = type <{ %"struct.std::_Rb_tree_iterator.986", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator.986" = type { ptr }
%"struct.std::pair.988" = type { %class.RcString, %"class.HIR::MacroItem" }
%class.anon.992 = type { ptr }
%class.anon.993 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.994" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.995" = type { ptr }
%"struct.std::__detail::_Node_iterator.996" = type { %"struct.std::__detail::_Node_iterator_base.838" }
%"struct.std::__detail::_Node_iterator_base.838" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.997" = type { ptr }
%"struct.std::pair.998" = type { %class.RcString, %"class.HIR::ProcMacro" }
%class.anon.1000 = type { i8 }
%"struct.std::_Rb_tree_iterator.1002" = type { ptr }
%"struct.std::pair.1010" = type { %"class.std::__cxx11::basic_string", %"struct.HIR::SimplePath" }
%"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] }
%"struct.std::_Rb_tree_iterator.1012" = type { ptr }
%"struct.std::__detail::_Node_iterator.1007" = type { %"struct.std::__detail::_Node_iterator_base.1008" }
%"struct.std::__detail::_Node_iterator_base.1008" = type { ptr }
%"struct.std::pair.1005" = type <{ %"struct.std::__detail::_Node_iterator.1007", i8, [7 x i8] }>
%"class.std::span" = type { ptr, i64 }
%class.anon.1017 = type { ptr, ptr, ptr }
%"struct.std::pair.1023" = type { %class.RcString, %"class.HIR::ExternCrate" }
%"class.HIR::ExternCrate" = type { %"class.HIR::CratePtr", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%class.anon.1025 = type { ptr }
%"struct.std::pair.792" = type { %class.RcString, %"class.std::unique_ptr.794" }
%"struct.HIR::VisEnt.802" = type { %"class.HIR::Publicity", %"class.HIR::MacroItem" }
%"class.std::allocator.56" = type { i8 }

@path_Sized = external dso_local global %"struct.HIR::SimplePath", align 8
@g_core_crate = external dso_local global %class.RcString, align 8
@g_crate_name = external dso_local global %class.RcString, align 8
@g_crate_ptr = external dso_local local_unnamed_addr global ptr, align 8
@g_ast_crate_ptr = external dso_local local_unnamed_addr global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.9 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [24 x i8], align 1
@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@__func__._Z16LowerHIR_FromASTN3AST5CrateE = external hidden unnamed_addr constant [17 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [9 x i8], align 1
@__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE = external hidden unnamed_addr constant [47 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [5 x i8], align 1
@gTargetVersion = external local_unnamed_addr global i32, align 4
@.str.79 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [8 x i8], align 1

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind noalias writable sret(%"class.HIR::Publicity") align 8) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4 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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) unnamed_addr #4 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #5

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15make_unique_ptrIN3HIR6VisEntINS0_9MacroItemEEEESt10unique_ptrIT_St14default_deleteIS5_EEOS5_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.794") align 8, ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6VisEntINS_9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Module") align 8, ptr noundef nonnull align 8 dereferenceable(480), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216)) unnamed_addr #0 align 2

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

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

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

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

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

; 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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind noalias writable sret(%"class.HIR::MacroItem") align 8, ptr noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z21LowerHIR_Module_ImplsRKN3AST6ModuleERN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(944)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z16LowerHIR_FromASTN3AST5CrateE(ptr dead_on_unwind noalias writable sret(%"class.HIR::CratePtr") align 8 %0, ptr noundef %1) local_unnamed_addr #4 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.HIR::Crate", align 8
  %4 = alloca %class.RcString, align 8
  %5 = alloca %"class.std::map.969", align 8
  %6 = alloca %class.TraceLog, align 8
  %7 = alloca %"class.std::function", align 8
  %8 = alloca %class.anon.974, align 1
  %9 = alloca %"class.std::function", align 8
  %10 = alloca %class.anon.976, align 1
  %11 = alloca %"class.std::vector.978", align 8
  %12 = alloca ptr, align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %15 = alloca %"class.HIR::MacroItem", align 8
  %16 = alloca %"class.HIR::MacroItem", align 8
  %17 = alloca %class.MacroRulesPtr, align 8
  %18 = alloca %"class.std::vector", align 8
  %19 = alloca %"class.HIR::MacroItem", align 8
  %20 = alloca %"struct.HIR::MacroItem::Data_Import", align 8
  %21 = alloca %class.RcString, align 8
  %22 = alloca %"class.std::vector", align 8
  %23 = alloca %struct.Span, align 8
  %24 = alloca %"class.std::function", align 8
  %25 = alloca %class.anon.983, align 8
  %26 = alloca %"struct.std::pair.984", align 8
  %27 = alloca %"struct.std::pair.988", align 8
  %28 = alloca %struct.Span, align 8
  %29 = alloca %"class.std::function", align 8
  %30 = alloca %class.anon.992, align 8
  %31 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %32 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %33 = alloca %struct.Span, align 8
  %34 = alloca %"class.std::function", align 8
  %35 = alloca %class.anon.993, align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.994", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.994", align 8
  %38 = alloca ptr, align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.995", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.995", align 8
  %41 = alloca %"struct.HIR::SimplePath", align 8
  %42 = alloca %class.RcString, align 8
  %43 = alloca %"class.std::vector", align 8
  %44 = alloca %"struct.std::pair.988", align 8
  %45 = alloca %"class.HIR::MacroItem", align 8
  %46 = alloca %"struct.HIR::MacroItem::Data_Import", align 8
  %47 = alloca %"struct.std::__detail::_Node_iterator.996", align 8
  %48 = alloca %"struct.std::__detail::_Node_iterator.996", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.997", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.997", align 8
  %51 = alloca %"struct.std::pair.998", align 8
  %52 = alloca %"class.HIR::ProcMacro", align 8
  %53 = alloca %class.RcString, align 8
  %54 = alloca [1 x %class.RcString], align 8
  %55 = alloca %struct.Span, align 8
  %56 = alloca %"class.std::function", align 8
  %57 = alloca %class.anon.1000, align 1
  %58 = alloca %struct.Span, align 8
  %59 = alloca %"struct.std::_Rb_tree_iterator.1002", align 8
  %60 = alloca %"struct.std::_Rb_tree_iterator.1002", align 8
  %61 = alloca %"struct.std::pair.1010", align 8
  %62 = alloca %"struct.HIR::SimplePath", align 8
  %63 = alloca %class.RcString, align 8
  %64 = alloca %"class.std::vector", align 8
  %65 = alloca %"struct.std::_Rb_tree_iterator.1012", align 8
  %66 = alloca %"struct.std::_Rb_tree_iterator.1012", align 8
  %67 = alloca %"struct.std::__detail::_Node_iterator.1007", align 8
  %68 = alloca %"struct.std::__detail::_Node_iterator.1007", align 8
  %69 = alloca %"struct.std::pair.1005", align 8
  %70 = alloca %"struct.std::pair.1010", align 8
  %71 = alloca %"class.std::span", align 8
  %72 = alloca %"class.std::span", align 8
  %73 = alloca %struct.Span, align 8
  %74 = alloca %"class.std::function", align 8
  %75 = alloca %class.anon.1017, align 8
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"struct.std::pair.1023", align 8
  %80 = alloca %"class.HIR::ExternCrate", align 8
  %81 = alloca %"class.HIR::Module", align 8
  %82 = alloca %"class.HIR::ItemPath", align 8
  %83 = alloca %"class.std::vector.561", align 8
  %84 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %85 = alloca %"struct.std::_Rb_tree_iterator.986", align 8
  %86 = alloca %struct.Span, align 8
  %87 = alloca %"class.std::function", align 8
  %88 = alloca %class.anon.1025, align 8
  %89 = alloca %"struct.std::pair.792", align 8
  %90 = alloca %"class.std::unique_ptr.794", align 8
  %91 = alloca %"struct.HIR::VisEnt.802", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator.56", align 1
  %94 = alloca %"struct.std::pair.1010", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator.56", align 1
  %97 = alloca %"struct.HIR::SimplePath", align 8
  %98 = alloca [2 x ptr], align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator.56", align 1
  %101 = alloca %"struct.std::pair.1010", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator.56", align 1
  %104 = alloca %"struct.HIR::SimplePath", align 8
  %105 = alloca [2 x ptr], align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator.56", align 1
  %108 = alloca %"struct.std::pair.1010", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::allocator.56", align 1
  %111 = alloca %"struct.HIR::SimplePath", align 8
  %112 = alloca [2 x ptr], align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::allocator.56", align 1
  %115 = alloca %"struct.std::pair.1010", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator.56", align 1
  %118 = alloca %"struct.HIR::SimplePath", align 8
  %119 = alloca [2 x ptr], align 8
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator.56", align 1
  %122 = alloca %"struct.std::pair.1010", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::allocator.56", align 1
  %125 = alloca %"struct.HIR::SimplePath", align 8
  %126 = alloca [2 x ptr], align 8
  %127 = alloca %"class.HIR::Crate", align 8
  call void @llvm.lifetime.start.p0(i64 944, ptr nonnull %3) #9
  call void @_ZN3HIR5CrateC2Ev(ptr noundef nonnull align 8 dereferenceable(944) %3)
  %128 = getelementptr inbounds i8, ptr %1, i64 788
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %.not = icmp eq i32 %129, 4
  br i1 %.not, label %133, label %130

130:                                              ; preds = %2
  %131 = getelementptr inbounds i8, ptr %1, i64 864
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %131)
  br label %138

133:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.62)
          to label %134 unwind label %136

134:                                              ; preds = %133
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  br label %138

136:                                              ; preds = %133
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  br label %932

138:                                              ; preds = %134, %130
  %139 = getelementptr inbounds i8, ptr %1, i64 784
  %140 = load i32, ptr %139, align 8, !tbaa !100
  %141 = getelementptr inbounds i8, ptr %3, i64 8
  store i32 %140, ptr %141, align 8, !tbaa !101
  store ptr %3, ptr @g_crate_ptr, align 8, !tbaa !172
  store ptr %1, ptr @g_ast_crate_ptr, align 8, !tbaa !172
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name, ptr noundef nonnull align 8 dereferenceable(8) %3)
  %143 = getelementptr inbounds i8, ptr %1, i64 672
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) @g_core_crate, ptr noundef nonnull align 8 dereferenceable(8) %143)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %5, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #9
  %145 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %146 unwind label %164

146:                                              ; preds = %138
  %147 = select i1 %145, ptr @__func__._Z16LowerHIR_FromASTN3AST5CrateE, ptr null
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef %147, ptr noundef nonnull %7, ptr noundef nonnull %9)
          to label %148 unwind label %166

148:                                              ; preds = %146
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #9
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  %149 = getelementptr inbounds i8, ptr %1, i64 72
  store ptr %149, ptr %12, align 8, !tbaa !172
  invoke void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %150 unwind label %168

150:                                              ; preds = %148
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  %.sroa.2111.0..sroa_idx = getelementptr inbounds i8, ptr %26, i64 8
  %151 = getelementptr inbounds i8, ptr %3, i64 736
  br label %152

152:                                              ; preds = %._crit_edge372, %150
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  %154 = load ptr, ptr %153, align 8, !tbaa !172
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  %155 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %154)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %156 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %155) #9
  store ptr %156, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  %157 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %155) #9
  store ptr %157, ptr %14, align 8
  %158 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  br i1 %158, label %.lr.ph368, label %._crit_edge369

.lr.ph368:                                        ; preds = %152
  %159 = icmp eq ptr %154, %149
  br label %170

._crit_edge369:                                   ; preds = %335, %152
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  %160 = getelementptr inbounds i8, ptr %154, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #9
  %161 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %160) #9
  store ptr %161, ptr %36, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #9
  %162 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %160) #9
  store ptr %162, ptr %37, align 8
  %163 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  br i1 %163, label %.lr.ph371, label %._crit_edge372

164:                                              ; preds = %138
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %464

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

168:                                              ; preds = %148
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %463

170:                                              ; preds = %.lr.ph368, %335
  %171 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  %172 = getelementptr inbounds i8, ptr %171, i64 80
  %173 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %172)
  %174 = getelementptr inbounds i8, ptr %173, i64 8
  %175 = load i8, ptr %174, align 8, !tbaa !173, !range !186, !noundef !187
  %176 = trunc nuw i8 %175 to i1
  br i1 %176, label %177, label %318

177:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %15) #9
  invoke void @_ZN3HIR9MacroItemC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15)
          to label %178 unwind label %185

178:                                              ; preds = %177
  br i1 %159, label %179, label %192

179:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %16) #9
  call void @_ZN13MacroRulesPtrC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %172)
  invoke void @_ZN3HIR9MacroItemC2E13MacroRulesPtr(ptr noundef nonnull align 8 dereferenceable(56) %16, ptr noundef nonnull %17)
          to label %180 unwind label %187

180:                                              ; preds = %179
  %181 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN3HIR9MacroItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(56) %15, ptr noundef nonnull align 8 dereferenceable(56) %16)
          to label %182 unwind label %189

182:                                              ; preds = %180
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %16) #9
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %16) #9
  br label %224

183:                                              ; preds = %333, %331, %329, %326, %324, %321, %318
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %338

185:                                              ; preds = %177
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %317

187:                                              ; preds = %179
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %191

189:                                              ; preds = %180
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %16) #9
  br label %191

191:                                              ; preds = %189, %187
  %.pn284 = phi { ptr, i32 } [ %190, %189 ], [ %188, %187 ]
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %16) #9
  br label %316

192:                                              ; preds = %178
  %193 = call noundef zeroext i1 @_ZNK13MacroRulesPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %172)
  br i1 %193, label %195, label %194

194:                                              ; preds = %192
  call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.5, i32 noundef 2335, ptr noundef nonnull @__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE) #10
  unreachable

.loopexit306:                                     ; preds = %224, %237
  %lpad.loopexit308 = landingpad { ptr, i32 }
          cleanup
  br label %316

.loopexit.split-lp307:                            ; preds = %232
  %lpad.loopexit.split-lp309 = landingpad { ptr, i32 }
          cleanup
  br label %316

195:                                              ; preds = %192
  %196 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %172)
  %197 = getelementptr inbounds i8, ptr %196, i64 40
  %198 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %197) #9
  br i1 %198, label %199, label %200

199:                                              ; preds = %195
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.5, i32 noundef 2336, ptr noundef nonnull @__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE) #10
  unreachable

200:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #9
  %201 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %154)
  %202 = getelementptr inbounds i8, ptr %201, i64 8
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(24) %202)
          to label %203 unwind label %210

203:                                              ; preds = %200
  %204 = getelementptr inbounds i8, ptr %171, i64 72
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(8) %204)
          to label %205 unwind label %212

205:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %19) #9
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name)
  call void @_ZNSt6vectorI8RcStringSaIS0_EEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(24) %18) #9
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull %21, ptr noundef nonnull %22)
          to label %206 unwind label %214

206:                                              ; preds = %205
  invoke void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::MacroItem") align 8 %19, ptr noundef nonnull %20)
          to label %207 unwind label %216

207:                                              ; preds = %206
  %208 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN3HIR9MacroItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(56) %15, ptr noundef nonnull align 8 dereferenceable(56) %19)
          to label %209 unwind label %218

209:                                              ; preds = %207
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %19) #9
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %19) #9
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #9
  br label %224

210:                                              ; preds = %200
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %223

212:                                              ; preds = %203
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %222

214:                                              ; preds = %205
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %221

216:                                              ; preds = %206
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %220

218:                                              ; preds = %207
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %19) #9
  br label %220

220:                                              ; preds = %218, %216
  %.pn279 = phi { ptr, i32 } [ %219, %218 ], [ %217, %216 ]
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  br label %221

221:                                              ; preds = %220, %214
  %.pn279.pn = phi { ptr, i32 } [ %.pn279, %220 ], [ %215, %214 ]
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %19) #9
  br label %222

222:                                              ; preds = %221, %212
  %.pn279.pn.pn = phi { ptr, i32 } [ %.pn279.pn, %221 ], [ %213, %212 ]
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #9
  br label %223

223:                                              ; preds = %222, %210
  %.pn279.pn.pn.pn = phi { ptr, i32 } [ %.pn279.pn.pn, %222 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #9
  br label %316

224:                                              ; preds = %182, %209
  %225 = getelementptr inbounds i8, ptr %171, i64 72
  %226 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %227 unwind label %.loopexit306

227:                                              ; preds = %224
  %228 = icmp eq i64 %226, 0
  br i1 %228, label %237, label %229

229:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  store ptr %171, ptr %25, align 8, !tbaa !172
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull %24)
          to label %230 unwind label %233

230:                                              ; preds = %229
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  %231 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %231, ptr noundef nonnull @.str.9)
          to label %232 unwind label %235

232:                                              ; preds = %230
  invoke void @__cxa_throw(ptr nonnull %231, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %933 unwind label %.loopexit.split-lp307

233:                                              ; preds = %229
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  br label %316

235:                                              ; preds = %230
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %231) #9
  br label %316

237:                                              ; preds = %227
  %238 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %239 unwind label %.loopexit306

239:                                              ; preds = %237
  %240 = icmp eq i64 %238, 0
  br i1 %240, label %241, label %290

241:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %27) #9
  invoke void @_ZSt9make_pairIR8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.988") align 8 %27, ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull align 8 dereferenceable(56) %15)
          to label %242 unwind label %263

242:                                              ; preds = %241
  %243 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 8 dereferenceable(64) %27)
          to label %244 unwind label %265

244:                                              ; preds = %242
  %.fca.0.extract108 = extractvalue { ptr, i8 } %243, 0
  %.fca.1.extract109 = extractvalue { ptr, i8 } %243, 1
  store ptr %.fca.0.extract108, ptr %26, align 8
  store i8 %.fca.1.extract109, ptr %.sroa.2111.0..sroa_idx, align 8
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %27) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #9
  %245 = load i8, ptr %.sroa.2111.0..sroa_idx, align 8, !tbaa !188, !range !186, !noundef !187
  %246 = trunc nuw i8 %245 to i1
  br i1 %246, label %247, label %269

247:                                              ; preds = %244
  %248 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %249 unwind label %.loopexit311

249:                                              ; preds = %247
  br i1 %248, label %250, label %268

250:                                              ; preds = %249
  %251 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %251, ptr noundef nonnull @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %253 unwind label %.loopexit311

253:                                              ; preds = %250
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef nonnull @.str.65)
          to label %255 unwind label %.loopexit311

255:                                              ; preds = %253
  %256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %257 unwind label %.loopexit311

257:                                              ; preds = %255
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %256, ptr noundef nonnull @.str.66)
          to label %259 unwind label %.loopexit311

259:                                              ; preds = %257
  %260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %261 unwind label %.loopexit311

261:                                              ; preds = %259
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %260, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %268 unwind label %.loopexit311

263:                                              ; preds = %241
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %267

265:                                              ; preds = %242
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %27) #9
  br label %267

267:                                              ; preds = %265, %263
  %.pn286 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #9
  br label %289

.loopexit311:                                     ; preds = %247, %250, %253, %255, %257, %259, %261, %268
  %lpad.loopexit313 = landingpad { ptr, i32 }
          cleanup
  br label %289

.loopexit.split-lp312:                            ; preds = %283
  %lpad.loopexit.split-lp314 = landingpad { ptr, i32 }
          cleanup
  br label %289

268:                                              ; preds = %261, %249
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(8) %225)
          to label %269 unwind label %.loopexit311

269:                                              ; preds = %268, %244
  %270 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  %271 = getelementptr inbounds i8, ptr %270, i64 8
  %272 = call noundef zeroext i1 @_ZNK3HIR9MacroItem13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %271)
  br i1 %272, label %273, label %288

273:                                              ; preds = %269
  %274 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  %275 = getelementptr inbounds i8, ptr %274, i64 8
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %275)
  %277 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %276)
  %278 = getelementptr inbounds i8, ptr %277, i64 40
  %279 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %278) #9
  br i1 %279, label %280, label %288

280:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #9
  store ptr %171, ptr %30, align 8, !tbaa !172
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull %29)
          to label %281 unwind label %284

281:                                              ; preds = %280
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  %282 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %282, ptr noundef nonnull @.str.9)
          to label %283 unwind label %286

283:                                              ; preds = %281
  invoke void @__cxa_throw(ptr nonnull %282, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %933 unwind label %.loopexit.split-lp312

284:                                              ; preds = %280
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  br label %289

286:                                              ; preds = %281
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %282) #9
  br label %289

288:                                              ; preds = %273, %269
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #9
  br label %290

289:                                              ; preds = %.loopexit311, %.loopexit.split-lp312, %286, %284, %267
  %.pn290 = phi { ptr, i32 } [ %287, %286 ], [ %285, %284 ], [ %.pn286, %267 ], [ %lpad.loopexit313, %.loopexit311 ], [ %lpad.loopexit.split-lp314, %.loopexit.split-lp312 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #9
  br label %316

290:                                              ; preds = %288, %239
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #9
  %291 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #9
  store ptr %291, ptr %31, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  %292 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #9
  store ptr %292, ptr %32, align 8
  %293 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  br i1 %293, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %312, %290
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %15) #9
  br label %335

.lr.ph:                                           ; preds = %290, %312
  %294 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  %295 = getelementptr inbounds i8, ptr %294, i64 8
  %296 = call noundef zeroext i1 @_ZNK3HIR9MacroItem13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %295)
  br i1 %296, label %297, label %312

297:                                              ; preds = %.lr.ph
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %295)
  %299 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %298)
  %300 = getelementptr inbounds i8, ptr %299, i64 40
  %301 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %300) #9
  br i1 %301, label %302, label %312

302:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #9
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #9
  store ptr %294, ptr %35, align 8, !tbaa !172
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull %34)
          to label %303 unwind label %308

303:                                              ; preds = %302
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  %304 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %304, ptr noundef nonnull @.str.9)
          to label %305 unwind label %310

305:                                              ; preds = %303
  invoke void @__cxa_throw(ptr nonnull %304, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %933 unwind label %306

306:                                              ; preds = %305
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %315

308:                                              ; preds = %302
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  br label %315

310:                                              ; preds = %303
  %311 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %304) #9
  br label %315

312:                                              ; preds = %297, %.lr.ph
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  %314 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  br i1 %314, label %.lr.ph, label %._crit_edge

315:                                              ; preds = %310, %308, %306
  %.pn288 = phi { ptr, i32 } [ %307, %306 ], [ %311, %310 ], [ %309, %308 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br label %316

316:                                              ; preds = %.loopexit306, %.loopexit.split-lp307, %315, %289, %235, %233, %223, %191
  %.pn290.pn = phi { ptr, i32 } [ %.pn290, %289 ], [ %.pn288, %315 ], [ %236, %235 ], [ %234, %233 ], [ %.pn284, %191 ], [ %.pn279.pn.pn.pn, %223 ], [ %lpad.loopexit308, %.loopexit306 ], [ %lpad.loopexit.split-lp309, %.loopexit.split-lp307 ]
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %15) #9
  br label %317

317:                                              ; preds = %316, %185
  %.pn290.pn.pn = phi { ptr, i32 } [ %.pn290.pn, %316 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %15) #9
  br label %338

318:                                              ; preds = %170
  %319 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %320 unwind label %183

320:                                              ; preds = %318
  br i1 %319, label %321, label %335

321:                                              ; preds = %320
  %322 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %322, ptr noundef nonnull @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %324 unwind label %183

324:                                              ; preds = %321
  %325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %323, ptr noundef nonnull @.str.67)
          to label %326 unwind label %183

326:                                              ; preds = %324
  %327 = getelementptr inbounds i8, ptr %171, i64 72
  %328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %325, ptr noundef nonnull align 8 dereferenceable(8) %327)
          to label %329 unwind label %183

329:                                              ; preds = %326
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef nonnull @.str.66)
          to label %331 unwind label %183

331:                                              ; preds = %329
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %333 unwind label %183

333:                                              ; preds = %331
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %332, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %335 unwind label %183

335:                                              ; preds = %320, %333, %._crit_edge
  %336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  %337 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  br i1 %337, label %170, label %._crit_edge369

338:                                              ; preds = %317, %183
  %.pn290.pn.pn.pn = phi { ptr, i32 } [ %.pn290.pn.pn, %317 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  br label %463

._crit_edge372:                                   ; preds = %351, %._crit_edge369
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  %339 = call noundef i64 @_ZNKSt6vectorIPN3AST6ModuleESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  %.not205 = icmp eq i64 %339, 0
  br i1 %.not205, label %354, label %152, !llvm.loop !193

.lr.ph371:                                        ; preds = %._crit_edge369, %351
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  %341 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %340) #9
  %342 = getelementptr inbounds i8, ptr %341, i64 80
  %343 = call noundef zeroext i1 @_ZNK3AST4Item9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %342)
  br i1 %343, label %344, label %351

344:                                              ; preds = %.lr.ph371
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #9
  %345 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %340) #9
  %346 = getelementptr inbounds i8, ptr %345, i64 80
  %347 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %346)
  store ptr %347, ptr %38, align 8, !tbaa !172
  invoke void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %348 unwind label %349

348:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #9
  br label %351

349:                                              ; preds = %344
  %350 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  br label %463

351:                                              ; preds = %348, %.lr.ph371
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  %353 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  br i1 %353, label %.lr.ph371, label %._crit_edge372

354:                                              ; preds = %._crit_edge372
  %355 = getelementptr inbounds i8, ptr %1, i64 504
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #9
  %356 = call ptr @_ZNSt6vectorIN3AST6Module11MacroImportESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %355) #9
  store ptr %356, ptr %39, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #9
  %357 = call ptr @_ZNSt6vectorIN3AST6Module11MacroImportESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %355) #9
  store ptr %357, ptr %40, align 8
  %358 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  br i1 %358, label %.lr.ph374, label %._crit_edge375

._crit_edge375:                                   ; preds = %441, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #9
  %359 = getelementptr inbounds i8, ptr %1, i64 424
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #9
  %360 = call ptr @_ZNSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %359) #9
  store ptr %360, ptr %47, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #9
  %361 = call ptr @_ZNSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %359) #9
  store ptr %361, ptr %48, align 8
  %362 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #9
  br i1 %362, label %.lr.ph377, label %._crit_edge378

.lr.ph374:                                        ; preds = %354, %441
  %363 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  %364 = load i8, ptr %363, align 8, !tbaa !195, !range !186, !noundef !187
  %365 = trunc nuw i8 %364 to i1
  br i1 %365, label %375, label %366

366:                                              ; preds = %.lr.ph374
  %367 = getelementptr inbounds i8, ptr %363, i64 48
  %368 = call noundef zeroext i1 @_ZNK8MacroRef13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(16) %367)
  br i1 %368, label %369, label %441

369:                                              ; preds = %366
  %370 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK8MacroRef13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(16) %367)
  %371 = load ptr, ptr %370, align 8, !tbaa !172
  %372 = getelementptr inbounds i8, ptr %371, i64 8
  %373 = load i8, ptr %372, align 8, !tbaa !173, !range !186, !noundef !187
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %441

375:                                              ; preds = %369, %.lr.ph374
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #9
  %376 = getelementptr inbounds i8, ptr %363, i64 16
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %376)
  %377 = getelementptr inbounds i8, ptr %363, i64 24
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %377)
          to label %378 unwind label %401

378:                                              ; preds = %375
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull %42, ptr noundef nonnull %43)
          to label %379 unwind label %403

379:                                              ; preds = %378
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %44) #9
  %380 = getelementptr inbounds i8, ptr %363, i64 8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %45) #9
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %381 unwind label %406

381:                                              ; preds = %379
  invoke void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::MacroItem") align 8 %45, ptr noundef nonnull %46)
          to label %382 unwind label %408

382:                                              ; preds = %381
  invoke void @_ZSt9make_pairIRK8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.988") align 8 %44, ptr noundef nonnull align 8 dereferenceable(8) %380, ptr noundef nonnull align 8 dereferenceable(56) %45)
          to label %383 unwind label %410

383:                                              ; preds = %382
  %384 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 8 dereferenceable(64) %44)
          to label %385 unwind label %412

385:                                              ; preds = %383
  %.fca.1.extract84 = extractvalue { ptr, i8 } %384, 1
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %44) #9
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %45) #9
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %44) #9
  %386 = trunc i8 %.fca.1.extract84 to i1
  br i1 %386, label %419, label %387

387:                                              ; preds = %385
  %388 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %389 unwind label %417

389:                                              ; preds = %387
  br i1 %388, label %390, label %438

390:                                              ; preds = %389
  %391 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %391, ptr noundef nonnull @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %393 unwind label %417

393:                                              ; preds = %390
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef nonnull @.str.68)
          to label %395 unwind label %417

395:                                              ; preds = %393
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef nonnull align 8 dereferenceable(8) %380)
          to label %397 unwind label %417

397:                                              ; preds = %395
  %398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %396, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %399 unwind label %417

399:                                              ; preds = %397
  %400 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %438 unwind label %417

401:                                              ; preds = %375
  %402 = landingpad { ptr, i32 }
          cleanup
  br label %405

403:                                              ; preds = %378
  %404 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #9
  br label %405

405:                                              ; preds = %403, %401
  %.pn270 = phi { ptr, i32 } [ %404, %403 ], [ %402, %401 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #9
  br label %440

406:                                              ; preds = %379
  %407 = landingpad { ptr, i32 }
          cleanup
  br label %416

408:                                              ; preds = %381
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %415

410:                                              ; preds = %382
  %411 = landingpad { ptr, i32 }
          cleanup
  br label %414

412:                                              ; preds = %383
  %413 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringN3HIR9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %44) #9
  br label %414

414:                                              ; preds = %412, %410
  %.pn272 = phi { ptr, i32 } [ %413, %412 ], [ %411, %410 ]
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %45) #9
  br label %415

415:                                              ; preds = %414, %408
  %.pn272.pn = phi { ptr, i32 } [ %.pn272, %414 ], [ %409, %408 ]
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  br label %416

416:                                              ; preds = %415, %406
  %.pn272.pn.pn = phi { ptr, i32 } [ %.pn272.pn, %415 ], [ %407, %406 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %44) #9
  br label %439

417:                                              ; preds = %437, %435, %433, %431, %429, %427, %425, %422, %419, %399, %397, %395, %393, %390, %387
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %439

419:                                              ; preds = %385
  %420 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %421 unwind label %417

421:                                              ; preds = %419
  br i1 %420, label %422, label %437

422:                                              ; preds = %421
  %423 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %423, ptr noundef nonnull @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %425 unwind label %417

425:                                              ; preds = %422
  %426 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %424, ptr noundef nonnull @.str.69)
          to label %427 unwind label %417

427:                                              ; preds = %425
  %428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %426, ptr noundef nonnull align 8 dereferenceable(8) %380)
          to label %429 unwind label %417

429:                                              ; preds = %427
  %430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %428, ptr noundef nonnull @.str.70)
          to label %431 unwind label %417

431:                                              ; preds = %429
  %432 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %430, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %433 unwind label %417

433:                                              ; preds = %431
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %435 unwind label %417

435:                                              ; preds = %433
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %437 unwind label %417

437:                                              ; preds = %435, %421
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(8) %380)
          to label %438 unwind label %417

438:                                              ; preds = %437, %389, %399
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  br label %441

439:                                              ; preds = %417, %416
  %.pn276 = phi { ptr, i32 } [ %418, %417 ], [ %.pn272.pn.pn, %416 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  br label %440

440:                                              ; preds = %439, %405
  %.pn276.pn = phi { ptr, i32 } [ %.pn276, %439 ], [ %.pn270, %405 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #9
  br label %463

441:                                              ; preds = %438, %369, %366
  %442 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  %443 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST6Module11MacroImportESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  br i1 %443, label %.lr.ph374, label %._crit_edge375

._crit_edge378:                                   ; preds = %453, %._crit_edge375
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #9
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #9
  %444 = load i32, ptr %128, align 4, !tbaa !5
  %445 = icmp eq i32 %444, 5
  %446 = getelementptr inbounds i8, ptr %1, i64 760
  br i1 %445, label %456, label %511

.lr.ph377:                                        ; preds = %._crit_edge375, %453
  %447 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #9
  %448 = getelementptr inbounds i8, ptr %447, i64 16
  %449 = call noundef zeroext i1 @_ZNK3AST10Visibility9is_globalEv(ptr noundef nonnull align 8 dereferenceable(36) %448)
  br i1 %449, label %450, label %453

450:                                              ; preds = %.lr.ph377
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(8) %447)
          to label %453 unwind label %451

451:                                              ; preds = %450
  %452 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #9
  br label %463

453:                                              ; preds = %450, %.lr.ph377
  %454 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #9
  %455 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #9
  br i1 %455, label %.lr.ph377, label %._crit_edge378

456:                                              ; preds = %._crit_edge378
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #9
  %457 = call ptr @_ZNSt6vectorIN3AST12ProcMacroDefESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %446) #9
  store ptr %457, ptr %49, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #9
  %458 = call ptr @_ZNSt6vectorIN3AST12ProcMacroDefESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %446) #9
  store ptr %458, ptr %50, align 8
  %459 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST12ProcMacroDefESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  br i1 %459, label %.lr.ph380, label %._crit_edge381

.lr.ph380:                                        ; preds = %456
  %460 = getelementptr inbounds i8, ptr %52, i64 8
  %461 = getelementptr inbounds i8, ptr %52, i64 16
  %462 = getelementptr inbounds i8, ptr %52, i64 24
  br label %465

._crit_edge381:                                   ; preds = %507, %456
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #9
  br label %524

463:                                              ; preds = %338, %349, %451, %440, %168
  %.pn290.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn276.pn, %440 ], [ %452, %451 ], [ %169, %168 ], [ %.pn290.pn.pn.pn, %338 ], [ %350, %349 ]
  call void @_ZNSt6vectorIPN3AST6ModuleESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #9
  br label %464

464:                                              ; preds = %463, %166, %164
  %.pn290.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn290.pn.pn.pn.pn.pn, %463 ], [ %167, %166 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #9
  br label %931

465:                                              ; preds = %.lr.ph380, %507
  %466 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST12ProcMacroDefESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  %467 = load i32, ptr %466, align 8, !tbaa !199
  %468 = invoke noundef i32 @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12cvt_macro_tyENS_11ProcMacroTyE(i32 noundef %467)
          to label %469 unwind label %492

469:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %51) #9
  %470 = getelementptr inbounds i8, ptr %466, i64 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %52) #9
  store i32 %468, ptr %52, align 8, !tbaa !202
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %460, ptr noundef nonnull align 8 dereferenceable(8) %470)
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull @.str.6)
          to label %471 unwind label %.thread

471:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #9
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %470)
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %461, ptr noundef nonnull %53, ptr nonnull %54, i64 1)
          to label %472 unwind label %495

472:                                              ; preds = %471
  %473 = getelementptr inbounds i8, ptr %466, i64 48
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %462, ptr noundef nonnull align 8 dereferenceable(24) %473)
          to label %474 unwind label %497

474:                                              ; preds = %472
  invoke void @_ZSt9make_pairIRK8RcStringN3HIR9ProcMacroEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.998") align 8 %51, ptr noundef nonnull align 8 dereferenceable(8) %470, ptr noundef nonnull align 8 dereferenceable(48) %52)
          to label %475 unwind label %499

475:                                              ; preds = %474
  %476 = invoke { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_NS1_9ProcMacroEEEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48) %5, ptr noundef nonnull align 8 dereferenceable(56) %51)
          to label %477 unwind label %501

477:                                              ; preds = %475
  call void @_ZNSt4pairI8RcStringN3HIR9ProcMacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %51) #9
  call void @_ZN3HIR9ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %51) #9
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(8) %470)
          to label %478 unwind label %492

478:                                              ; preds = %477
  %479 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %480 unwind label %492

480:                                              ; preds = %478
  br i1 %479, label %481, label %507

481:                                              ; preds = %480
  %482 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %483 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %482, ptr noundef nonnull @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %484 unwind label %492

484:                                              ; preds = %481
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %483, ptr noundef nonnull @.str.71)
          to label %486 unwind label %492

486:                                              ; preds = %484
  %487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %485, ptr noundef nonnull align 8 dereferenceable(8) %470)
          to label %488 unwind label %492

488:                                              ; preds = %486
  %489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %487, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %490 unwind label %492

490:                                              ; preds = %488
  %491 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %489, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %507 unwind label %492

492:                                              ; preds = %490, %488, %486, %484, %481, %478, %477, %465
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %510

.thread:                                          ; preds = %469
  %494 = landingpad { ptr, i32 }
          cleanup
  br label %505

495:                                              ; preds = %471
  %496 = landingpad { ptr, i32 }
          cleanup
  br label %504

497:                                              ; preds = %472
  %498 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %461) #9
  br label %504

499:                                              ; preds = %474
  %500 = landingpad { ptr, i32 }
          cleanup
  br label %503

501:                                              ; preds = %475
  %502 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringN3HIR9ProcMacroEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %51) #9
  br label %503

503:                                              ; preds = %501, %499
  %.pn264 = phi { ptr, i32 } [ %502, %501 ], [ %500, %499 ]
  call void @_ZN3HIR9ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #9
  br label %504

504:                                              ; preds = %503, %497, %495
  %.0198 = phi i1 [ false, %503 ], [ true, %497 ], [ true, %495 ]
  %.pn264.pn = phi { ptr, i32 } [ %.pn264, %503 ], [ %498, %497 ], [ %496, %495 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  br i1 %.0198, label %505, label %506

505:                                              ; preds = %.thread, %504
  %.pn264.pn.pn303 = phi { ptr, i32 } [ %494, %.thread ], [ %.pn264.pn, %504 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %460) #9
  br label %506

506:                                              ; preds = %504, %505
  %.pn264.pn.pn302 = phi { ptr, i32 } [ %.pn264.pn, %504 ], [ %.pn264.pn.pn303, %505 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %51) #9
  br label %510

507:                                              ; preds = %490, %480
  %508 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST12ProcMacroDefESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  %509 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST12ProcMacroDefESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  br i1 %509, label %465, label %._crit_edge381

510:                                              ; preds = %506, %492
  %.pn268 = phi { ptr, i32 } [ %493, %492 ], [ %.pn264.pn.pn302, %506 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #9
  br label %931

511:                                              ; preds = %._crit_edge378
  %512 = call noundef i64 @_ZNKSt6vectorIN3AST12ProcMacroDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %446) #9
  %513 = icmp eq i64 %512, 0
  br i1 %513, label %524, label %514

514:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #9
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 1 dereferenceable(1) %57) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull %56)
          to label %515 unwind label %518

515:                                              ; preds = %514
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #9
  %516 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %516, ptr noundef nonnull @.str.9)
          to label %517 unwind label %520

517:                                              ; preds = %515
  invoke void @__cxa_throw(ptr nonnull %516, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %933 unwind label %522

518:                                              ; preds = %514
  %519 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #9
  br label %931

520:                                              ; preds = %515
  %521 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %516) #9
  br label %931

522:                                              ; preds = %517
  %523 = landingpad { ptr, i32 }
          cleanup
  br label %931

524:                                              ; preds = %511, %._crit_edge381
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #9
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58)
  %525 = getelementptr inbounds i8, ptr %1, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #9
  %526 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %525) #9
  store ptr %526, ptr %59, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #9
  %527 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %525) #9
  store ptr %527, ptr %60, align 8
  %528 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  br i1 %528, label %.lr.ph383, label %._crit_edge384

.lr.ph383:                                        ; preds = %524
  %529 = getelementptr inbounds i8, ptr %3, i64 760
  br label %533

._crit_edge384:                                   ; preds = %576, %524
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #9
  %530 = getelementptr inbounds i8, ptr %1, i64 552
  %531 = getelementptr inbounds i8, ptr %3, i64 816
  %532 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %531, ptr noundef nonnull align 8 dereferenceable(24) %530)
          to label %580 unwind label %592

533:                                              ; preds = %.lr.ph383, %576
  %534 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  %535 = getelementptr inbounds i8, ptr %534, i64 32
  %536 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %535, ptr noundef nonnull @.str.6)
          to label %537 unwind label %539

537:                                              ; preds = %533
  br i1 %536, label %541, label %538

538:                                              ; preds = %537
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.5, i32 noundef 2430, ptr noundef nonnull @__PRETTY_FUNCTION__._Z16LowerHIR_FromASTN3AST5CrateE) #10
  unreachable

539:                                              ; preds = %563, %561, %559, %557, %555, %553, %550, %547, %533
  %540 = landingpad { ptr, i32 }
          cleanup
  br label %579

541:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %61) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #9
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name)
  %542 = getelementptr inbounds i8, ptr %534, i64 40
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %64, ptr noundef nonnull align 8 dereferenceable(24) %542)
          to label %543 unwind label %565

543:                                              ; preds = %541
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull %63, ptr noundef nonnull %64)
          to label %544 unwind label %567

544:                                              ; preds = %543
  invoke void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1010") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %534, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %545 unwind label %569

545:                                              ; preds = %544
  %546 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %529, ptr noundef nonnull align 8 dereferenceable(40) %61)
          to label %547 unwind label %571

547:                                              ; preds = %545
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %61) #9
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %61) #9
  %548 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %549 unwind label %539

549:                                              ; preds = %547
  br i1 %548, label %550, label %576

550:                                              ; preds = %549
  %551 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %551, ptr noundef nonnull @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %553 unwind label %539

553:                                              ; preds = %550
  %554 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %552, ptr noundef nonnull @.str.73)
          to label %555 unwind label %539

555:                                              ; preds = %553
  %556 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %554, ptr noundef nonnull align 8 dereferenceable(32) %534)
          to label %557 unwind label %539

557:                                              ; preds = %555
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %556, ptr noundef nonnull @.str.74)
          to label %559 unwind label %539

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %558, ptr noundef nonnull align 8 dereferenceable(32) %535)
          to label %561 unwind label %539

561:                                              ; preds = %559
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %560, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %563 unwind label %539

563:                                              ; preds = %561
  %564 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %562, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %576 unwind label %539

565:                                              ; preds = %541
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %575

567:                                              ; preds = %543
  %568 = landingpad { ptr, i32 }
          cleanup
  br label %574

569:                                              ; preds = %544
  %570 = landingpad { ptr, i32 }
          cleanup
  br label %573

571:                                              ; preds = %545
  %572 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %61) #9
  br label %573

573:                                              ; preds = %571, %569
  %.pn257 = phi { ptr, i32 } [ %572, %571 ], [ %570, %569 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  br label %574

574:                                              ; preds = %573, %567
  %.pn257.pn = phi { ptr, i32 } [ %.pn257, %573 ], [ %568, %567 ]
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #9
  br label %575

575:                                              ; preds = %574, %565
  %.pn257.pn.pn = phi { ptr, i32 } [ %.pn257.pn, %574 ], [ %566, %565 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %61) #9
  br label %579

576:                                              ; preds = %563, %549
  %577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  %578 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathEEESD_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  br i1 %578, label %533, label %._crit_edge384

579:                                              ; preds = %575, %539
  %.pn261 = phi { ptr, i32 } [ %540, %539 ], [ %.pn257.pn.pn, %575 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #9
  br label %930

580:                                              ; preds = %._crit_edge384
  %581 = getelementptr inbounds i8, ptr %1, i64 576
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #9
  %582 = call ptr @_ZNSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %581) #9
  store ptr %582, ptr %65, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #9
  %583 = call ptr @_ZNSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %581) #9
  store ptr %583, ptr %66, align 8
  %584 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3AST11ExternCrateEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  br i1 %584, label %.lr.ph389, label %._crit_edge390

.lr.ph389:                                        ; preds = %580
  %585 = getelementptr inbounds i8, ptr %3, i64 760
  %.sroa.231.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 8
  %586 = getelementptr inbounds i8, ptr %71, i64 8
  %587 = getelementptr inbounds i8, ptr %72, i64 8
  %588 = getelementptr inbounds i8, ptr %3, i64 840
  %589 = getelementptr inbounds i8, ptr %80, i64 8
  %590 = getelementptr inbounds i8, ptr %80, i64 40
  br label %594

._crit_edge390:                                   ; preds = %703, %580
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #9
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944) %3, ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull @.str.77)
          to label %721 unwind label %592

592:                                              ; preds = %925, %920, %919, %._crit_edge393, %721, %._crit_edge390, %._crit_edge384
  %593 = landingpad { ptr, i32 }
          cleanup
  br label %930

594:                                              ; preds = %.lr.ph389, %703
  %595 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3AST11ExternCrateEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #9
  %596 = getelementptr inbounds i8, ptr %595, i64 56
  %597 = call noundef ptr @_ZN3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %596)
  %598 = getelementptr inbounds i8, ptr %597, i64 760
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #9
  %599 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %598) #9
  store ptr %599, ptr %67, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #9
  %600 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %598) #9
  store ptr %600, ptr %68, align 8
  %601 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  br i1 %601, label %.lr.ph386, label %._crit_edge387

._crit_edge387:                                   ; preds = %682, %594
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #9
  %602 = getelementptr inbounds i8, ptr %595, i64 24
  %603 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32) %602, i8 noundef signext 47, i64 noundef -1) #9
  store i64 %603, ptr %76, align 8, !tbaa !207
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #9
  %604 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32) %602, i8 noundef signext 92, i64 noundef -1) #9
  store i64 %604, ptr %77, align 8, !tbaa !207
  %605 = load i64, ptr %76, align 8, !tbaa !207
  %606 = icmp eq i64 %605, -1
  br i1 %606, label %691, label %686

.lr.ph386:                                        ; preds = %594, %682
  %607 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  %608 = getelementptr inbounds i8, ptr %607, i64 32
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %69) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %70) #9
  invoke void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSD_INSE_IT0_E4typeEE6__typeEEOSF_OSK_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1010") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %607, ptr noundef nonnull align 8 dereferenceable(8) %608)
          to label %609 unwind label %633

609:                                              ; preds = %.lr.ph386
  %610 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %585, ptr noundef nonnull align 8 dereferenceable(40) %70)
          to label %611 unwind label %635

611:                                              ; preds = %609
  %.fca.0.extract = extractvalue { ptr, i8 } %610, 0
  %.fca.1.extract = extractvalue { ptr, i8 } %610, 1
  store ptr %.fca.0.extract, ptr %69, align 8
  store i8 %.fca.1.extract, ptr %.sroa.231.0..sroa_idx, align 8
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %70) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %70) #9
  %612 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %613 unwind label %.loopexit

613:                                              ; preds = %611
  br i1 %612, label %614, label %638

614:                                              ; preds = %613
  %615 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !191
  %616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %615, ptr noundef nonnull @__func__._Z16LowerHIR_FromASTN3AST5CrateE)
          to label %617 unwind label %.loopexit

617:                                              ; preds = %614
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %616, ptr noundef nonnull @.str.75)
          to label %619 unwind label %.loopexit

619:                                              ; preds = %617
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef nonnull align 8 dereferenceable(32) %607)
          to label %621 unwind label %.loopexit

621:                                              ; preds = %619
  %622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef nonnull @.str.74)
          to label %623 unwind label %.loopexit

623:                                              ; preds = %621
  %624 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %622, ptr noundef nonnull align 8 dereferenceable(8) %608)
          to label %625 unwind label %.loopexit

625:                                              ; preds = %623
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %624, ptr noundef nonnull @.str.76)
          to label %627 unwind label %.loopexit

627:                                              ; preds = %625
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %626, ptr noundef nonnull align 8 dereferenceable(8) %595)
          to label %629 unwind label %.loopexit

629:                                              ; preds = %627
  %630 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %628, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %631 unwind label %.loopexit

631:                                              ; preds = %629
  %632 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %630, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %638 unwind label %.loopexit

633:                                              ; preds = %.lr.ph386
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %637

635:                                              ; preds = %609
  %636 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %70) #9
  br label %637

637:                                              ; preds = %635, %633
  %.pn247 = phi { ptr, i32 } [ %636, %635 ], [ %634, %633 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %70) #9
  br label %685

.loopexit:                                        ; preds = %611, %614, %617, %619, %621, %623, %625, %627, %629, %631, %641
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %685

.loopexit.split-lp:                               ; preds = %671
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %685

638:                                              ; preds = %631, %613
  %639 = load i8, ptr %.sroa.231.0..sroa_idx, align 8, !tbaa !208, !range !186, !noundef !187
  %640 = trunc nuw i8 %639 to i1
  br i1 %640, label %682, label %641

641:                                              ; preds = %638
  %642 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  %643 = getelementptr inbounds i8, ptr %642, i64 32
  %644 = invoke noundef zeroext i1 @_ZNK3HIR10SimplePatheqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %643, ptr noundef nonnull align 8 dereferenceable(8) %608)
          to label %645 unwind label %.loopexit

645:                                              ; preds = %641
  br i1 %644, label %682, label %646

646:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #9
  %647 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  %648 = getelementptr inbounds i8, ptr %647, i64 32
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #9
  %649 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %648)
          to label %650 unwind label %660

650:                                              ; preds = %646
  %651 = extractvalue { ptr, i64 } %649, 0
  store ptr %651, ptr %71, align 8
  %652 = extractvalue { ptr, i64 } %649, 1
  store i64 %652, ptr %586, align 8
  %653 = call noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %71)
  br i1 %653, label %654, label %.critedge

654:                                              ; preds = %650
  %655 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %608)
          to label %656 unwind label %662

656:                                              ; preds = %654
  %657 = extractvalue { ptr, i64 } %655, 0
  store ptr %657, ptr %72, align 8
  %658 = extractvalue { ptr, i64 } %655, 1
  store i64 %658, ptr %587, align 8
  %659 = call noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %72)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #9
  br i1 %659, label %682, label %.loopexit305

660:                                              ; preds = %646
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %664

662:                                              ; preds = %654
  %663 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #9
  br label %664

664:                                              ; preds = %662, %660
  %.pn249 = phi { ptr, i32 } [ %663, %662 ], [ %661, %660 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #9
  br label %685

.critedge:                                        ; preds = %650
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #9
  br label %.loopexit305

.loopexit305:                                     ; preds = %656, %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %665 unwind label %672

665:                                              ; preds = %.loopexit305
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %75) #9
  store ptr %607, ptr %75, align 8, !tbaa !172
  %666 = getelementptr inbounds i8, ptr %75, i64 8
  store ptr %608, ptr %666, align 8, !tbaa !172
  %667 = getelementptr inbounds i8, ptr %75, i64 16
  store ptr %69, ptr %667, align 8, !tbaa !172
  invoke void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %668 unwind label %674

668:                                              ; preds = %665
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %73, i32 noundef 0, ptr noundef nonnull %74)
          to label %669 unwind label %676

669:                                              ; preds = %668
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #9
  %670 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %670, ptr noundef nonnull @.str.12)
          to label %671 unwind label %680

671:                                              ; preds = %669
  invoke void @__cxa_throw(ptr nonnull %670, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %933 unwind label %.loopexit.split-lp

672:                                              ; preds = %.loopexit305
  %673 = landingpad { ptr, i32 }
          cleanup
  br label %679

674:                                              ; preds = %665
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %678

676:                                              ; preds = %668
  %677 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %678

678:                                              ; preds = %676, %674
  %.pn251 = phi { ptr, i32 } [ %677, %676 ], [ %675, %674 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #9
  br label %679

679:                                              ; preds = %678, %672
  %.pn251.pn = phi { ptr, i32 } [ %.pn251, %678 ], [ %673, %672 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #9
  br label %685

680:                                              ; preds = %669
  %681 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %670) #9
  br label %685

682:                                              ; preds = %645, %656, %638
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #9
  %683 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  %684 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  br i1 %684, label %.lr.ph386, label %._crit_edge387

685:                                              ; preds = %.loopexit, %.loopexit.split-lp, %680, %679, %664, %637
  %.pn254 = phi { ptr, i32 } [ %681, %680 ], [ %.pn251.pn, %679 ], [ %.pn249, %664 ], [ %.pn247, %637 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  br label %720

686:                                              ; preds = %._crit_edge387
  %687 = icmp eq i64 %604, -1
  br i1 %687, label %.thread304, label %688

.thread304:                                       ; preds = %686
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #9
  br label %695

688:                                              ; preds = %686
  %689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %77)
  %690 = load i64, ptr %689, align 8, !tbaa !207
  br label %691

691:                                              ; preds = %._crit_edge387, %688
  %692 = phi i64 [ %690, %688 ], [ %604, %._crit_edge387 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #9
  %693 = icmp eq i64 %692, -1
  br i1 %693, label %694, label %695

694:                                              ; preds = %691
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %602)
          to label %698 unwind label %706

695:                                              ; preds = %.thread304, %691
  %696 = phi i64 [ %605, %.thread304 ], [ %692, %691 ]
  %697 = add nuw i64 %696, 1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %602, i64 noundef %697, i64 noundef -1)
          to label %698 unwind label %706

698:                                              ; preds = %695, %694
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %79) #9
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %80) #9
  call void @_ZN3HIR8CratePtrC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %596)
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %589, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %699 unwind label %708

699:                                              ; preds = %698
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %590, ptr noundef nonnull align 8 dereferenceable(32) %602)
          to label %700 unwind label %710

700:                                              ; preds = %699
  invoke void @_ZSt9make_pairIRK8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1023") align 8 %79, ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef nonnull align 8 dereferenceable(72) %80)
          to label %701 unwind label %713

701:                                              ; preds = %700
  %702 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56) %588, ptr noundef nonnull align 8 dereferenceable(80) %79)
          to label %703 unwind label %715

703:                                              ; preds = %701
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %79) #9
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %80) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %80) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #9
  %704 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringN3AST11ExternCrateEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #9
  %705 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3AST11ExternCrateEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  br i1 %705, label %594, label %._crit_edge390

706:                                              ; preds = %695, %694
  %707 = landingpad { ptr, i32 }
          cleanup
  br label %719

708:                                              ; preds = %698
  %709 = landingpad { ptr, i32 }
          cleanup
  br label %712

710:                                              ; preds = %699
  %711 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %589) #9
  br label %712

712:                                              ; preds = %710, %708
  %.pn241 = phi { ptr, i32 } [ %711, %710 ], [ %709, %708 ]
  call void @_ZN3HIR8CratePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #9
  br label %718

713:                                              ; preds = %700
  %714 = landingpad { ptr, i32 }
          cleanup
  br label %717

715:                                              ; preds = %701
  %716 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %79) #9
  br label %717

717:                                              ; preds = %715, %713
  %.pn243 = phi { ptr, i32 } [ %716, %715 ], [ %714, %713 ]
  call void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %80) #9
  br label %718

718:                                              ; preds = %717, %712
  %.pn243.pn = phi { ptr, i32 } [ %.pn243, %717 ], [ %.pn241, %712 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %80) #9
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %79) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %719

719:                                              ; preds = %718, %706
  %.pn243.pn.pn = phi { ptr, i32 } [ %.pn243.pn, %718 ], [ %707, %706 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #9
  br label %720

720:                                              ; preds = %719, %685
  %.pn254.pn = phi { ptr, i32 } [ %.pn254, %685 ], [ %.pn243.pn.pn, %719 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #9
  br label %930

721:                                              ; preds = %._crit_edge390
  %722 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR10SimplePathaSERKS0_(ptr noundef nonnull align 8 dereferenceable(8) @path_Sized, ptr noundef nonnull align 8 dereferenceable(8) %591)
          to label %723 unwind label %592

723:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 216, ptr nonnull %81) #9
  call void @_ZN3HIR8ItemPathC2ERK8RcString(ptr noundef nonnull align 8 dereferenceable(56) %82, ptr noundef nonnull align 8 dereferenceable(8) %3)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %83, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #9
  invoke void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Module") align 8 %81, ptr noundef nonnull align 8 dereferenceable(480) %149, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %82, ptr noundef nonnull %83)
          to label %724 unwind label %732

724:                                              ; preds = %723
  %725 = getelementptr inbounds i8, ptr %3, i64 16
  %726 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3HIR6ModuleaSEOS0_(ptr noundef nonnull align 8 dereferenceable(216) %725, ptr noundef nonnull align 8 dereferenceable(216) %81) #9
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %81) #9
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #9
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %81) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #9
  %727 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #9
  store ptr %727, ptr %84, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #9
  %728 = call ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #9
  store ptr %728, ptr %85, align 8
  %729 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  br i1 %729, label %.lr.ph392, label %._crit_edge393

.lr.ph392:                                        ; preds = %724
  %730 = getelementptr inbounds i8, ptr %3, i64 152
  %731 = getelementptr inbounds i8, ptr %91, i64 16
  br label %734

._crit_edge393:                                   ; preds = %758, %724
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #9
  invoke void @_Z21LowerHIR_Module_ImplsRKN3AST6ModuleERN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(480) %149, ptr noundef nonnull align 8 dereferenceable(944) %3)
          to label %773 unwind label %592

732:                                              ; preds = %723
  %733 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #9
  call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %81) #9
  br label %930

734:                                              ; preds = %.lr.ph392, %758
  %735 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %84) #9
  %736 = getelementptr inbounds i8, ptr %735, i64 8
  %737 = call noundef zeroext i1 @_ZNK3HIR9MacroItem13is_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %736)
  br i1 %737, label %738, label %753

738:                                              ; preds = %734
  %739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR9MacroItem13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(56) %736)
  %740 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %739)
  %741 = getelementptr inbounds i8, ptr %740, i64 40
  %742 = call noundef zeroext i1 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %741) #9
  br i1 %742, label %743, label %753

743:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #9
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #9
  store ptr %735, ptr %88, align 8, !tbaa !172
  call void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(8) %88) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull %87)
          to label %744 unwind label %749

744:                                              ; preds = %743
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #9
  %745 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %745, ptr noundef nonnull @.str.9)
          to label %746 unwind label %751

746:                                              ; preds = %744
  invoke void @__cxa_throw(ptr nonnull %745, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %933 unwind label %747

747:                                              ; preds = %746
  %748 = landingpad { ptr, i32 }
          cleanup
  br label %772

749:                                              ; preds = %743
  %750 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #9
  br label %772

751:                                              ; preds = %744
  %752 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %745) #9
  br label %772

753:                                              ; preds = %738, %734
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %89) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #9
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %91) #9
  invoke void @_ZN3HIR9Publicity10new_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %91)
          to label %754 unwind label %761

754:                                              ; preds = %753
  call void @_ZN3HIR9MacroItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56) %731, ptr noundef nonnull align 8 dereferenceable(56) %736) #9
  invoke void @_Z15make_unique_ptrIN3HIR6VisEntINS0_9MacroItemEEEESt10unique_ptrIT_St14default_deleteIS5_EEOS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.794") align 8 %90, ptr noundef nonnull align 8 dereferenceable(72) %91)
          to label %755 unwind label %763

755:                                              ; preds = %754
  invoke void @_ZSt9make_pairIRK8RcStringSt10unique_ptrIN3HIR6VisEntINS4_9MacroItemEEESt14default_deleteIS7_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSC_INSD_IT0_E4typeEE6__typeEEOSE_OSJ_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.792") align 8 %89, ptr noundef nonnull align 8 dereferenceable(8) %735, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %756 unwind label %765

756:                                              ; preds = %755
  %757 = invoke { ptr, i8 } @_ZNSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE6insertISD_IS0_S8_EEENSt9enable_ifIXsr16is_constructibleISF_OT_EE5valueESD_INSt8__detail14_Node_iteratorISF_Lb0ELb0EEEbEE4typeESM_(ptr noundef nonnull align 8 dereferenceable(56) %730, ptr noundef nonnull align 8 dereferenceable(16) %89)
          to label %758 unwind label %767

758:                                              ; preds = %756
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #9
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #9
  call void @_ZN3HIR6VisEntINS_9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %91) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %89) #9
  %759 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %84) #9
  %760 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEES8_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  br i1 %760, label %734, label %._crit_edge393

761:                                              ; preds = %753
  %762 = landingpad { ptr, i32 }
          cleanup
  br label %771

763:                                              ; preds = %754
  %764 = landingpad { ptr, i32 }
          cleanup
  br label %770

765:                                              ; preds = %755
  %766 = landingpad { ptr, i32 }
          cleanup
  br label %769

767:                                              ; preds = %756
  %768 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #9
  br label %769

769:                                              ; preds = %767, %765
  %.pn235 = phi { ptr, i32 } [ %768, %767 ], [ %766, %765 ]
  call void @_ZNSt10unique_ptrIN3HIR6VisEntINS0_9MacroItemEEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #9
  br label %770

770:                                              ; preds = %769, %763
  %.pn235.pn = phi { ptr, i32 } [ %.pn235, %769 ], [ %764, %763 ]
  call void @_ZN3HIR6VisEntINS_9MacroItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %91) #9
  br label %771

771:                                              ; preds = %770, %761
  %.pn235.pn.pn = phi { ptr, i32 } [ %.pn235.pn, %770 ], [ %762, %761 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %89) #9
  br label %772

772:                                              ; preds = %771, %751, %749, %747
  %.pn239 = phi { ptr, i32 } [ %748, %747 ], [ %752, %751 ], [ %750, %749 ], [ %.pn235.pn.pn, %771 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #9
  br label %930

773:                                              ; preds = %._crit_edge393
  %774 = getelementptr inbounds i8, ptr %1, i64 832
  %775 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %774, ptr noundef nonnull @.str.78)
  %776 = load i32, ptr @gTargetVersion, align 4
  %777 = icmp slt i32 %776, 1
  %or.cond = select i1 %775, i1 %777, i1 false
  br i1 %or.cond, label %778, label %919

778:                                              ; preds = %773
  %779 = getelementptr inbounds i8, ptr %3, i64 760
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %93) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.79, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %780 unwind label %791

780:                                              ; preds = %778
  %781 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %782 unwind label %793

782:                                              ; preds = %780
  %783 = icmp eq i64 %781, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #9
  br i1 %783, label %784, label %807

784:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %94) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.79, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %785 unwind label %796

785:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %97) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %98) #9
  store ptr @.str.80, ptr %98, align 8, !tbaa !172
  %786 = getelementptr inbounds i8, ptr %98, i64 8
  store ptr @.str.81, ptr %786, align 8, !tbaa !172
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %97, ptr noundef nonnull align 8 dereferenceable(944) %3, i1 noundef zeroext false, ptr nonnull %98, i64 2)
          to label %787 unwind label %798

787:                                              ; preds = %785
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1010") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %788 unwind label %800

788:                                              ; preds = %787
  %789 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(40) %94)
          to label %790 unwind label %802

790:                                              ; preds = %788
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %94) #9
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %94) #9
  br label %807

791:                                              ; preds = %778
  %792 = landingpad { ptr, i32 }
          cleanup
  br label %795

793:                                              ; preds = %780
  %794 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  br label %795

795:                                              ; preds = %793, %791
  %.pn = phi { ptr, i32 } [ %794, %793 ], [ %792, %791 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #9
  br label %930

796:                                              ; preds = %784
  %797 = landingpad { ptr, i32 }
          cleanup
  br label %806

798:                                              ; preds = %785
  %799 = landingpad { ptr, i32 }
          cleanup
  br label %805

800:                                              ; preds = %787
  %801 = landingpad { ptr, i32 }
          cleanup
  br label %804

802:                                              ; preds = %788
  %803 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %94) #9
  br label %804

804:                                              ; preds = %802, %800
  %.pn207 = phi { ptr, i32 } [ %803, %802 ], [ %801, %800 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #9
  br label %805

805:                                              ; preds = %804, %798
  %.pn207.pn = phi { ptr, i32 } [ %.pn207, %804 ], [ %799, %798 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  br label %806

806:                                              ; preds = %805, %796
  %.pn207.pn.pn = phi { ptr, i32 } [ %.pn207.pn, %805 ], [ %797, %796 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %94) #9
  br label %930

807:                                              ; preds = %790, %782
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %100) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %808 unwind label %819

808:                                              ; preds = %807
  %809 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %810 unwind label %821

810:                                              ; preds = %808
  %811 = icmp eq i64 %809, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  br i1 %811, label %812, label %835

812:                                              ; preds = %810
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %101) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %103) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %813 unwind label %824

813:                                              ; preds = %812
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %105) #9
  store ptr @.str.80, ptr %105, align 8, !tbaa !172
  %814 = getelementptr inbounds i8, ptr %105, i64 8
  store ptr @.str.83, ptr %814, align 8, !tbaa !172
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %104, ptr noundef nonnull align 8 dereferenceable(944) %3, i1 noundef zeroext false, ptr nonnull %105, i64 2)
          to label %815 unwind label %826

815:                                              ; preds = %813
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1010") align 8 %101, ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(8) %104)
          to label %816 unwind label %828

816:                                              ; preds = %815
  %817 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(40) %101)
          to label %818 unwind label %830

818:                                              ; preds = %816
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %101) #9
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %101) #9
  br label %835

819:                                              ; preds = %807
  %820 = landingpad { ptr, i32 }
          cleanup
  br label %823

821:                                              ; preds = %808
  %822 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %823

823:                                              ; preds = %821, %819
  %.pn211 = phi { ptr, i32 } [ %822, %821 ], [ %820, %819 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #9
  br label %930

824:                                              ; preds = %812
  %825 = landingpad { ptr, i32 }
          cleanup
  br label %834

826:                                              ; preds = %813
  %827 = landingpad { ptr, i32 }
          cleanup
  br label %833

828:                                              ; preds = %815
  %829 = landingpad { ptr, i32 }
          cleanup
  br label %832

830:                                              ; preds = %816
  %831 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %101) #9
  br label %832

832:                                              ; preds = %830, %828
  %.pn213 = phi { ptr, i32 } [ %831, %830 ], [ %829, %828 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #9
  br label %833

833:                                              ; preds = %832, %826
  %.pn213.pn = phi { ptr, i32 } [ %.pn213, %832 ], [ %827, %826 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  br label %834

834:                                              ; preds = %833, %824
  %.pn213.pn.pn = phi { ptr, i32 } [ %.pn213.pn, %833 ], [ %825, %824 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %101) #9
  br label %930

835:                                              ; preds = %818, %810
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %107) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %836 unwind label %847

836:                                              ; preds = %835
  %837 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %838 unwind label %849

838:                                              ; preds = %836
  %839 = icmp eq i64 %837, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #9
  br i1 %839, label %840, label %863

840:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %108) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %110) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %841 unwind label %852

841:                                              ; preds = %840
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %112) #9
  store ptr @.str.80, ptr %112, align 8, !tbaa !172
  %842 = getelementptr inbounds i8, ptr %112, i64 8
  store ptr @.str.85, ptr %842, align 8, !tbaa !172
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %111, ptr noundef nonnull align 8 dereferenceable(944) %3, i1 noundef zeroext false, ptr nonnull %112, i64 2)
          to label %843 unwind label %854

843:                                              ; preds = %841
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1010") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %844 unwind label %856

844:                                              ; preds = %843
  %845 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(40) %108)
          to label %846 unwind label %858

846:                                              ; preds = %844
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %108) #9
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %108) #9
  br label %863

847:                                              ; preds = %835
  %848 = landingpad { ptr, i32 }
          cleanup
  br label %851

849:                                              ; preds = %836
  %850 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  br label %851

851:                                              ; preds = %849, %847
  %.pn217 = phi { ptr, i32 } [ %850, %849 ], [ %848, %847 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #9
  br label %930

852:                                              ; preds = %840
  %853 = landingpad { ptr, i32 }
          cleanup
  br label %862

854:                                              ; preds = %841
  %855 = landingpad { ptr, i32 }
          cleanup
  br label %861

856:                                              ; preds = %843
  %857 = landingpad { ptr, i32 }
          cleanup
  br label %860

858:                                              ; preds = %844
  %859 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %108) #9
  br label %860

860:                                              ; preds = %858, %856
  %.pn219 = phi { ptr, i32 } [ %859, %858 ], [ %857, %856 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #9
  br label %861

861:                                              ; preds = %860, %854
  %.pn219.pn = phi { ptr, i32 } [ %.pn219, %860 ], [ %855, %854 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  br label %862

862:                                              ; preds = %861, %852
  %.pn219.pn.pn = phi { ptr, i32 } [ %.pn219.pn, %861 ], [ %853, %852 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %108) #9
  br label %930

863:                                              ; preds = %846, %838
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %114) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %864 unwind label %875

864:                                              ; preds = %863
  %865 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %866 unwind label %877

866:                                              ; preds = %864
  %867 = icmp eq i64 %865, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %114) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #9
  br i1 %867, label %868, label %891

868:                                              ; preds = %866
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %115) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %117) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %869 unwind label %880

869:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %118) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %119) #9
  store ptr @.str.80, ptr %119, align 8, !tbaa !172
  %870 = getelementptr inbounds i8, ptr %119, i64 8
  store ptr @.str.87, ptr %870, align 8, !tbaa !172
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %118, ptr noundef nonnull align 8 dereferenceable(944) %3, i1 noundef zeroext false, ptr nonnull %119, i64 2)
          to label %871 unwind label %882

871:                                              ; preds = %869
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1010") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %872 unwind label %884

872:                                              ; preds = %871
  %873 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(40) %115)
          to label %874 unwind label %886

874:                                              ; preds = %872
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %115) #9
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %119) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %115) #9
  br label %891

875:                                              ; preds = %863
  %876 = landingpad { ptr, i32 }
          cleanup
  br label %879

877:                                              ; preds = %864
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  br label %879

879:                                              ; preds = %877, %875
  %.pn223 = phi { ptr, i32 } [ %878, %877 ], [ %876, %875 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %114) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #9
  br label %930

880:                                              ; preds = %868
  %881 = landingpad { ptr, i32 }
          cleanup
  br label %890

882:                                              ; preds = %869
  %883 = landingpad { ptr, i32 }
          cleanup
  br label %889

884:                                              ; preds = %871
  %885 = landingpad { ptr, i32 }
          cleanup
  br label %888

886:                                              ; preds = %872
  %887 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %115) #9
  br label %888

888:                                              ; preds = %886, %884
  %.pn225 = phi { ptr, i32 } [ %887, %886 ], [ %885, %884 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #9
  br label %889

889:                                              ; preds = %888, %882
  %.pn225.pn = phi { ptr, i32 } [ %.pn225, %888 ], [ %883, %882 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %119) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  br label %890

890:                                              ; preds = %889, %880
  %.pn225.pn.pn = phi { ptr, i32 } [ %.pn225.pn, %889 ], [ %881, %880 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %115) #9
  br label %930

891:                                              ; preds = %874, %866
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %120) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %121) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %892 unwind label %903

892:                                              ; preds = %891
  %893 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(32) %120)
          to label %894 unwind label %905

894:                                              ; preds = %892
  %895 = icmp eq i64 %893, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %121) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #9
  br i1 %895, label %896, label %919

896:                                              ; preds = %894
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %122) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %123) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %124) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %124)
          to label %897 unwind label %908

897:                                              ; preds = %896
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %125) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %126) #9
  store ptr @.str.80, ptr %126, align 8, !tbaa !172
  %898 = getelementptr inbounds i8, ptr %126, i64 8
  store ptr @.str.89, ptr %898, align 8, !tbaa !172
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %125, ptr noundef nonnull align 8 dereferenceable(944) %3, i1 noundef zeroext false, ptr nonnull %126, i64 2)
          to label %899 unwind label %910

899:                                              ; preds = %897
  invoke void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.1010") align 8 %122, ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %900 unwind label %912

900:                                              ; preds = %899
  %901 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56) %779, ptr noundef nonnull align 8 dereferenceable(40) %122)
          to label %902 unwind label %914

902:                                              ; preds = %900
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %122) #9
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %122) #9
  br label %919

903:                                              ; preds = %891
  %904 = landingpad { ptr, i32 }
          cleanup
  br label %907

905:                                              ; preds = %892
  %906 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #9
  br label %907

907:                                              ; preds = %905, %903
  %.pn229 = phi { ptr, i32 } [ %906, %905 ], [ %904, %903 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %121) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #9
  br label %930

908:                                              ; preds = %896
  %909 = landingpad { ptr, i32 }
          cleanup
  br label %918

910:                                              ; preds = %897
  %911 = landingpad { ptr, i32 }
          cleanup
  br label %917

912:                                              ; preds = %899
  %913 = landingpad { ptr, i32 }
          cleanup
  br label %916

914:                                              ; preds = %900
  %915 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %122) #9
  br label %916

916:                                              ; preds = %914, %912
  %.pn231 = phi { ptr, i32 } [ %915, %914 ], [ %913, %912 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #9
  br label %917

917:                                              ; preds = %916, %910
  %.pn231.pn = phi { ptr, i32 } [ %.pn231, %916 ], [ %911, %910 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #9
  br label %918

918:                                              ; preds = %917, %908
  %.pn231.pn.pn = phi { ptr, i32 } [ %.pn231.pn, %917 ], [ %909, %908 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %124) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %122) #9
  br label %930

919:                                              ; preds = %902, %894, %773
  invoke void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H17fix_macros_in_modE_1RN3HIR6ModuleE(ptr noundef nonnull align 8 dereferenceable(216) %725)
          to label %920 unwind label %592

920:                                              ; preds = %919
  %921 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) @g_core_crate, ptr noundef nonnull @.str.6)
          to label %922 unwind label %592

922:                                              ; preds = %920
  br i1 %921, label %923, label %925

923:                                              ; preds = %922
  %924 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) @g_core_crate, ptr noundef nonnull align 8 dereferenceable(8) @g_crate_name)
  br label %925

925:                                              ; preds = %923, %922
  store ptr null, ptr @g_crate_ptr, align 8, !tbaa !172
  invoke void @_ZN3HIR5CrateC2EOS0_(ptr noundef nonnull align 8 dereferenceable(944) %127, ptr noundef nonnull align 8 dereferenceable(944) %3)
          to label %926 unwind label %592

926:                                              ; preds = %925
  invoke void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %127)
          to label %927 unwind label %928

927:                                              ; preds = %926
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %127) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #9
  call void @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #9
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %3) #9
  call void @llvm.lifetime.end.p0(i64 944, ptr nonnull %3) #9
  ret void

928:                                              ; preds = %926
  %929 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %127) #9
  br label %930

930:                                              ; preds = %928, %918, %907, %890, %879, %862, %851, %834, %823, %806, %795, %772, %732, %720, %592, %579
  %.pn261.pn = phi { ptr, i32 } [ %.pn261, %579 ], [ %.pn254.pn, %720 ], [ %.pn239, %772 ], [ %929, %928 ], [ %593, %592 ], [ %.pn231.pn.pn, %918 ], [ %.pn229, %907 ], [ %.pn225.pn.pn, %890 ], [ %.pn223, %879 ], [ %.pn219.pn.pn, %862 ], [ %.pn217, %851 ], [ %.pn213.pn.pn, %834 ], [ %.pn211, %823 ], [ %.pn207.pn.pn, %806 ], [ %.pn, %795 ], [ %733, %732 ]
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #9
  br label %931

931:                                              ; preds = %930, %522, %520, %518, %510, %464
  %.pn290.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn290.pn.pn.pn.pn.pn.pn, %464 ], [ %.pn268, %510 ], [ %.pn261.pn, %930 ], [ %523, %522 ], [ %521, %520 ], [ %519, %518 ]
  call void @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %5) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #9
  br label %932

932:                                              ; preds = %931, %136
  %.pn290.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn290.pn.pn.pn.pn.pn.pn.pn, %931 ], [ %137, %136 ]
  call void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944) %3) #9
  call void @llvm.lifetime.end.p0(i64 944, ptr nonnull %3) #9
  resume { ptr, i32 } %.pn290.pn.pn.pn.pn.pn.pn.pn.pn

933:                                              ; preds = %746, %671, %517, %305, %283, %232
  unreachable
}

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

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

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

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEES5_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef, ptr noundef) unnamed_addr #6

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNKSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_2vEEOT_"(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 { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIR8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.988") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #4

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_3vEEOT_"(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 ptr @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_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(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRK8RcStringN3HIR9MacroItemEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.988") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(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(296) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(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(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12cvt_macro_tyENS_11ProcMacroTyE(i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapI8RcStringN3HIR9MacroItemESt4lessIS0_ESaISt4pairIKS0_S2_EEE6insertIS5_IS0_NS1_9ProcMacroEEEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSE_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRK8RcStringN3HIR9ProcMacroEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.998") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR9ProcMacroD2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE6insertISC_IS5_S7_EEENSt9enable_ifIXsr16is_constructibleISE_OT_EE5valueESC_INSt8__detail14_Node_iteratorISE_Lb0ELb1EEEbEE4typeESL_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSB_INSC_IT0_E4typeEE6__typeEEOSD_OSI_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1010") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEED2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_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_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb1EEESE_(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(40) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSD_INSE_IT0_E4typeEE6__typeEEOSF_OSK_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1010") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

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

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

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

; Function Attrs: nounwind
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i64 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE6insertIS7_IS0_S2_EEENSt9enable_ifIXsr16is_constructibleIS9_OT_EE5valueES7_INSt8__detail14_Node_iteratorIS9_Lb0ELb0EEEbEE4typeESG_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRK8RcStringN3HIR11ExternCrateEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS6_INS7_IT0_E4typeEE6__typeEEOS8_OSD_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1023") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairI8RcStringN3HIR11ExternCrateEED2Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR11ExternCrateD2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #0 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIR10SimplePathaSERKS0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR8ItemPathC2ERK8RcString(ptr noundef nonnull align 8 dereferenceable(56), 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(216) ptr @_ZN3HIR6ModuleaSEOS0_(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(216)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ16LowerHIR_FromASTN3AST5CrateEE3$_7vEEOT_"(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 @_ZSt9make_pairIRK8RcStringSt10unique_ptrIN3HIR6VisEntINS4_9MacroItemEEESt14default_deleteIS7_EEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSC_INSD_IT0_E4typeEE6__typeEEOSE_OSJ_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.792") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS9_INSA_IT0_E4typeEE6__typeEEOSB_OSG_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.1010") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H12resolve_pathE_0RKN3HIR5CrateEbSt16initializer_listIPKcE(ptr dead_on_unwind noalias writable sret(%"struct.HIR::SimplePath") align 8, ptr noundef nonnull align 8 dereferenceable(944), i1 noundef zeroext, ptr, i64) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ16LowerHIR_FromASTN3AST5CrateEEN1H17fix_macros_in_modE_1RN3HIR6ModuleE(ptr noundef nonnull align 8 dereferenceable(216)) local_unnamed_addr #4 align 2

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

declare void @_ZN3HIR8CratePtrC1ENS_5CrateE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR5CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(944)) unnamed_addr #0 align 2

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

attributes #0 = { 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 #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind }
attributes #10 = { noreturn nounwind }
attributes #11 = { noreturn }

!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, !85, i64 788}
!6 = !{!"_ZTSN3AST5CrateE", !7, i64 0, !15, i64 24, !24, i64 72, !27, i64 552, !64, i64 576, !69, i64 624, !26, i64 672, !26, i64 680, !26, i64 688, !26, i64 696, !44, i64 704, !72, i64 712, !76, i64 736, !80, i64 760, !84, i64 784, !85, i64 788, !86, i64 792, !45, i64 800, !45, i64 832, !26, i64 864, !87, i64 872}
!7 = !{!"_ZTSN3AST13AttributeListE", !8, i64 0}
!8 = !{!"_ZTSSt6vectorIN3AST9AttributeESaIS1_EE", !9, i64 0}
!9 = !{!"_ZTSSt12_Vector_baseIN3AST9AttributeESaIS1_EE", !10, i64 0}
!10 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE12_Vector_implE", !11, i64 0}
!11 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!12 = !{!"any pointer", !13, i64 0}
!13 = !{!"omnipotent char", !14, i64 0}
!14 = !{!"Simple C++ TBAA"}
!15 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !16, i64 0}
!16 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !17, i64 0}
!17 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !18, i64 0, !20, i64 8}
!18 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !19, i64 0}
!19 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!20 = !{!"_ZTSSt15_Rb_tree_header", !21, i64 0, !23, i64 32}
!21 = !{!"_ZTSSt18_Rb_tree_node_base", !22, i64 0, !12, i64 8, !12, i64 16, !12, i64 24}
!22 = !{!"_ZTSSt14_Rb_tree_color", !13, i64 0}
!23 = !{!"long", !13, i64 0}
!24 = !{!"_ZTSN3AST6ModuleE", !25, i64 0, !31, i64 32, !35, i64 56, !39, i64 80, !43, i64 104, !44, i64 176, !13, i64 177, !47, i64 184, !47, i64 240, !47, i64 296, !47, i64 352, !52, i64 408, !56, i64 432, !60, i64 456}
!25 = !{!"_ZTSN3AST12AbsolutePathE", !26, i64 0, !27, i64 8}
!26 = !{!"_ZTS8RcString", !12, i64 0}
!27 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!31 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!35 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!39 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!43 = !{!"_ZTSN3AST6Module8FileInfoE", !44, i64 0, !44, i64 1, !45, i64 8, !45, i64 40}
!44 = !{!"bool", !13, i64 0}
!45 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !46, i64 0, !23, i64 8, !13, i64 16}
!46 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!47 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !48, i64 0}
!48 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3AST6Module8IndexEntEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE", !12, i64 0, !23, i64 8, !49, i64 16, !23, i64 24, !50, i64 32, !12, i64 48}
!49 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !12, i64 0}
!50 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !51, i64 0, !23, i64 8}
!51 = !{!"float", !13, i64 0}
!52 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !53, i64 0}
!53 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!56 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!60 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!64 = !{!"_ZTSSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !65, i64 0}
!65 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !66, i64 0}
!66 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !67, i64 0, !20, i64 8}
!67 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8RcStringEE", !68, i64 0}
!68 = !{!"_ZTSSt4lessI8RcStringE"}
!69 = !{!"_ZTSSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE", !70, i64 0}
!70 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !71, i64 0}
!71 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !67, i64 0, !20, i64 8}
!72 = !{!"_ZTSSt6vectorIN3AST8TestDescESaIS1_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseIN3AST8TestDescESaIS1_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!76 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!80 = !{!"_ZTSSt6vectorIN3AST12ProcMacroDefESaIS1_EE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!84 = !{!"_ZTSN3AST7EditionE", !13, i64 0}
!85 = !{!"_ZTSN3AST5Crate4TypeE", !13, i64 0}
!86 = !{!"_ZTSN3AST5Crate7LoadStdE", !13, i64 0}
!87 = !{!"_ZTSN3AST4PathE", !88, i64 8, !90, i64 56}
!88 = !{!"_ZTSN3AST4Path5ClassE", !89, i64 0, !13, i64 8}
!89 = !{!"_ZTSN3AST4Path5Class3TagE", !13, i64 0}
!90 = !{!"_ZTSN3AST4Path8BindingsE", !91, i64 0, !94, i64 64, !97, i64 128}
!91 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_ValueEEE", !25, i64 0, !92, i64 32}
!92 = !{!"_ZTSN3AST17PathBinding_ValueE", !93, i64 0, !13, i64 8}
!93 = !{!"_ZTSN3AST17PathBinding_Value3TagE", !13, i64 0}
!94 = !{!"_ZTSN3AST11PathBindingINS_16PathBinding_TypeEEE", !25, i64 0, !95, i64 32}
!95 = !{!"_ZTSN3AST16PathBinding_TypeE", !96, i64 0, !13, i64 8}
!96 = !{!"_ZTSN3AST16PathBinding_Type3TagE", !13, i64 0}
!97 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_MacroEEE", !25, i64 0, !98, i64 32}
!98 = !{!"_ZTSN3AST17PathBinding_MacroE", !99, i64 0, !13, i64 8}
!99 = !{!"_ZTSN3AST17PathBinding_Macro3TagE", !13, i64 0}
!100 = !{!6, !84, i64 784}
!101 = !{!102, !84, i64 8}
!102 = !{!"_ZTSN3HIR5CrateE", !26, i64 0, !84, i64 8, !103, i64 16, !118, i64 232, !122, i64 256, !126, i64 280, !136, i64 376, !140, i64 424, !143, i64 472, !146, i64 520, !150, i64 544, !158, i64 640, !161, i64 688, !27, i64 736, !164, i64 760, !27, i64 816, !166, i64 840, !168, i64 896, !76, i64 920}
!103 = !{!"_ZTSN3HIR6ModuleE", !104, i64 0, !108, i64 24, !110, i64 80, !112, i64 136, !114, i64 192}
!104 = !{!"_ZTSSt6vectorIN3HIR10SimplePathESaIS1_EE", !105, i64 0}
!105 = !{!"_ZTSSt12_Vector_baseIN3HIR10SimplePathESaIS1_EE", !106, i64 0}
!106 = !{!"_ZTSNSt12_Vector_baseIN3HIR10SimplePathESaIS1_EE12_Vector_implE", !107, i64 0}
!107 = !{!"_ZTSNSt12_Vector_baseIN3HIR10SimplePathESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!108 = !{!"_ZTSSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9ValueItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE", !109, i64 0}
!109 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_St10unique_ptrIN3HIR6VisEntINS4_9ValueItemEEESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !12, i64 0, !23, i64 8, !49, i64 16, !23, i64 24, !50, i64 32, !12, i64 48}
!110 = !{!"_ZTSSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_8TypeItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE", !111, i64 0}
!111 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_St10unique_ptrIN3HIR6VisEntINS4_8TypeItemEEESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !12, i64 0, !23, i64 8, !49, i64 16, !23, i64 24, !50, i64 32, !12, i64 48}
!112 = !{!"_ZTSSt13unordered_mapI8RcStringSt10unique_ptrIN3HIR6VisEntINS2_9MacroItemEEESt14default_deleteIS5_EESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S8_EEE", !113, i64 0}
!113 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_St10unique_ptrIN3HIR6VisEntINS4_9MacroItemEEESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !12, i64 0, !23, i64 8, !49, i64 16, !23, i64 24, !50, i64 32, !12, i64 48}
!114 = !{!"_ZTSSt6vectorISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE", !115, i64 0}
!115 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE", !116, i64 0}
!116 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE12_Vector_implE", !117, i64 0}
!117 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6StaticESt14default_deleteIS4_EEESaIS8_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!118 = !{!"_ZTSSt6vectorISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE", !119, i64 0}
!119 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE", !120, i64 0}
!120 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE12_Vector_implE", !121, i64 0}
!121 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_8TypeItemEEESt14default_deleteIS6_EEESaISA_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!122 = !{!"_ZTSSt6vectorISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE", !123, i64 0}
!123 = !{!"_ZTSSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE", !124, i64 0}
!124 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE12_Vector_implE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseISt4pairI8RcStringSt10unique_ptrIN3HIR6VisEntINS3_9ValueItemEEESt14default_deleteIS6_EEESaISA_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!126 = !{!"_ZTSN3HIR5Crate9ImplGroupISt10unique_ptrINS_8TypeImplESt14default_deleteIS3_EEEE", !127, i64 0, !132, i64 48, !132, i64 72}
!127 = !{!"_ZTSSt3mapIN3HIR10SimplePathESt6vectorISt10unique_ptrINS0_8TypeImplESt14default_deleteIS4_EESaIS7_EESt4lessIS1_ESaISt4pairIKS1_S9_EEE", !128, i64 0}
!128 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorISt10unique_ptrINS0_8TypeImplESt14default_deleteIS6_EESaIS9_EEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE", !129, i64 0}
!129 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorISt10unique_ptrINS0_8TypeImplESt14default_deleteIS6_EESaIS9_EEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !130, i64 0, !20, i64 8}
!130 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !131, i64 0}
!131 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}
!132 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE", !133, i64 0}
!133 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE", !134, i64 0}
!134 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !135, i64 0}
!135 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8TypeImplESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!136 = !{!"_ZTSN3HIR13InherentCacheE", !137, i64 0}
!137 = !{!"_ZTSSt3mapI8RcStringN3HIR13InherentCache5InnerESt4lessIS0_ESaISt4pairIKS0_S3_EEE", !138, i64 0}
!138 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR13InherentCache5InnerEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !139, i64 0}
!139 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3HIR13InherentCache5InnerEESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !67, i64 0, !20, i64 8}
!140 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupISt10unique_ptrINS0_9TraitImplESt14default_deleteIS5_EEEESt4lessIS1_ESaISt4pairIKS1_S9_EEE", !141, i64 0}
!141 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_9TraitImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE", !142, i64 0}
!142 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_9TraitImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !130, i64 0, !20, i64 8}
!143 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupISt10unique_ptrINS0_10MarkerImplESt14default_deleteIS5_EEEESt4lessIS1_ESaISt4pairIKS1_S9_EEE", !144, i64 0}
!144 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_10MarkerImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE", !145, i64 0}
!145 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupISt10unique_ptrINS0_10MarkerImplESt14default_deleteIS7_EEEEESt10_Select1stISC_ESt4lessIS1_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !130, i64 0, !20, i64 8}
!146 = !{!"_ZTSSt6vectorIN3HIR14GlobalAssemblyESaIS1_EE", !147, i64 0}
!147 = !{!"_ZTSSt12_Vector_baseIN3HIR14GlobalAssemblyESaIS1_EE", !148, i64 0}
!148 = !{!"_ZTSNSt12_Vector_baseIN3HIR14GlobalAssemblyESaIS1_EE12_Vector_implE", !149, i64 0}
!149 = !{!"_ZTSNSt12_Vector_baseIN3HIR14GlobalAssemblyESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!150 = !{!"_ZTSN3HIR5Crate9ImplGroupIPKNS_8TypeImplEEE", !151, i64 0, !154, i64 48, !154, i64 72}
!151 = !{!"_ZTSSt3mapIN3HIR10SimplePathESt6vectorIPKNS0_8TypeImplESaIS5_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !152, i64 0}
!152 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorIPKNS0_8TypeImplESaIS7_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !153, i64 0}
!153 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_St6vectorIPKNS0_8TypeImplESaIS7_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !130, i64 0, !20, i64 8}
!154 = !{!"_ZTSSt6vectorIPKN3HIR8TypeImplESaIS3_EE", !155, i64 0}
!155 = !{!"_ZTSSt12_Vector_baseIPKN3HIR8TypeImplESaIS3_EE", !156, i64 0}
!156 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR8TypeImplESaIS3_EE12_Vector_implE", !157, i64 0}
!157 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR8TypeImplESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!158 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupIPKNS0_9TraitImplEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !159, i64 0}
!159 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_9TraitImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !160, i64 0}
!160 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_9TraitImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !130, i64 0, !20, i64 8}
!161 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_5Crate9ImplGroupIPKNS0_10MarkerImplEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !162, i64 0}
!162 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_10MarkerImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !163, i64 0}
!163 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_5Crate9ImplGroupIPKNS0_10MarkerImplEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !130, i64 0, !20, i64 8}
!164 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE", !165, i64 0}
!165 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3HIR10SimplePathEESaISA_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !12, i64 0, !23, i64 8, !49, i64 16, !23, i64 24, !50, i64 32, !12, i64 48}
!166 = !{!"_ZTSSt13unordered_mapI8RcStringN3HIR11ExternCrateESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE", !167, i64 0}
!167 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3HIR11ExternCrateEESaIS5_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE", !12, i64 0, !23, i64 8, !49, i64 16, !23, i64 24, !50, i64 32, !12, i64 48}
!168 = !{!"_ZTSSt6vectorIN3HIR13ExternLibraryESaIS1_EE", !169, i64 0}
!169 = !{!"_ZTSSt12_Vector_baseIN3HIR13ExternLibraryESaIS1_EE", !170, i64 0}
!170 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ExternLibraryESaIS1_EE12_Vector_implE", !171, i64 0}
!171 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ExternLibraryESaIS1_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!172 = !{!12, !12, i64 0}
!173 = !{!174, !44, i64 8}
!174 = !{!"_ZTS10MacroRules", !44, i64 8, !44, i64 9, !26, i64 16, !84, i64 24, !175, i64 32, !182, i64 40}
!175 = !{!"_ZTSN5Ident7HygieneE", !176, i64 0}
!176 = !{!"_ZTSSt10unique_ptrIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !177, i64 0}
!177 = !{!"_ZTSSt15__uniq_ptr_dataIN5Ident7Hygiene5InnerESt14default_deleteIS2_ELb1ELb1EE", !178, i64 0}
!178 = !{!"_ZTSSt15__uniq_ptr_implIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !179, i64 0}
!179 = !{!"_ZTSSt5tupleIJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !180, i64 0}
!180 = !{!"_ZTSSt11_Tuple_implILm0EJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !181, i64 0}
!181 = !{!"_ZTSSt10_Head_baseILm0EPN5Ident7Hygiene5InnerELb0EE", !12, i64 0}
!182 = !{!"_ZTSSt6vectorI13MacroRulesArmSaIS0_EE", !183, i64 0}
!183 = !{!"_ZTSSt12_Vector_baseI13MacroRulesArmSaIS0_EE", !184, i64 0}
!184 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE12_Vector_implE", !185, i64 0}
!185 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!186 = !{i8 0, i8 2}
!187 = !{}
!188 = !{!189, !44, i64 8}
!189 = !{!"_ZTSSt4pairISt17_Rb_tree_iteratorIS_IK8RcStringN3HIR9MacroItemEEEbE", !190, i64 0, !44, i64 8}
!190 = !{!"_ZTSSt17_Rb_tree_iteratorISt4pairIK8RcStringN3HIR9MacroItemEEE", !12, i64 0}
!191 = !{!192, !192, i64 0}
!192 = !{!"int", !13, i64 0}
!193 = distinct !{!193, !194}
!194 = !{!"llvm.loop.mustprogress"}
!195 = !{!196, !44, i64 0}
!196 = !{!"_ZTSN3AST6Module11MacroImportE", !44, i64 0, !26, i64 8, !25, i64 16, !197, i64 48}
!197 = !{!"_ZTS8MacroRef", !198, i64 0, !13, i64 8}
!198 = !{!"_ZTSN8MacroRef3TagE", !13, i64 0}
!199 = !{!200, !201, i64 0}
!200 = !{!"_ZTSN3AST12ProcMacroDefE", !201, i64 0, !26, i64 8, !25, i64 16, !76, i64 48}
!201 = !{!"_ZTSN3AST11ProcMacroTyE", !13, i64 0}
!202 = !{!203, !204, i64 0}
!203 = !{!"_ZTSN3HIR9ProcMacroE", !204, i64 0, !26, i64 8, !205, i64 16, !76, i64 24}
!204 = !{!"_ZTSN3HIR9ProcMacro2TyE", !13, i64 0}
!205 = !{!"_ZTSN3HIR10SimplePathE", !206, i64 0}
!206 = !{!"_ZTS10ThinVectorI8RcStringE", !12, i64 0}
!207 = !{!23, !23, i64 0}
!208 = !{!209, !44, i64 8}
!209 = !{!"_ZTSSt4pairINSt8__detail14_Node_iteratorIS_IKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEEbE", !210, i64 0, !44, i64 8}
!210 = !{!"_ZTSNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb0ELb1EEE", !211, i64 0}
!211 = !{!"_ZTSNSt8__detail19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR10SimplePathEELb1EEE", !12, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass