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

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

%class.RcString = type { ptr }
%"class.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.HIR::Path" = type { %"class.HIR::Path::Data" }
%"class.HIR::Path::Data" = type { i32, %"union.HIR::Path::Data::DataUnion" }
%"union.HIR::Path::Data::DataUnion" = type { %"struct.HIR::Path::Data::Data_UfcsKnown" }
%"struct.HIR::Path::Data::Data_UfcsKnown" = type { %"class.HIR::TypeRef", %"class.HIR::GenericPath", %class.RcString, %"struct.HIR::PathParams", %"class.std::unique_ptr.106" }
%"class.HIR::TypeRef" = type { ptr }
%"class.HIR::GenericPath" = type { %"struct.HIR::SimplePath", %"struct.HIR::PathParams" }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"struct.HIR::PathParams" = type { %class.ThinVector.114, %class.ThinVector.115, %class.ThinVector.116 }
%class.ThinVector.114 = type { ptr }
%class.ThinVector.115 = type { ptr }
%class.ThinVector.116 = type { ptr }
%"class.std::unique_ptr.106" = type { %"struct.std::__uniq_ptr_data.107" }
%"struct.std::__uniq_ptr_data.107" = type { %"class.std::__uniq_ptr_impl.108" }
%"class.std::__uniq_ptr_impl.108" = type { %"class.std::tuple.109" }
%"class.std::tuple.109" = type { %"struct.std::_Tuple_impl.110" }
%"struct.std::_Tuple_impl.110" = type { %"struct.std::_Head_base.113" }
%"struct.std::_Head_base.113" = type { ptr }
%"struct.HIR::TypeAlias" = type { %"class.HIR::GenericParams", %"class.HIR::TypeRef" }
%"class.HIR::GenericParams" = type { %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector.18", %"class.std::vector.23" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Struct" = type <{ %"class.HIR::GenericParams", i32, [4 x i8], %"class.HIR::Struct::Data", i32, i32, %"struct.HIR::TraitMarkings", %"struct.HIR::StructMarkings", i32, [4 x i8] }>
%"class.HIR::Struct::Data" = type { i32, %"union.HIR::Struct::Data::DataUnion" }
%"union.HIR::Struct::Data::DataUnion" = type { %"class.std::vector.365" }
%"class.std::vector.365" = type { %"struct.std::_Vector_base.366" }
%"struct.std::_Vector_base.366" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TraitMarkings" = type { i8, i8, i8, %"class.std::map.375" }
%"class.std::map.375" = type { %"class.std::_Rb_tree.376" }
%"class.std::_Rb_tree.376" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.HIR::StructMarkings" = type { i8, i32, i32, i32, i32, i32, i32, i8, i8, %class.U128 }
%class.U128 = type { i64, i64 }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.HIR::Enum" = type { %"class.HIR::GenericParams", i8, i32, %"class.HIR::Enum::Class", %"struct.HIR::TraitMarkings" }
%"class.HIR::Enum::Class" = type { i32, %"union.HIR::Enum::Class::DataUnion" }
%"union.HIR::Enum::Class::DataUnion" = type { %"class.std::vector.403", [8 x i8] }
%"class.std::vector.403" = type { %"struct.std::_Vector_base.404" }
%"struct.std::_Vector_base.404" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.HIR::Union" = type { %"class.HIR::GenericParams", i32, %"class.std::vector.370", %"struct.HIR::TraitMarkings" }
%"class.std::vector.370" = type { %"struct.std::_Vector_base.371" }
%"struct.std::_Vector_base.371" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Trait" = type { %"class.HIR::GenericParams", %"struct.HIR::LifetimeRef", %"class.std::vector.126", i8, %"class.std::unordered_map", %"class.std::unordered_map.317", %"class.std::unordered_multimap", %"class.std::unordered_map.344", i32, %"class.std::vector.126", %"struct.HIR::SimplePath" }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_map.317" = type { %"class.std::_Hashtable.318" }
%"class.std::_Hashtable.318" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.331" }
%"class.std::_Hashtable.331" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.344" = type { %"class.std::_Hashtable.345" }
%"class.std::_Hashtable.345" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.126" = type { %"struct.std::_Vector_base.127" }
%"struct.std::_Vector_base.127" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Function" = type { i8, %"struct.HIR::Linkage", i32, %"class.HIR::TypeRef", %class.RcString, i8, i8, %"class.HIR::GenericParams", %"class.std::vector.529", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %"struct.HIR::Function::Markings" }
%"struct.HIR::Linkage" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::vector.529" = type { %"struct.std::_Vector_base.530" }
%"struct.std::_Vector_base.530" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.93", %"class.std::vector.93", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.93" = type { %"struct.std::_Vector_base.94" }
%"struct.std::_Vector_base.94" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MIR::FunctionPointer" = type { ptr }
%"class.HIR::ExprStatePtr" = type { ptr }
%"struct.HIR::Function::Markings" = type { %"class.std::vector.510", i8, i32 }
%"class.std::vector.510" = type { %"struct.std::_Vector_base.511" }
%"struct.std::_Vector_base.511" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TraitAlias" = type { %"class.HIR::GenericParams", %"class.std::vector.126" }
%"class.HIR::ValueItem" = type { i32, %"union.HIR::ValueItem::DataUnion" }
%"union.HIR::ValueItem::DataUnion" = type { %"class.HIR::Static" }
%"class.HIR::Static" = type { %"class.HIR::GenericParams", %"struct.HIR::Linkage", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %struct.EncodedLiteral, i8, i8, i8, %"class.std::map.551" }
%struct.EncodedLiteral = type { %"class.std::vector.541", %"class.std::vector.546" }
%"class.std::vector.541" = type { %"struct.std::_Vector_base.542" }
%"struct.std::_Vector_base.542" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.546" = type { %"struct.std::_Vector_base.547" }
%"struct.std::_Vector_base.547" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.551" = type { %"class.std::_Rb_tree.552" }
%"class.std::_Rb_tree.552" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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 }
%"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.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.805 = type { ptr }
%class.anon.806 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.807" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.808" = type { ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.HIR::TypeItem" = type { i32, %"union.HIR::TypeItem::DataUnion" }
%"union.HIR::TypeItem::DataUnion" = type { %"class.HIR::Trait" }
%"class.__gnu_cxx::__normal_iterator.809" = type { ptr }
%"class.HIR::GlobalAssembly" = type <{ %"class.std::vector.445", %"class.std::vector.818", %"struct.AsmCommon::Options", [4 x i8] }>
%"class.std::vector.445" = type { %"struct.std::_Vector_base.446" }
%"struct.std::_Vector_base.446" = type { %"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl" }
%"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl" = type { %"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.818" = type { %"struct.std::_Vector_base.819" }
%"struct.std::_Vector_base.819" = type { %"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AsmCommon::Options" = type { i8, [3 x i8] }
%"class.__gnu_cxx::__normal_iterator.823" = type { ptr }
%struct.Span = type { ptr }
%class.anon.824 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.825" = type { ptr }
%"class.HIR::ExternLibrary" = type { %"class.std::__cxx11::basic_string" }
%"struct.HIR::TypeItem::Data_Import" = type { %"struct.HIR::SimplePath", i8, i32 }
%"class.std::initializer_list" = type { ptr, i64 }
%class.anon.826 = type { i8 }
%"class.HIR::ExternType" = type { %"struct.HIR::TraitMarkings" }
%"struct.HIR::ValueItem::Data_StructConstant" = type { %"struct.HIR::SimplePath" }
%"struct.HIR::ValueItem::Data_StructConstructor" = type { %"struct.HIR::SimplePath" }
%"class.std::function.413" = type { %"class.std::_Function_base", ptr }
%class.anon.828 = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.829" = type { ptr }
%class.anon.831 = type { ptr }
%class.anon.837 = type { 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.MacroRulesPtr = type { ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base.838" }
%"struct.std::__detail::_Node_iterator_base.838" = type { ptr }
%"class.std::span" = type { ptr, i64 }
%"struct.HIR::ValueItem::Data_Import" = type { %"struct.HIR::SimplePath", i8, i32 }
%"struct.HIR::MacroItem::Data_Import" = type { %"struct.HIR::SimplePath" }
%"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 }
%"struct.AST::Named" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %"class.AST::Item" }
%"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.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.AST::Item" = type { i32, %"union.AST::Item::DataUnion" }
%"union.AST::Item::DataUnion" = type { %"class.AST::Module" }
%"class.AST::GlobalAsm" = type <{ %"class.std::vector.445", %"class.std::vector.450", %"struct.AsmCommon::Options", [4 x i8] }>
%"class.std::vector.450" = type { %"struct.std::_Vector_base.451" }
%"struct.std::_Vector_base.451" = type { %"struct.std::_Vector_base<AST::Path, std::allocator<AST::Path>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Path, std::allocator<AST::Path>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Path, std::allocator<AST::Path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Path, std::allocator<AST::Path>>::_Vector_impl_data" = type { ptr, ptr, 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" }
%"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::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.AST::ExternBlock" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.307", %"class.std::vector.440" }
%"class.std::vector.307" = type { %"struct.std::_Vector_base.308" }
%"struct.std::_Vector_base.308" = type { %"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.440" = type { %"struct.std::_Vector_base.441" }
%"struct.std::_Vector_base.441" = type { %"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::ExternBlock::Link" = type { %"class.std::__cxx11::basic_string" }
%"struct.AST::Item::Data_Crate" = type { %class.RcString }
%class.TypeRef = type { %struct.Span, %class.TypeData }
%class.TypeData = type { i32, %"union.TypeData::DataUnion" }
%"union.TypeData::DataUnion" = type { %"struct.TypeData::Data_ErasedType", [32 x i8] }
%"struct.TypeData::Data_ErasedType" = type { %"class.std::vector.83", %"class.std::vector.83", %"class.std::vector.88" }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.88" = type { %"struct.std::_Vector_base.89" }
%"struct.std::_Vector_base.89" = type { %"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::GenericParams" = type { %"class.std::vector.28", %"class.std::vector.33" }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Struct" = type { %"class.AST::GenericParams", %"class.AST::StructData", %"struct.AST::Struct::Markings" }
%"class.AST::StructData" = type { i32, %"union.AST::StructData::DataUnion" }
%"union.AST::StructData::DataUnion" = type { %"struct.AST::StructData::Data_Tuple" }
%"struct.AST::StructData::Data_Tuple" = type { %"class.std::vector.383" }
%"class.std::vector.383" = type { %"struct.std::_Vector_base.384" }
%"struct.std::_Vector_base.384" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Struct::Markings" = type { i32, i64, i64, i8, %class.U128, i8, %class.U128 }
%"struct.AST::Named.830" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %class.MacroRulesPtr }
%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.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::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::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }

@g_crate_name = external dso_local global %class.RcString, align 8
@g_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
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [24 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.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE = external hidden unnamed_addr constant [16 x i8], align 1
@__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE = external hidden unnamed_addr constant [105 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [15 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 align 2

; 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #4

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

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

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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #0 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 @_Z13LowerHIR_PathRK4SpanRKN3AST4PathE17FromAST_PathClass(ptr dead_on_unwind noalias writable sret(%"class.HIR::Path") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240), i32 noundef) #5

declare noundef zeroext i1 @_Z13debug_enabledv() #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind noalias writable sret(%"struct.HIR::SimplePath") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240), i32 noundef, i1 noundef zeroext) #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8)) #5 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 uwtable
declare dso_local void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z18LowerHIR_TypeAliasRKN3HIR8ItemPathERKN3AST9TypeAliasE(ptr dead_on_unwind noalias writable sret(%"struct.HIR::TypeAlias") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(216)) #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15LowerHIR_StructRK4SpanN3HIR8ItemPathERKN3AST6StructERKNS4_13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Struct") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(24)) #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13LowerHIR_EnumN3HIR8ItemPathERKN3AST4EnumERKNS1_13AttributeListESt8functionIFv8RcStringNS_6StructEEE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Enum") align 8, ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #5

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(112)) #5 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: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14LowerHIR_UnionN3HIR8ItemPathERKN3AST5UnionERKNS1_13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Union") align 8, ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(76), ptr noundef nonnull align 8 dereferenceable(24)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14LowerHIR_TraitN3HIR10SimplePathERKN3AST5TraitE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Trait") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(128)) #5

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17LowerHIR_FunctionN3HIR8ItemPathERKN3AST13AttributeListERKNS1_8FunctionERKNS_7TypeRefE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Function") align 8, ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19LowerHIR_TraitAliasRK4SpanN3HIR8ItemPathERKN3AST10TraitAliasE(ptr dead_on_unwind noalias writable sret(%"struct.HIR::TraitAlias") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(72)) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17_add_mod_mac_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9MacroItemE(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef) #5

; 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: mustprogress uwtable
declare dso_local void @_Z15LowerHIR_StaticN3HIR8ItemPathERKN3AST13AttributeListERKNS1_6StaticERK4SpanRK8RcString(ptr dead_on_unwind noalias writable sret(%"class.HIR::ValueItem") align 8, ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Module") align 8 %0, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef byval(%"class.HIR::ItemPath") align 8 %2, ptr noundef %3) #5 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %class.TraceLog, align 8
  %9 = alloca %"class.std::function", align 8
  %10 = alloca %class.anon.805, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i1, align 1
  %14 = alloca %"struct.HIR::SimplePath", align 8
  %15 = alloca %class.anon.806, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.807", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.807", align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"struct.HIR::SimplePath", align 8
  %21 = alloca %class.RcString, align 8
  %22 = alloca %"class.std::vector", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.808", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.808", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.808", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.808", align 8
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca %class.RcString, align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %33 = alloca %"class.HIR::ItemPath", align 8
  %34 = alloca %"class.HIR::TypeItem", align 8
  %35 = alloca %"class.HIR::Module", align 8
  %36 = alloca %"class.HIR::ItemPath", align 8
  %37 = alloca %"class.std::vector.561", align 8
  %38 = alloca %class.RcString, align 8
  %39 = alloca %"class.HIR::Publicity", align 8
  %40 = alloca %"struct.HIR::SimplePath", align 8
  %41 = alloca %"class.HIR::TypeItem", align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.809", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.809", align 8
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca %"class.HIR::ItemPath", align 8
  %50 = alloca i8, align 1
  %51 = alloca ptr, align 8
  %52 = alloca i8, align 1
  %53 = alloca ptr, align 8
  %54 = alloca i8, align 1
  %55 = alloca ptr, align 8
  %56 = alloca i8, align 1
  %57 = alloca ptr, align 8
  %58 = alloca i8, align 1
  %59 = alloca ptr, align 8
  %60 = alloca %"class.HIR::GlobalAssembly", align 8
  %61 = alloca ptr, align 8
  %62 = alloca %"class.__gnu_cxx::__normal_iterator.823", align 8
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.823", align 8
  %64 = alloca ptr, align 8
  %65 = alloca %"class.HIR::Path", align 8
  %66 = alloca %struct.Span, align 8
  %67 = alloca i8, align 1
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca %struct.Span, align 8
  %71 = alloca %"class.std::function", align 8
  %72 = alloca %class.anon.824, align 8
  %73 = alloca ptr, align 8
  %74 = alloca %"class.__gnu_cxx::__normal_iterator.825", align 8
  %75 = alloca %"class.__gnu_cxx::__normal_iterator.825", align 8
  %76 = alloca ptr, align 8
  %77 = alloca %"class.HIR::ExternLibrary", align 8
  %78 = alloca i8, align 1
  %79 = alloca ptr, align 8
  %80 = alloca i8, align 1
  %81 = alloca ptr, align 8
  %82 = alloca i8, align 1
  %83 = alloca ptr, align 8
  %84 = alloca i8, align 1
  %85 = alloca ptr, align 8
  %86 = alloca %class.RcString, align 8
  %87 = alloca %"class.HIR::Publicity", align 8
  %88 = alloca %"class.HIR::TypeItem", align 8
  %89 = alloca %"class.HIR::Module", align 8
  %90 = alloca %"class.HIR::ItemPath", align 8
  %91 = alloca %"class.std::vector.561", align 8
  %92 = alloca i8, align 1
  %93 = alloca ptr, align 8
  %94 = alloca %class.RcString, align 8
  %95 = alloca %"class.HIR::Publicity", align 8
  %96 = alloca %"class.HIR::TypeItem", align 8
  %97 = alloca %"struct.HIR::TypeItem::Data_Import", align 8
  %98 = alloca %class.RcString, align 8
  %99 = alloca %"class.std::initializer_list", align 8
  %100 = alloca i8, align 1
  %101 = alloca ptr, align 8
  %102 = alloca %struct.Span, align 8
  %103 = alloca %"class.std::function", align 8
  %104 = alloca %class.anon.826, align 1
  %105 = alloca %class.RcString, align 8
  %106 = alloca %"class.HIR::Publicity", align 8
  %107 = alloca %"class.HIR::TypeItem", align 8
  %108 = alloca %"class.HIR::ExternType", align 8
  %109 = alloca %class.RcString, align 8
  %110 = alloca %"class.HIR::Publicity", align 8
  %111 = alloca %"class.HIR::TypeItem", align 8
  %112 = alloca %"struct.HIR::TypeAlias", align 8
  %113 = alloca i8, align 1
  %114 = alloca ptr, align 8
  %115 = alloca %class.RcString, align 8
  %116 = alloca %"class.HIR::Publicity", align 8
  %117 = alloca %"class.HIR::ValueItem", align 8
  %118 = alloca %"struct.HIR::ValueItem::Data_StructConstant", align 8
  %119 = alloca %class.RcString, align 8
  %120 = alloca %"class.HIR::Publicity", align 8
  %121 = alloca %"class.HIR::ValueItem", align 8
  %122 = alloca %"struct.HIR::ValueItem::Data_StructConstructor", align 8
  %123 = alloca %class.RcString, align 8
  %124 = alloca %"class.HIR::Publicity", align 8
  %125 = alloca %"class.HIR::TypeItem", align 8
  %126 = alloca %"class.HIR::Struct", align 8
  %127 = alloca %"class.HIR::ItemPath", align 8
  %128 = alloca i8, align 1
  %129 = alloca ptr, align 8
  %130 = alloca %"class.HIR::Enum", align 8
  %131 = alloca %"class.HIR::ItemPath", align 8
  %132 = alloca %"class.std::function.413", align 8
  %133 = alloca %class.anon.828, align 8
  %134 = alloca %class.RcString, align 8
  %135 = alloca %"class.HIR::Publicity", align 8
  %136 = alloca %"class.HIR::TypeItem", align 8
  %137 = alloca %"class.HIR::Enum", align 8
  %138 = alloca i8, align 1
  %139 = alloca ptr, align 8
  %140 = alloca %class.RcString, align 8
  %141 = alloca %"class.HIR::Publicity", align 8
  %142 = alloca %"class.HIR::TypeItem", align 8
  %143 = alloca %"class.HIR::Union", align 8
  %144 = alloca %"class.HIR::ItemPath", align 8
  %145 = alloca i8, align 1
  %146 = alloca ptr, align 8
  %147 = alloca %class.RcString, align 8
  %148 = alloca %"class.HIR::Publicity", align 8
  %149 = alloca %"class.HIR::TypeItem", align 8
  %150 = alloca %"class.HIR::Trait", align 8
  %151 = alloca %"struct.HIR::SimplePath", align 8
  %152 = alloca i8, align 1
  %153 = alloca ptr, align 8
  %154 = alloca %class.RcString, align 8
  %155 = alloca %"class.HIR::Publicity", align 8
  %156 = alloca %"class.HIR::TypeItem", align 8
  %157 = alloca %"struct.HIR::TraitAlias", align 8
  %158 = alloca %"class.HIR::ItemPath", align 8
  %159 = alloca i8, align 1
  %160 = alloca ptr, align 8
  %161 = alloca %class.RcString, align 8
  %162 = alloca %"class.HIR::Publicity", align 8
  %163 = alloca %"class.HIR::ValueItem", align 8
  %164 = alloca %"class.HIR::Function", align 8
  %165 = alloca %"class.HIR::ItemPath", align 8
  %166 = alloca %"class.HIR::TypeRef", align 8
  %167 = alloca i8, align 1
  %168 = alloca ptr, align 8
  %169 = alloca %class.RcString, align 8
  %170 = alloca %"class.HIR::Publicity", align 8
  %171 = alloca %"class.HIR::ValueItem", align 8
  %172 = alloca %"class.HIR::ItemPath", align 8
  %173 = alloca ptr, align 8
  %174 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %175 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %176 = alloca ptr, align 8
  %177 = alloca %struct.Span, align 8
  %178 = alloca %"class.std::function", align 8
  %179 = alloca %class.anon.831, align 8
  %180 = alloca %struct.Span, align 8
  %181 = alloca %"class.std::function", align 8
  %182 = alloca %class.anon.837, align 8
  %183 = alloca %class.RcString, align 8
  %184 = alloca %"class.HIR::Publicity", align 8
  %185 = alloca %"class.HIR::MacroItem", align 8
  %186 = alloca %class.MacroRulesPtr, align 8
  %187 = alloca %struct.Span, align 8
  %188 = alloca ptr, align 8
  %189 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %190 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %191 = alloca ptr, align 8
  %192 = alloca ptr, align 8
  %193 = alloca %"struct.HIR::SimplePath", align 8
  %194 = alloca %"class.std::span", align 8
  %195 = alloca %"class.std::span", align 8
  %196 = alloca %"class.HIR::TypeItem", align 8
  %197 = alloca ptr, align 8
  %198 = alloca %"class.HIR::TypeItem", align 8
  %199 = alloca %"struct.HIR::TypeItem::Data_Import", align 8
  %200 = alloca %"class.HIR::TypeItem", align 8
  %201 = alloca %"struct.HIR::TypeItem::Data_Import", align 8
  %202 = alloca %class.RcString, align 8
  %203 = alloca %"class.HIR::Publicity", align 8
  %204 = alloca %"class.HIR::TypeItem", align 8
  %205 = alloca ptr, align 8
  %206 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %207 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %208 = alloca ptr, align 8
  %209 = alloca ptr, align 8
  %210 = alloca %"struct.HIR::SimplePath", align 8
  %211 = alloca %"class.std::span", align 8
  %212 = alloca %"class.std::span", align 8
  %213 = alloca %"class.HIR::ValueItem", align 8
  %214 = alloca i8, align 1
  %215 = alloca ptr, align 8
  %216 = alloca %"class.HIR::ValueItem", align 8
  %217 = alloca %"struct.HIR::ValueItem::Data_Import", align 8
  %218 = alloca i8, align 1
  %219 = alloca ptr, align 8
  %220 = alloca %"class.HIR::ValueItem", align 8
  %221 = alloca %"struct.HIR::ValueItem::Data_Import", align 8
  %222 = alloca %class.RcString, align 8
  %223 = alloca %"class.HIR::Publicity", align 8
  %224 = alloca %"class.HIR::ValueItem", align 8
  %225 = alloca ptr, align 8
  %226 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %227 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %228 = alloca ptr, align 8
  %229 = alloca ptr, align 8
  %230 = alloca %"struct.HIR::SimplePath", align 8
  %231 = alloca %"class.std::span", align 8
  %232 = alloca %"class.std::span", align 8
  %233 = alloca %"class.HIR::MacroItem", align 8
  %234 = alloca %"struct.HIR::MacroItem::Data_Import", align 8
  %235 = alloca %class.RcString, align 8
  %236 = alloca %"class.HIR::Publicity", align 8
  %237 = alloca %"class.HIR::MacroItem", align 8
  store ptr %0, ptr %5, align 8
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %3, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %8) #10
  %238 = call noundef zeroext i1 @_Z13debug_enabledv()
  %239 = zext i1 %238 to i64
  %240 = select i1 %238, ptr @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE, ptr null
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  %241 = getelementptr inbounds %class.anon.805, ptr %10, i32 0, i32 0
  store ptr %2, ptr %241, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %8, ptr noundef %240, ptr noundef %9)
          to label %242 unwind label %259

242:                                              ; preds = %4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  store i1 false, ptr %13, align 1
  invoke void @_ZN3HIR6ModuleC2Ev(ptr noundef nonnull align 8 dereferenceable(216) %0)
          to label %243 unwind label %263

243:                                              ; preds = %242
  %244 = getelementptr inbounds %"class.HIR::Module", ptr %0, i32 0, i32 0
  %245 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 8 dereferenceable(24) %3) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %14, ptr noundef nonnull align 8 dereferenceable(56) %2)
          to label %246 unwind label %267

246:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %247 = getelementptr inbounds %class.anon.806, ptr %15, i32 0, i32 0
  store ptr %14, ptr %247, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %248 = load ptr, ptr %6, align 8, !tbaa !5
  %249 = getelementptr inbounds %"class.AST::Module", ptr %248, i32 0, i32 11
  store ptr %249, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  %250 = load ptr, ptr %16, align 8, !tbaa !5
  %251 = call ptr @_ZNKSt6vectorIN3AST12AbsolutePathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %250) #10
  %252 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.807", ptr %17, i32 0, i32 0
  store ptr %251, ptr %252, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  %253 = load ptr, ptr %16, align 8, !tbaa !5
  %254 = call ptr @_ZNKSt6vectorIN3AST12AbsolutePathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %253) #10
  %255 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.807", ptr %18, i32 0, i32 0
  store ptr %254, ptr %255, align 8
  br label %256

256:                                              ; preds = %330, %246
  %257 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  br i1 %257, label %271, label %258

258:                                              ; preds = %256
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %334

259:                                              ; preds = %4
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %11, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %12, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  br label %2387

263:                                              ; preds = %242
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %11, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %12, align 4
  br label %2386

267:                                              ; preds = %243
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %11, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %12, align 4
  br label %2383

271:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  %272 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #10
  store ptr %272, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  %273 = load ptr, ptr %19, align 8, !tbaa !5
  %274 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %273, i32 0, i32 0
  %275 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %274, ptr noundef @.str.6)
          to label %276 unwind label %308

276:                                              ; preds = %271
  br i1 %275, label %277, label %278

277:                                              ; preds = %276
  br label %281

278:                                              ; preds = %276
  %279 = load ptr, ptr %19, align 8, !tbaa !5
  %280 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %279, i32 0, i32 0
  br label %281

281:                                              ; preds = %278, %277
  %282 = phi ptr [ @g_crate_name, %277 ], [ %280, %278 ]
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %282)
          to label %283 unwind label %308

283:                                              ; preds = %281
  %284 = load ptr, ptr %19, align 8, !tbaa !5
  %285 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %284, i32 0, i32 1
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(24) %285)
          to label %286 unwind label %312

286:                                              ; preds = %283
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef %21, ptr noundef %22)
          to label %287 unwind label %316

287:                                              ; preds = %286
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %288 = getelementptr inbounds %"class.HIR::Module", ptr %0, i32 0, i32 0
  %289 = call ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %288) #10
  %290 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.808", ptr %24, i32 0, i32 0
  store ptr %289, ptr %290, align 8
  %291 = getelementptr inbounds %"class.HIR::Module", ptr %0, i32 0, i32 0
  %292 = call ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %291) #10
  %293 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.808", ptr %25, i32 0, i32 0
  store ptr %292, ptr %293, align 8
  %294 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.808", ptr %24, i32 0, i32 0
  %295 = load ptr, ptr %294, align 8
  %296 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.808", ptr %25, i32 0, i32 0
  %297 = load ptr, ptr %296, align 8
  %298 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPN3HIR10SimplePathESt6vectorIS3_SaIS3_EEEES3_ET_S9_S9_RKT0_(ptr %295, ptr %297, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %299 unwind label %321

299:                                              ; preds = %287
  %300 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.808", ptr %23, i32 0, i32 0
  store ptr %298, ptr %300, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %301 = getelementptr inbounds %"class.HIR::Module", ptr %0, i32 0, i32 0
  %302 = call ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %301) #10
  %303 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.808", ptr %26, i32 0, i32 0
  store ptr %302, ptr %303, align 8
  %304 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPN3HIR10SimplePathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  br i1 %304, label %305, label %329

305:                                              ; preds = %299
  %306 = getelementptr inbounds %"class.HIR::Module", ptr %0, i32 0, i32 0
  invoke void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %306, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %307 unwind label %325

307:                                              ; preds = %305
  br label %329

308:                                              ; preds = %281, %271
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %11, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %12, align 4
  br label %333

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

316:                                              ; preds = %286
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %11, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %12, align 4
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  br label %320

320:                                              ; preds = %316, %312
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #10
  br label %333

321:                                              ; preds = %287
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %11, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  br label %332

325:                                              ; preds = %305
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %11, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %12, align 4
  br label %332

329:                                              ; preds = %307, %299
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #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 %330

330:                                              ; preds = %329
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #10
  br label %256

332:                                              ; preds = %325, %321
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #10
  br label %333

333:                                              ; preds = %332, %320, %308
  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
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %2382

334:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  store i32 0, ptr %27, align 4, !tbaa !9
  br label %335

335:                                              ; preds = %437, %334
  %336 = load i32, ptr %27, align 4, !tbaa !9
  %337 = zext i32 %336 to i64
  %338 = load ptr, ptr %6, align 8, !tbaa !5
  %339 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %338)
          to label %340 unwind label %344

340:                                              ; preds = %335
  %341 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %339) #10
  %342 = icmp ult i64 %337, %341
  br i1 %342, label %348, label %343

343:                                              ; preds = %340
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %442

344:                                              ; preds = %335
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %11, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %12, align 4
  br label %441

348:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %349 = load ptr, ptr %6, align 8, !tbaa !5
  %350 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %349)
          to label %351 unwind label %379

351:                                              ; preds = %348
  %352 = load i32, ptr %27, align 4, !tbaa !9
  %353 = zext i32 %352 to i64
  %354 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %350, i64 noundef %353) #10
  store ptr %354, ptr %28, align 8, !tbaa !5
  %355 = load ptr, ptr %28, align 8, !tbaa !5
  %356 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %355) #10
  br i1 %356, label %357, label %436

357:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %358 = load ptr, ptr %28, align 8, !tbaa !5
  %359 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %358) #10
  store ptr %359, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #10
  call void @llvm.lifetime.start.p0(i64 376, ptr %32) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32)
          to label %360 unwind label %383

360:                                              ; preds = %357
  %361 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA2_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %32, ptr noundef nonnull align 1 dereferenceable(2) @.str.34)
          to label %362 unwind label %387

362:                                              ; preds = %360
  %363 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEjEOT_S7_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %361, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %364 unwind label %387

364:                                              ; preds = %362
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(112) %363)
          to label %365 unwind label %387

365:                                              ; preds = %364
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.RcString) align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %366 unwind label %391

366:                                              ; preds = %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr %33) #10
  %367 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %368 unwind label %397

368:                                              ; preds = %366
  invoke void @_ZN3HIR8ItemPathC2ERKS0_PKc(ptr noundef nonnull align 8 dereferenceable(56) %33, ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef %367)
          to label %369 unwind label %397

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 408, ptr %34) #10
  %370 = load ptr, ptr %29, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 %33, i64 56, i1 false), !tbaa.struct !11
  %371 = getelementptr inbounds %"class.HIR::Module", ptr %0, i32 0, i32 0
  invoke void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %371)
          to label %372 unwind label %401

372:                                              ; preds = %369
  invoke void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind writable sret(%"class.HIR::Module") align 8 %35, ptr noundef nonnull align 8 dereferenceable(480) %370, ptr noundef byval(%"class.HIR::ItemPath") align 8 %36, ptr noundef %37)
          to label %373 unwind label %405

373:                                              ; preds = %372
  invoke void @_ZN3HIR8TypeItem11make_ModuleENS_6ModuleE(ptr dead_on_unwind writable sret(%"class.HIR::TypeItem") align 8 %34, ptr noundef %35)
          to label %374 unwind label %409

374:                                              ; preds = %373
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %35) #10
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #10
  invoke void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %375 unwind label %414

375:                                              ; preds = %374
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %376 unwind label %418

376:                                              ; preds = %375
  invoke void @_ZN3HIR9Publicity8new_privENS_10SimplePathE(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %39, ptr noundef %40)
          to label %377 unwind label %422

377:                                              ; preds = %376
  call void @_ZN3HIR8TypeItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(408) %41, ptr noundef nonnull align 8 dereferenceable(408) %34) #10
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %38, ptr noundef %39, ptr noundef %41)
          to label %378 unwind label %426

378:                                              ; preds = %377
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %41) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %34) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %33) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %436

379:                                              ; preds = %348
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %11, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %12, align 4
  br label %440

383:                                              ; preds = %357
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %11, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %12, align 4
  br label %396

387:                                              ; preds = %364, %362, %360
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %11, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %12, align 4
  br label %395

391:                                              ; preds = %365
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %11, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  br label %395

395:                                              ; preds = %391, %387
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32) #10
  br label %396

396:                                              ; preds = %395, %383
  call void @llvm.lifetime.end.p0(i64 376, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #10
  br label %435

397:                                              ; preds = %368, %366
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %11, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %12, align 4
  br label %434

401:                                              ; preds = %369
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %11, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %12, align 4
  br label %433

405:                                              ; preds = %372
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %11, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %12, align 4
  br label %413

409:                                              ; preds = %373
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %11, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %12, align 4
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %35) #10
  br label %413

413:                                              ; preds = %409, %405
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #10
  br label %433

414:                                              ; preds = %374
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %11, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %12, align 4
  br label %432

418:                                              ; preds = %375
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %11, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %12, align 4
  br label %431

422:                                              ; preds = %376
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %11, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %12, align 4
  br label %430

426:                                              ; preds = %377
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %11, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %41) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #10
  br label %430

430:                                              ; preds = %426, %422
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  br label %431

431:                                              ; preds = %430, %418
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  br label %432

432:                                              ; preds = %431, %414
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %34) #10
  br label %433

433:                                              ; preds = %432, %413, %401
  call void @llvm.lifetime.end.p0(i64 408, ptr %34) #10
  br label %434

434:                                              ; preds = %433, %397
  call void @llvm.lifetime.end.p0(i64 56, ptr %33) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  br label %435

435:                                              ; preds = %434, %396
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %440

436:                                              ; preds = %378, %351
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  br label %437

437:                                              ; preds = %436
  %438 = load i32, ptr %27, align 4, !tbaa !9
  %439 = add i32 %438, 1
  store i32 %439, ptr %27, align 4, !tbaa !9
  br label %335, !llvm.loop !12

440:                                              ; preds = %435, %379
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  br label %441

441:                                              ; preds = %440, %344
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %2382

442:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %443 = load ptr, ptr %6, align 8, !tbaa !5
  %444 = getelementptr inbounds %"class.AST::Module", ptr %443, i32 0, i32 1
  store ptr %444, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %445 = load ptr, ptr %42, align 8, !tbaa !5
  %446 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %445) #10
  %447 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.809", ptr %43, i32 0, i32 0
  store ptr %446, ptr %447, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %448 = load ptr, ptr %42, align 8, !tbaa !5
  %449 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %448) #10
  %450 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.809", ptr %44, i32 0, i32 0
  store ptr %449, ptr %450, align 8
  br label %451

451:                                              ; preds = %1558, %442
  %452 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  br i1 %452, label %454, label %453

453:                                              ; preds = %451
  store i32 7, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %1561

454:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  %455 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #10
  store ptr %455, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %456 = load ptr, ptr %46, align 8, !tbaa !5
  %457 = call noundef nonnull align 8 dereferenceable(568) ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %456) #10
  store ptr %457, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %458 = load ptr, ptr %47, align 8, !tbaa !5
  %459 = getelementptr inbounds %"struct.AST::Named", ptr %458, i32 0, i32 0
  store ptr %459, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %49) #10
  %460 = load ptr, ptr %47, align 8, !tbaa !5
  %461 = getelementptr inbounds %"struct.AST::Named", ptr %460, i32 0, i32 3
  %462 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %461)
          to label %463 unwind label %486

463:                                              ; preds = %454
  invoke void @_ZN3HIR8ItemPathC2ERKS0_PKc(ptr noundef nonnull align 8 dereferenceable(56) %49, ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef %462)
          to label %464 unwind label %486

464:                                              ; preds = %463
  br label %465

465:                                              ; preds = %464
  %466 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %467 unwind label %486

467:                                              ; preds = %465
  br i1 %466, label %468, label %490

468:                                              ; preds = %467
  %469 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %469, ptr noundef @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %471 unwind label %486

471:                                              ; preds = %468
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %470, ptr noundef nonnull align 8 dereferenceable(56) %49)
          to label %473 unwind label %486

473:                                              ; preds = %471
  %474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %472, ptr noundef @.str.17)
          to label %475 unwind label %486

475:                                              ; preds = %473
  %476 = load ptr, ptr %47, align 8, !tbaa !5
  %477 = getelementptr inbounds %"struct.AST::Named", ptr %476, i32 0, i32 4
  %478 = invoke noundef ptr @_ZNK3AST4Item7tag_strEv(ptr noundef nonnull align 8 dereferenceable(488) %477)
          to label %479 unwind label %486

479:                                              ; preds = %475
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %474, ptr noundef %478)
          to label %481 unwind label %486

481:                                              ; preds = %479
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %480, ptr noundef @_ZSt3decRSt8ios_base)
          to label %483 unwind label %486

483:                                              ; preds = %481
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %482, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %485 unwind label %486

485:                                              ; preds = %483
  br label %490

486:                                              ; preds = %483, %481, %479, %475, %473, %471, %468, %465, %463, %454
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %11, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %12, align 4
  br label %1560

490:                                              ; preds = %485, %467
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #10
  store i8 1, ptr %50, align 1, !tbaa !14
  br label %493

493:                                              ; preds = %1556, %492
  %494 = load i8, ptr %50, align 1, !tbaa !14, !range !16, !noundef !17
  %495 = trunc i8 %494 to i1
  br i1 %495, label %497, label %496

496:                                              ; preds = %493
  store i32 11, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #10
  br label %1557

497:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  %498 = load ptr, ptr %47, align 8, !tbaa !5
  %499 = getelementptr inbounds %"struct.AST::Named", ptr %498, i32 0, i32 4
  store ptr %499, ptr %51, align 8, !tbaa !5
  br label %500

500:                                              ; preds = %1553, %497
  %501 = load i8, ptr %50, align 1, !tbaa !14, !range !16, !noundef !17
  %502 = trunc i8 %501 to i1
  br i1 %502, label %504, label %503

503:                                              ; preds = %500
  store i32 14, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  br label %1555

504:                                              ; preds = %500
  %505 = load ptr, ptr %51, align 8, !tbaa !5
  %506 = invoke noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488) %505)
          to label %507 unwind label %508

507:                                              ; preds = %504
  switch i32 %506, label %1552 [
    i32 0, label %512
    i32 1, label %513
    i32 8, label %536
    i32 2, label %559
    i32 5, label %582
    i32 4, label %668
    i32 6, label %758
    i32 7, label %781
    i32 3, label %804
    i32 9, label %827
    i32 10, label %880
    i32 11, label %947
    i32 12, label %1071
    i32 13, label %1201
    i32 14, label %1271
    i32 15, label %1326
    i32 16, label %1385
    i32 17, label %1439
    i32 18, label %1500
  ]

508:                                              ; preds = %504
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %11, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %12, align 4
  br label %1554

512:                                              ; preds = %507
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str.5, i32 noundef 1895, ptr noundef @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

513:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #10
  store i8 1, ptr %52, align 1, !tbaa !14
  br label %514

514:                                              ; preds = %534, %513
  %515 = load i8, ptr %52, align 1, !tbaa !14, !range !16, !noundef !17
  %516 = trunc i8 %515 to i1
  br i1 %516, label %518, label %517

517:                                              ; preds = %514
  store i32 18, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  br label %535

518:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %519 = load ptr, ptr %51, align 8, !tbaa !5
  %520 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %519)
          to label %521 unwind label %527

521:                                              ; preds = %518
  store ptr %520, ptr %53, align 8, !tbaa !5
  br label %522

522:                                              ; preds = %532, %521
  %523 = load ptr, ptr %53, align 8, !tbaa !5
  %524 = load i8, ptr %52, align 1, !tbaa !14, !range !16, !noundef !17
  %525 = trunc i8 %524 to i1
  br i1 %525, label %531, label %526

526:                                              ; preds = %522
  store i32 21, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  br label %533

527:                                              ; preds = %518
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %11, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #10
  br label %1554

531:                                              ; preds = %522
  br label %532

532:                                              ; preds = %531
  store i8 0, ptr %52, align 1, !tbaa !14
  br label %522, !llvm.loop !18

533:                                              ; preds = %526
  br label %534

534:                                              ; preds = %533
  store i8 0, ptr %52, align 1, !tbaa !14
  br label %514, !llvm.loop !19

535:                                              ; preds = %517
  br label %1552

536:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #10
  store i8 1, ptr %54, align 1, !tbaa !14
  br label %537

537:                                              ; preds = %557, %536
  %538 = load i8, ptr %54, align 1, !tbaa !14, !range !16, !noundef !17
  %539 = trunc i8 %538 to i1
  br i1 %539, label %541, label %540

540:                                              ; preds = %537
  store i32 24, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  br label %558

541:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %542 = load ptr, ptr %51, align 8, !tbaa !5
  %543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_MacroEv(ptr noundef nonnull align 8 dereferenceable(488) %542)
          to label %544 unwind label %550

544:                                              ; preds = %541
  store ptr %543, ptr %55, align 8, !tbaa !5
  br label %545

545:                                              ; preds = %555, %544
  %546 = load ptr, ptr %55, align 8, !tbaa !5
  %547 = load i8, ptr %54, align 1, !tbaa !14, !range !16, !noundef !17
  %548 = trunc i8 %547 to i1
  br i1 %548, label %554, label %549

549:                                              ; preds = %545
  store i32 27, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  br label %556

550:                                              ; preds = %541
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %11, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  br label %1554

554:                                              ; preds = %545
  br label %555

555:                                              ; preds = %554
  store i8 0, ptr %54, align 1, !tbaa !14
  br label %545, !llvm.loop !20

556:                                              ; preds = %549
  br label %557

557:                                              ; preds = %556
  store i8 0, ptr %54, align 1, !tbaa !14
  br label %537, !llvm.loop !21

558:                                              ; preds = %540
  br label %1552

559:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #10
  store i8 1, ptr %56, align 1, !tbaa !14
  br label %560

560:                                              ; preds = %580, %559
  %561 = load i8, ptr %56, align 1, !tbaa !14, !range !16, !noundef !17
  %562 = trunc i8 %561 to i1
  br i1 %562, label %564, label %563

563:                                              ; preds = %560
  store i32 30, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  br label %581

564:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %565 = load ptr, ptr %51, align 8, !tbaa !5
  %566 = invoke noundef nonnull align 8 dereferenceable(393) ptr @_ZNK3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488) %565)
          to label %567 unwind label %573

567:                                              ; preds = %564
  store ptr %566, ptr %57, align 8, !tbaa !5
  br label %568

568:                                              ; preds = %578, %567
  %569 = load ptr, ptr %57, align 8, !tbaa !5
  %570 = load i8, ptr %56, align 1, !tbaa !14, !range !16, !noundef !17
  %571 = trunc i8 %570 to i1
  br i1 %571, label %577, label %572

572:                                              ; preds = %568
  store i32 33, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br label %579

573:                                              ; preds = %564
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %11, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  br label %1554

577:                                              ; preds = %568
  br label %578

578:                                              ; preds = %577
  store i8 0, ptr %56, align 1, !tbaa !14
  br label %568, !llvm.loop !22

579:                                              ; preds = %572
  br label %580

580:                                              ; preds = %579
  store i8 0, ptr %56, align 1, !tbaa !14
  br label %560, !llvm.loop !23

581:                                              ; preds = %563
  br label %1552

582:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #10
  store i8 1, ptr %58, align 1, !tbaa !14
  br label %583

583:                                              ; preds = %666, %582
  %584 = load i8, ptr %58, align 1, !tbaa !14, !range !16, !noundef !17
  %585 = trunc i8 %584 to i1
  br i1 %585, label %587, label %586

586:                                              ; preds = %583
  store i32 36, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #10
  br label %667

587:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %588 = load ptr, ptr %51, align 8, !tbaa !5
  %589 = invoke noundef nonnull align 8 dereferenceable(52) ptr @_ZNK3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488) %588)
          to label %590 unwind label %596

590:                                              ; preds = %587
  store ptr %589, ptr %59, align 8, !tbaa !5
  br label %591

591:                                              ; preds = %661, %590
  %592 = load ptr, ptr %59, align 8, !tbaa !5
  %593 = load i8, ptr %58, align 1, !tbaa !14, !range !16, !noundef !17
  %594 = trunc i8 %593 to i1
  br i1 %594, label %600, label %595

595:                                              ; preds = %591
  store i32 39, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  br label %665

596:                                              ; preds = %587
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %11, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %12, align 4
  br label %664

600:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 56, ptr %60) #10
  invoke void @_ZN3HIR14GlobalAssemblyC2Ev(ptr noundef nonnull align 8 dereferenceable(52) %60)
          to label %601 unwind label %623

601:                                              ; preds = %600
  %602 = load ptr, ptr %59, align 8, !tbaa !5
  %603 = getelementptr inbounds %"class.AST::GlobalAsm", ptr %602, i32 0, i32 0
  %604 = getelementptr inbounds %"class.HIR::GlobalAssembly", ptr %60, i32 0, i32 0
  %605 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN9AsmCommon4LineESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %604, ptr noundef nonnull align 8 dereferenceable(24) %603)
          to label %606 unwind label %627

606:                                              ; preds = %601
  %607 = getelementptr inbounds %"class.HIR::GlobalAssembly", ptr %60, i32 0, i32 1
  %608 = load ptr, ptr %59, align 8, !tbaa !5
  %609 = getelementptr inbounds %"class.AST::GlobalAsm", ptr %608, i32 0, i32 1
  %610 = call noundef i64 @_ZNKSt6vectorIN3AST4PathESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %609) #10
  invoke void @_ZNSt6vectorIN3HIR4PathESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %607, i64 noundef %610)
          to label %611 unwind label %627

611:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  %612 = load ptr, ptr %59, align 8, !tbaa !5
  %613 = getelementptr inbounds %"class.AST::GlobalAsm", ptr %612, i32 0, i32 1
  store ptr %613, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %614 = load ptr, ptr %61, align 8, !tbaa !5
  %615 = call ptr @_ZNKSt6vectorIN3AST4PathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %614) #10
  %616 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.823", ptr %62, i32 0, i32 0
  store ptr %615, ptr %616, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  %617 = load ptr, ptr %61, align 8, !tbaa !5
  %618 = call ptr @_ZNKSt6vectorIN3AST4PathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %617) #10
  %619 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.823", ptr %63, i32 0, i32 0
  store ptr %618, ptr %619, align 8
  br label %620

620:                                              ; preds = %638, %611
  %621 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST4PathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  br i1 %621, label %631, label %622

622:                                              ; preds = %620
  store i32 42, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  br label %654

623:                                              ; preds = %600
  %624 = landingpad { ptr, i32 }
          cleanup
  %625 = extractvalue { ptr, i32 } %624, 0
  store ptr %625, ptr %11, align 8
  %626 = extractvalue { ptr, i32 } %624, 1
  store i32 %626, ptr %12, align 4
  br label %663

627:                                              ; preds = %654, %606, %601
  %628 = landingpad { ptr, i32 }
          cleanup
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %11, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %12, align 4
  br label %662

631:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %632 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST4PathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  store ptr %632, ptr %64, align 8, !tbaa !5
  %633 = getelementptr inbounds %"class.HIR::GlobalAssembly", ptr %60, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 88, ptr %65) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %634 unwind label %640

634:                                              ; preds = %631
  %635 = load ptr, ptr %64, align 8, !tbaa !5
  invoke void @_Z13LowerHIR_PathRK4SpanRKN3AST4PathE17FromAST_PathClass(ptr dead_on_unwind writable sret(%"class.HIR::Path") align 8 %65, ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(240) %635, i32 noundef 1)
          to label %636 unwind label %644

636:                                              ; preds = %634
  invoke void @_ZNSt6vectorIN3HIR4PathESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %633, ptr noundef nonnull align 8 dereferenceable(88) %65)
          to label %637 unwind label %648

637:                                              ; preds = %636
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  br label %638

638:                                              ; preds = %637
  %639 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST4PathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  br label %620

640:                                              ; preds = %631
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %11, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %12, align 4
  br label %653

644:                                              ; preds = %634
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %11, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %12, align 4
  br label %652

648:                                              ; preds = %636
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %11, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %12, align 4
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #10
  br label %652

652:                                              ; preds = %648, %644
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #10
  br label %653

653:                                              ; preds = %652, %640
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  br label %662

654:                                              ; preds = %622
  %655 = load ptr, ptr %59, align 8, !tbaa !5
  %656 = getelementptr inbounds %"class.AST::GlobalAsm", ptr %655, i32 0, i32 2
  %657 = getelementptr inbounds %"class.HIR::GlobalAssembly", ptr %60, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %657, ptr align 8 %656, i64 1, i1 false), !tbaa.struct !24
  %658 = load ptr, ptr @g_crate_ptr, align 8, !tbaa !5
  %659 = getelementptr inbounds %"class.HIR::Crate", ptr %658, i32 0, i32 9
  invoke void @_ZNSt6vectorIN3HIR14GlobalAssemblyESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %659, ptr noundef nonnull align 8 dereferenceable(52) %60)
          to label %660 unwind label %627

660:                                              ; preds = %654
  call void @_ZN3HIR14GlobalAssemblyD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %60) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %60) #10
  br label %661

661:                                              ; preds = %660
  store i8 0, ptr %58, align 1, !tbaa !14
  br label %591, !llvm.loop !26

662:                                              ; preds = %653, %627
  call void @_ZN3HIR14GlobalAssemblyD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %60) #10
  br label %663

663:                                              ; preds = %662, %623
  call void @llvm.lifetime.end.p0(i64 56, ptr %60) #10
  br label %664

664:                                              ; preds = %663, %596
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #10
  br label %1554

665:                                              ; preds = %595
  br label %666

666:                                              ; preds = %665
  store i8 0, ptr %58, align 1, !tbaa !14
  br label %583, !llvm.loop !27

667:                                              ; preds = %586
  br label %1552

668:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #10
  store i8 1, ptr %67, align 1, !tbaa !14
  br label %669

669:                                              ; preds = %756, %668
  %670 = load i8, ptr %67, align 1, !tbaa !14, !range !16, !noundef !17
  %671 = trunc i8 %670 to i1
  br i1 %671, label %673, label %672

672:                                              ; preds = %669
  store i32 44, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  br label %757

673:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %674 = load ptr, ptr %51, align 8, !tbaa !5
  %675 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488) %674)
          to label %676 unwind label %682

676:                                              ; preds = %673
  store ptr %675, ptr %68, align 8, !tbaa !5
  br label %677

677:                                              ; preds = %753, %676
  %678 = load ptr, ptr %68, align 8, !tbaa !5
  %679 = load i8, ptr %67, align 1, !tbaa !14, !range !16, !noundef !17
  %680 = trunc i8 %679 to i1
  br i1 %680, label %686, label %681

681:                                              ; preds = %677
  store i32 47, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %755

682:                                              ; preds = %686, %673
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %11, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %12, align 4
  br label %754

686:                                              ; preds = %677
  %687 = load ptr, ptr %68, align 8, !tbaa !5
  %688 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST11ExternBlock5itemsEv(ptr noundef nonnull align 8 dereferenceable(80) %687)
          to label %689 unwind label %682

689:                                              ; preds = %686
  %690 = call noundef i64 @_ZNKSt6vectorIN3AST5NamedINS0_4ItemEEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %688) #10
  %691 = icmp ugt i64 %690, 0
  br i1 %691, label %692, label %720

692:                                              ; preds = %689
  br label %693

693:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  store ptr @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE, ptr %69, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %694 = load ptr, ptr %48, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %694)
          to label %695 unwind label %700

695:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %696 = getelementptr inbounds %class.anon.824, ptr %72, i32 0, i32 0
  store ptr %69, ptr %696, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef %71)
          to label %697 unwind label %704

697:                                              ; preds = %695
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  %698 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %698, ptr noundef @.str.8)
          to label %699 unwind label %709

699:                                              ; preds = %697
  invoke void @__cxa_throw(ptr %698, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %2393 unwind label %713

700:                                              ; preds = %693
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %11, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %12, align 4
  br label %708

704:                                              ; preds = %695
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %11, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %12, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #10
  br label %708

708:                                              ; preds = %704, %700
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %717

709:                                              ; preds = %697
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %11, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %12, align 4
  call void @__cxa_free_exception(ptr %698) #10
  br label %717

713:                                              ; preds = %699
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %11, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %12, align 4
  br label %717

717:                                              ; preds = %713, %709, %708
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  br label %754

718:                                              ; No predecessors!
  br label %719

719:                                              ; preds = %718
  br label %720

720:                                              ; preds = %719, %689
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  %721 = load ptr, ptr %68, align 8, !tbaa !5
  %722 = getelementptr inbounds %"class.AST::ExternBlock", ptr %721, i32 0, i32 2
  store ptr %722, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %723 = load ptr, ptr %73, align 8, !tbaa !5
  %724 = call ptr @_ZNKSt6vectorIN3AST11ExternBlock4LinkESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %723) #10
  %725 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.825", ptr %74, i32 0, i32 0
  store ptr %724, ptr %725, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  %726 = load ptr, ptr %73, align 8, !tbaa !5
  %727 = call ptr @_ZNKSt6vectorIN3AST11ExternBlock4LinkESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %726) #10
  %728 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.825", ptr %75, i32 0, i32 0
  store ptr %727, ptr %728, align 8
  br label %729

729:                                              ; preds = %741, %720
  %730 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  br i1 %730, label %732, label %731

731:                                              ; preds = %729
  store i32 52, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %752

732:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %733 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  store ptr %733, ptr %76, align 8, !tbaa !5
  %734 = load ptr, ptr @g_crate_ptr, align 8, !tbaa !5
  %735 = getelementptr inbounds %"class.HIR::Crate", ptr %734, i32 0, i32 17
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #10
  %736 = getelementptr inbounds %"class.HIR::ExternLibrary", ptr %77, i32 0, i32 0
  %737 = load ptr, ptr %76, align 8, !tbaa !5
  %738 = getelementptr inbounds %"struct.AST::ExternBlock::Link", ptr %737, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %736, ptr noundef nonnull align 8 dereferenceable(32) %738)
          to label %739 unwind label %743

739:                                              ; preds = %732
  invoke void @_ZNSt6vectorIN3HIR13ExternLibraryESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %735, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %740 unwind label %747

740:                                              ; preds = %739
  call void @_ZN3HIR13ExternLibraryD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  br label %741

741:                                              ; preds = %740
  %742 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  br label %729

743:                                              ; preds = %732
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %11, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %12, align 4
  br label %751

747:                                              ; preds = %739
  %748 = landingpad { ptr, i32 }
          cleanup
  %749 = extractvalue { ptr, i32 } %748, 0
  store ptr %749, ptr %11, align 8
  %750 = extractvalue { ptr, i32 } %748, 1
  store i32 %750, ptr %12, align 4
  call void @_ZN3HIR13ExternLibraryD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  br label %751

751:                                              ; preds = %747, %743
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %754

752:                                              ; preds = %731
  br label %753

753:                                              ; preds = %752
  store i8 0, ptr %67, align 1, !tbaa !14
  br label %677, !llvm.loop !28

754:                                              ; preds = %751, %717, %682
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  br label %1554

755:                                              ; preds = %681
  br label %756

756:                                              ; preds = %755
  store i8 0, ptr %67, align 1, !tbaa !14
  br label %669, !llvm.loop !29

757:                                              ; preds = %672
  br label %1552

758:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #10
  store i8 1, ptr %78, align 1, !tbaa !14
  br label %759

759:                                              ; preds = %779, %758
  %760 = load i8, ptr %78, align 1, !tbaa !14, !range !16, !noundef !17
  %761 = trunc i8 %760 to i1
  br i1 %761, label %763, label %762

762:                                              ; preds = %759
  store i32 54, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #10
  br label %780

763:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  %764 = load ptr, ptr %51, align 8, !tbaa !5
  %765 = invoke noundef nonnull align 8 dereferenceable(472) ptr @_ZNK3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %764)
          to label %766 unwind label %772

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

767:                                              ; preds = %777, %766
  %768 = load ptr, ptr %79, align 8, !tbaa !5
  %769 = load i8, ptr %78, align 1, !tbaa !14, !range !16, !noundef !17
  %770 = trunc i8 %769 to i1
  br i1 %770, label %776, label %771

771:                                              ; preds = %767
  store i32 57, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %778

772:                                              ; preds = %763
  %773 = landingpad { ptr, i32 }
          cleanup
  %774 = extractvalue { ptr, i32 } %773, 0
  store ptr %774, ptr %11, align 8
  %775 = extractvalue { ptr, i32 } %773, 1
  store i32 %775, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #10
  br label %1554

776:                                              ; preds = %767
  br label %777

777:                                              ; preds = %776
  store i8 0, ptr %78, align 1, !tbaa !14
  br label %767, !llvm.loop !30

778:                                              ; preds = %771
  br label %779

779:                                              ; preds = %778
  store i8 0, ptr %78, align 1, !tbaa !14
  br label %759, !llvm.loop !31

780:                                              ; preds = %762
  br label %1552

781:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #10
  store i8 1, ptr %80, align 1, !tbaa !14
  br label %782

782:                                              ; preds = %802, %781
  %783 = load i8, ptr %80, align 1, !tbaa !14, !range !16, !noundef !17
  %784 = trunc i8 %783 to i1
  br i1 %784, label %786, label %785

785:                                              ; preds = %782
  store i32 60, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #10
  br label %803

786:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #10
  %787 = load ptr, ptr %51, align 8, !tbaa !5
  %788 = invoke noundef nonnull align 8 dereferenceable(448) ptr @_ZNK3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %787)
          to label %789 unwind label %795

789:                                              ; preds = %786
  store ptr %788, ptr %81, align 8, !tbaa !5
  br label %790

790:                                              ; preds = %800, %789
  %791 = load ptr, ptr %81, align 8, !tbaa !5
  %792 = load i8, ptr %80, align 1, !tbaa !14, !range !16, !noundef !17
  %793 = trunc i8 %792 to i1
  br i1 %793, label %799, label %794

794:                                              ; preds = %790
  store i32 63, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  br label %801

795:                                              ; preds = %786
  %796 = landingpad { ptr, i32 }
          cleanup
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %11, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #10
  br label %1554

799:                                              ; preds = %790
  br label %800

800:                                              ; preds = %799
  store i8 0, ptr %80, align 1, !tbaa !14
  br label %790, !llvm.loop !32

801:                                              ; preds = %794
  br label %802

802:                                              ; preds = %801
  store i8 0, ptr %80, align 1, !tbaa !14
  br label %782, !llvm.loop !33

803:                                              ; preds = %785
  br label %1552

804:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #10
  store i8 1, ptr %82, align 1, !tbaa !14
  br label %805

805:                                              ; preds = %825, %804
  %806 = load i8, ptr %82, align 1, !tbaa !14, !range !16, !noundef !17
  %807 = trunc i8 %806 to i1
  br i1 %807, label %809, label %808

808:                                              ; preds = %805
  store i32 66, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #10
  br label %826

809:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %810 = load ptr, ptr %51, align 8, !tbaa !5
  %811 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %810)
          to label %812 unwind label %818

812:                                              ; preds = %809
  store ptr %811, ptr %83, align 8, !tbaa !5
  br label %813

813:                                              ; preds = %823, %812
  %814 = load ptr, ptr %83, align 8, !tbaa !5
  %815 = load i8, ptr %82, align 1, !tbaa !14, !range !16, !noundef !17
  %816 = trunc i8 %815 to i1
  br i1 %816, label %822, label %817

817:                                              ; preds = %813
  store i32 69, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  br label %824

818:                                              ; preds = %809
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %11, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #10
  br label %1554

822:                                              ; preds = %813
  br label %823

823:                                              ; preds = %822
  store i8 0, ptr %82, align 1, !tbaa !14
  br label %813, !llvm.loop !34

824:                                              ; preds = %817
  br label %825

825:                                              ; preds = %824
  store i8 0, ptr %82, align 1, !tbaa !14
  br label %805, !llvm.loop !35

826:                                              ; preds = %808
  br label %1552

827:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #10
  store i8 1, ptr %84, align 1, !tbaa !14
  br label %828

828:                                              ; preds = %878, %827
  %829 = load i8, ptr %84, align 1, !tbaa !14, !range !16, !noundef !17
  %830 = trunc i8 %829 to i1
  br i1 %830, label %832, label %831

831:                                              ; preds = %828
  store i32 72, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #10
  br label %879

832:                                              ; preds = %828
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %833 = load ptr, ptr %51, align 8, !tbaa !5
  %834 = invoke noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %833)
          to label %835 unwind label %841

835:                                              ; preds = %832
  store ptr %834, ptr %85, align 8, !tbaa !5
  br label %836

836:                                              ; preds = %856, %835
  %837 = load ptr, ptr %85, align 8, !tbaa !5
  %838 = load i8, ptr %84, align 1, !tbaa !14, !range !16, !noundef !17
  %839 = trunc i8 %838 to i1
  br i1 %839, label %845, label %840

840:                                              ; preds = %836
  store i32 75, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %877

841:                                              ; preds = %845, %832
  %842 = landingpad { ptr, i32 }
          cleanup
  %843 = extractvalue { ptr, i32 } %842, 0
  store ptr %843, ptr %11, align 8
  %844 = extractvalue { ptr, i32 } %842, 1
  store i32 %844, ptr %12, align 4
  br label %876

845:                                              ; preds = %836
  %846 = load ptr, ptr %47, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.AST::Named", ptr %846, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %847)
          to label %848 unwind label %841

848:                                              ; preds = %845
  %849 = load ptr, ptr %47, align 8, !tbaa !5
  %850 = getelementptr inbounds %"struct.AST::Named", ptr %849, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %87, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %850)
          to label %851 unwind label %857

851:                                              ; preds = %848
  %852 = load ptr, ptr %85, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %90, ptr align 8 %49, i64 56, i1 false), !tbaa.struct !11
  call void @llvm.memset.p0.i64(ptr align 8 %91, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #10
  invoke void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind writable sret(%"class.HIR::Module") align 8 %89, ptr noundef nonnull align 8 dereferenceable(480) %852, ptr noundef byval(%"class.HIR::ItemPath") align 8 %90, ptr noundef %91)
          to label %853 unwind label %861

853:                                              ; preds = %851
  invoke void @_ZN3HIR8TypeItemC2ENS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(408) %88, ptr noundef %89)
          to label %854 unwind label %865

854:                                              ; preds = %853
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %86, ptr noundef %87, ptr noundef %88)
          to label %855 unwind label %869

855:                                              ; preds = %854
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %88) #10
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %89) #10
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  br label %856

856:                                              ; preds = %855
  store i8 0, ptr %84, align 1, !tbaa !14
  br label %836, !llvm.loop !36

857:                                              ; preds = %848
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %11, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %12, align 4
  br label %875

861:                                              ; preds = %851
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %11, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %12, align 4
  br label %874

865:                                              ; preds = %853
  %866 = landingpad { ptr, i32 }
          cleanup
  %867 = extractvalue { ptr, i32 } %866, 0
  store ptr %867, ptr %11, align 8
  %868 = extractvalue { ptr, i32 } %866, 1
  store i32 %868, ptr %12, align 4
  br label %873

869:                                              ; preds = %854
  %870 = landingpad { ptr, i32 }
          cleanup
  %871 = extractvalue { ptr, i32 } %870, 0
  store ptr %871, ptr %11, align 8
  %872 = extractvalue { ptr, i32 } %870, 1
  store i32 %872, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %88) #10
  br label %873

873:                                              ; preds = %869, %865
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %89) #10
  br label %874

874:                                              ; preds = %873, %861
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %87) #10
  br label %875

875:                                              ; preds = %874, %857
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  br label %876

876:                                              ; preds = %875, %841
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #10
  br label %1554

877:                                              ; preds = %840
  br label %878

878:                                              ; preds = %877
  store i8 0, ptr %84, align 1, !tbaa !14
  br label %828, !llvm.loop !37

879:                                              ; preds = %831
  br label %1552

880:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #10
  store i8 1, ptr %92, align 1, !tbaa !14
  br label %881

881:                                              ; preds = %945, %880
  %882 = load i8, ptr %92, align 1, !tbaa !14, !range !16, !noundef !17
  %883 = trunc i8 %882 to i1
  br i1 %883, label %885, label %884

884:                                              ; preds = %881
  store i32 78, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #10
  br label %946

885:                                              ; preds = %881
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #10
  %886 = load ptr, ptr %51, align 8, !tbaa !5
  %887 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(488) %886)
          to label %888 unwind label %894

888:                                              ; preds = %885
  store ptr %887, ptr %93, align 8, !tbaa !5
  br label %889

889:                                              ; preds = %918, %888
  %890 = load ptr, ptr %93, align 8, !tbaa !5
  %891 = load i8, ptr %92, align 1, !tbaa !14, !range !16, !noundef !17
  %892 = trunc i8 %891 to i1
  br i1 %892, label %898, label %893

893:                                              ; preds = %889
  store i32 81, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  br label %944

894:                                              ; preds = %898, %885
  %895 = landingpad { ptr, i32 }
          cleanup
  %896 = extractvalue { ptr, i32 } %895, 0
  store ptr %896, ptr %11, align 8
  %897 = extractvalue { ptr, i32 } %895, 1
  store i32 %897, ptr %12, align 4
  br label %943

898:                                              ; preds = %889
  %899 = load ptr, ptr %47, align 8, !tbaa !5
  %900 = getelementptr inbounds %"struct.AST::Named", ptr %899, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %900)
          to label %901 unwind label %894

901:                                              ; preds = %898
  %902 = load ptr, ptr %47, align 8, !tbaa !5
  %903 = getelementptr inbounds %"struct.AST::Named", ptr %902, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %95, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %903)
          to label %904 unwind label %919

904:                                              ; preds = %901
  %905 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %97, i32 0, i32 0
  %906 = load ptr, ptr %93, align 8, !tbaa !5
  %907 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %906, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(8) %907)
          to label %908 unwind label %923

908:                                              ; preds = %904
  call void @_ZNSt16initializer_listI8RcStringEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #10
  %909 = getelementptr inbounds { ptr, i64 }, ptr %99, i32 0, i32 0
  %910 = load ptr, ptr %909, align 8
  %911 = getelementptr inbounds { ptr, i64 }, ptr %99, i32 0, i32 1
  %912 = load i64, ptr %911, align 8
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %905, ptr noundef %98, ptr %910, i64 %912)
          to label %913 unwind label %927

913:                                              ; preds = %908
  %914 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %97, i32 0, i32 1
  store i8 0, ptr %914, align 8, !tbaa !38
  %915 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %97, i32 0, i32 2
  store i32 0, ptr %915, align 4, !tbaa !42
  invoke void @_ZN3HIR8TypeItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::TypeItem") align 8 %96, ptr noundef %97)
          to label %916 unwind label %931

916:                                              ; preds = %913
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %94, ptr noundef %95, ptr noundef %96)
          to label %917 unwind label %935

917:                                              ; preds = %916
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %96) #10
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #10
  br label %918

918:                                              ; preds = %917
  store i8 0, ptr %92, align 1, !tbaa !14
  br label %889, !llvm.loop !43

919:                                              ; preds = %901
  %920 = landingpad { ptr, i32 }
          cleanup
  %921 = extractvalue { ptr, i32 } %920, 0
  store ptr %921, ptr %11, align 8
  %922 = extractvalue { ptr, i32 } %920, 1
  store i32 %922, ptr %12, align 4
  br label %942

923:                                              ; preds = %904
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %11, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %12, align 4
  br label %941

927:                                              ; preds = %908
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %11, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %12, align 4
  br label %940

931:                                              ; preds = %913
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %11, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %12, align 4
  br label %939

935:                                              ; preds = %916
  %936 = landingpad { ptr, i32 }
          cleanup
  %937 = extractvalue { ptr, i32 } %936, 0
  store ptr %937, ptr %11, align 8
  %938 = extractvalue { ptr, i32 } %936, 1
  store i32 %938, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %96) #10
  br label %939

939:                                              ; preds = %935, %931
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %97) #10
  br label %940

940:                                              ; preds = %939, %927
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #10
  br label %941

941:                                              ; preds = %940, %923
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #10
  br label %942

942:                                              ; preds = %941, %919
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #10
  br label %943

943:                                              ; preds = %942, %894
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #10
  br label %1554

944:                                              ; preds = %893
  br label %945

945:                                              ; preds = %944
  store i8 0, ptr %92, align 1, !tbaa !14
  br label %881, !llvm.loop !44

946:                                              ; preds = %884
  br label %1552

947:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #10
  store i8 1, ptr %100, align 1, !tbaa !14
  br label %948

948:                                              ; preds = %1069, %947
  %949 = load i8, ptr %100, align 1, !tbaa !14, !range !16, !noundef !17
  %950 = trunc i8 %949 to i1
  br i1 %950, label %952, label %951

951:                                              ; preds = %948
  store i32 84, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #10
  br label %1070

952:                                              ; preds = %948
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  %953 = load ptr, ptr %51, align 8, !tbaa !5
  %954 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488) %953)
          to label %955 unwind label %961

955:                                              ; preds = %952
  store ptr %954, ptr %101, align 8, !tbaa !5
  br label %956

956:                                              ; preds = %1046, %955
  %957 = load ptr, ptr %101, align 8, !tbaa !5
  %958 = load i8, ptr %100, align 1, !tbaa !14, !range !16, !noundef !17
  %959 = trunc i8 %958 to i1
  br i1 %959, label %965, label %960

960:                                              ; preds = %956
  store i32 87, ptr %45, align 4
  br label %1066

961:                                              ; preds = %1035, %1007, %991, %978, %972, %968, %965, %952
  %962 = landingpad { ptr, i32 }
          cleanup
  %963 = extractvalue { ptr, i32 } %962, 0
  store ptr %963, ptr %11, align 8
  %964 = extractvalue { ptr, i32 } %962, 1
  store i32 %964, ptr %12, align 4
  br label %1067

965:                                              ; preds = %956
  %966 = load ptr, ptr %101, align 8, !tbaa !5
  %967 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZNK3AST9TypeAlias4typeEv(ptr noundef nonnull align 8 dereferenceable(216) %966)
          to label %968 unwind label %961

968:                                              ; preds = %965
  %969 = getelementptr inbounds %class.TypeRef, ptr %967, i32 0, i32 1
  %970 = invoke noundef zeroext i1 @_ZNK8TypeData6is_AnyEv(ptr noundef nonnull align 8 dereferenceable(112) %969)
          to label %971 unwind label %961

971:                                              ; preds = %968
  br i1 %970, label %972, label %1035

972:                                              ; preds = %971
  %973 = load ptr, ptr %101, align 8, !tbaa !5
  %974 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3AST9TypeAlias6paramsEv(ptr noundef nonnull align 8 dereferenceable(216) %973)
          to label %975 unwind label %961

975:                                              ; preds = %972
  %976 = getelementptr inbounds %"class.AST::GenericParams", ptr %974, i32 0, i32 0
  %977 = call noundef zeroext i1 @_ZNKSt6vectorIN3AST12GenericParamESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %976) #10
  br i1 %977, label %978, label %984

978:                                              ; preds = %975
  %979 = load ptr, ptr %101, align 8, !tbaa !5
  %980 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3AST9TypeAlias6paramsEv(ptr noundef nonnull align 8 dereferenceable(216) %979)
          to label %981 unwind label %961

981:                                              ; preds = %978
  %982 = getelementptr inbounds %"class.AST::GenericParams", ptr %980, i32 0, i32 1
  %983 = call noundef zeroext i1 @_ZNKSt6vectorIN3AST12GenericBoundESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %982) #10
  br i1 %983, label %1007, label %984

984:                                              ; preds = %981, %975
  br label %985

985:                                              ; preds = %984
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  %986 = load ptr, ptr %47, align 8, !tbaa !5
  %987 = getelementptr inbounds %"struct.AST::Named", ptr %986, i32 0, i32 0
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %987)
          to label %988 unwind label %992

988:                                              ; preds = %985
  call void @llvm.lifetime.start.p0(i64 1, ptr %104) #10
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 1 dereferenceable(1) %104) #10
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %102, i32 noundef 0, ptr noundef %103)
          to label %989 unwind label %996

989:                                              ; preds = %988
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  %990 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %990, ptr noundef @.str.12)
          to label %991 unwind label %1001

991:                                              ; preds = %989
  invoke void @__cxa_throw(ptr %990, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %2393 unwind label %961

992:                                              ; preds = %985
  %993 = landingpad { ptr, i32 }
          cleanup
  %994 = extractvalue { ptr, i32 } %993, 0
  store ptr %994, ptr %11, align 8
  %995 = extractvalue { ptr, i32 } %993, 1
  store i32 %995, ptr %12, align 4
  br label %1000

996:                                              ; preds = %988
  %997 = landingpad { ptr, i32 }
          cleanup
  %998 = extractvalue { ptr, i32 } %997, 0
  store ptr %998, ptr %11, align 8
  %999 = extractvalue { ptr, i32 } %997, 1
  store i32 %999, ptr %12, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  br label %1000

1000:                                             ; preds = %996, %992
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  br label %1067

1001:                                             ; preds = %989
  %1002 = landingpad { ptr, i32 }
          cleanup
  %1003 = extractvalue { ptr, i32 } %1002, 0
  store ptr %1003, ptr %11, align 8
  %1004 = extractvalue { ptr, i32 } %1002, 1
  store i32 %1004, ptr %12, align 4
  call void @__cxa_free_exception(ptr %990) #10
  br label %1067

1005:                                             ; No predecessors!
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

1007:                                             ; preds = %1006, %981
  %1008 = load ptr, ptr %47, align 8, !tbaa !5
  %1009 = getelementptr inbounds %"struct.AST::Named", ptr %1008, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(8) %1009)
          to label %1010 unwind label %961

1010:                                             ; preds = %1007
  %1011 = load ptr, ptr %47, align 8, !tbaa !5
  %1012 = getelementptr inbounds %"struct.AST::Named", ptr %1011, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %106, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1012)
          to label %1013 unwind label %1021

1013:                                             ; preds = %1010
  %1014 = getelementptr inbounds %"class.HIR::ExternType", ptr %108, i32 0, i32 0
  %1015 = getelementptr inbounds %"struct.HIR::TraitMarkings", ptr %1014, i32 0, i32 0
  store i8 0, ptr %1015, align 8, !tbaa !45
  %1016 = getelementptr inbounds %"struct.HIR::TraitMarkings", ptr %1014, i32 0, i32 1
  store i8 0, ptr %1016, align 1, !tbaa !56
  %1017 = getelementptr inbounds %"struct.HIR::TraitMarkings", ptr %1014, i32 0, i32 2
  store i8 0, ptr %1017, align 2, !tbaa !57
  %1018 = getelementptr inbounds %"struct.HIR::TraitMarkings", ptr %1014, i32 0, i32 3
  call void @llvm.memset.p0.i64(ptr align 8 %1018, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %1018) #10
  invoke void @_ZN3HIR8TypeItemC2ENS_10ExternTypeE(ptr noundef nonnull align 8 dereferenceable(408) %107, ptr noundef %108)
          to label %1019 unwind label %1025

1019:                                             ; preds = %1013
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %105, ptr noundef %106, ptr noundef %107)
          to label %1020 unwind label %1029

1020:                                             ; preds = %1019
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %107) #10
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %108) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #10
  store i32 87, ptr %45, align 4
  br label %1066

1021:                                             ; preds = %1010
  %1022 = landingpad { ptr, i32 }
          cleanup
  %1023 = extractvalue { ptr, i32 } %1022, 0
  store ptr %1023, ptr %11, align 8
  %1024 = extractvalue { ptr, i32 } %1022, 1
  store i32 %1024, ptr %12, align 4
  br label %1034

1025:                                             ; preds = %1013
  %1026 = landingpad { ptr, i32 }
          cleanup
  %1027 = extractvalue { ptr, i32 } %1026, 0
  store ptr %1027, ptr %11, align 8
  %1028 = extractvalue { ptr, i32 } %1026, 1
  store i32 %1028, ptr %12, align 4
  br label %1033

1029:                                             ; preds = %1019
  %1030 = landingpad { ptr, i32 }
          cleanup
  %1031 = extractvalue { ptr, i32 } %1030, 0
  store ptr %1031, ptr %11, align 8
  %1032 = extractvalue { ptr, i32 } %1030, 1
  store i32 %1032, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %107) #10
  br label %1033

1033:                                             ; preds = %1029, %1025
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %108) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %106) #10
  br label %1034

1034:                                             ; preds = %1033, %1021
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #10
  br label %1067

1035:                                             ; preds = %971
  %1036 = load ptr, ptr %47, align 8, !tbaa !5
  %1037 = getelementptr inbounds %"struct.AST::Named", ptr %1036, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %1037)
          to label %1038 unwind label %961

1038:                                             ; preds = %1035
  %1039 = load ptr, ptr %47, align 8, !tbaa !5
  %1040 = getelementptr inbounds %"struct.AST::Named", ptr %1039, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %110, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1040)
          to label %1041 unwind label %1047

1041:                                             ; preds = %1038
  %1042 = load ptr, ptr %101, align 8, !tbaa !5
  invoke void @_Z18LowerHIR_TypeAliasRKN3HIR8ItemPathERKN3AST9TypeAliasE(ptr dead_on_unwind writable sret(%"struct.HIR::TypeAlias") align 8 %112, ptr noundef nonnull align 8 dereferenceable(56) %49, ptr noundef nonnull align 8 dereferenceable(216) %1042)
          to label %1043 unwind label %1051

1043:                                             ; preds = %1041
  invoke void @_ZN3HIR8TypeItem14make_TypeAliasENS_9TypeAliasE(ptr dead_on_unwind writable sret(%"class.HIR::TypeItem") align 8 %111, ptr noundef %112)
          to label %1044 unwind label %1055

1044:                                             ; preds = %1043
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %109, ptr noundef %110, ptr noundef %111)
          to label %1045 unwind label %1059

1045:                                             ; preds = %1044
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %111) #10
  call void @_ZN3HIR9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %112) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #10
  br label %1046

1046:                                             ; preds = %1045
  store i8 0, ptr %100, align 1, !tbaa !14
  br label %956, !llvm.loop !58

1047:                                             ; preds = %1038
  %1048 = landingpad { ptr, i32 }
          cleanup
  %1049 = extractvalue { ptr, i32 } %1048, 0
  store ptr %1049, ptr %11, align 8
  %1050 = extractvalue { ptr, i32 } %1048, 1
  store i32 %1050, ptr %12, align 4
  br label %1065

1051:                                             ; preds = %1041
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %11, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %12, align 4
  br label %1064

1055:                                             ; preds = %1043
  %1056 = landingpad { ptr, i32 }
          cleanup
  %1057 = extractvalue { ptr, i32 } %1056, 0
  store ptr %1057, ptr %11, align 8
  %1058 = extractvalue { ptr, i32 } %1056, 1
  store i32 %1058, ptr %12, align 4
  br label %1063

1059:                                             ; preds = %1044
  %1060 = landingpad { ptr, i32 }
          cleanup
  %1061 = extractvalue { ptr, i32 } %1060, 0
  store ptr %1061, ptr %11, align 8
  %1062 = extractvalue { ptr, i32 } %1060, 1
  store i32 %1062, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %111) #10
  br label %1063

1063:                                             ; preds = %1059, %1055
  call void @_ZN3HIR9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %112) #10
  br label %1064

1064:                                             ; preds = %1063, %1051
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %110) #10
  br label %1065

1065:                                             ; preds = %1064, %1047
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #10
  br label %1067

1066:                                             ; preds = %1020, %960
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  br label %1068

1067:                                             ; preds = %1065, %1034, %1001, %1000, %961
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #10
  br label %1554

1068:                                             ; preds = %1066
  br label %1069

1069:                                             ; preds = %1068
  store i8 0, ptr %100, align 1, !tbaa !14
  br label %948, !llvm.loop !59

1070:                                             ; preds = %951
  br label %1552

1071:                                             ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #10
  store i8 1, ptr %113, align 1, !tbaa !14
  br label %1072

1072:                                             ; preds = %1199, %1071
  %1073 = load i8, ptr %113, align 1, !tbaa !14, !range !16, !noundef !17
  %1074 = trunc i8 %1073 to i1
  br i1 %1074, label %1076, label %1075

1075:                                             ; preds = %1072
  store i32 92, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #10
  br label %1200

1076:                                             ; preds = %1072
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #10
  %1077 = load ptr, ptr %51, align 8, !tbaa !5
  %1078 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZNK3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488) %1077)
          to label %1079 unwind label %1085

1079:                                             ; preds = %1076
  store ptr %1078, ptr %114, align 8, !tbaa !5
  br label %1080

1080:                                             ; preds = %1177, %1079
  %1081 = load ptr, ptr %114, align 8, !tbaa !5
  %1082 = load i8, ptr %113, align 1, !tbaa !14, !range !16, !noundef !17
  %1083 = trunc i8 %1082 to i1
  br i1 %1083, label %1089, label %1084

1084:                                             ; preds = %1080
  store i32 95, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  br label %1198

1085:                                             ; preds = %1161, %1129, %1124, %1094, %1089, %1076
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %11, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %12, align 4
  br label %1197

1089:                                             ; preds = %1080
  %1090 = load ptr, ptr %114, align 8, !tbaa !5
  %1091 = getelementptr inbounds %"class.AST::Struct", ptr %1090, i32 0, i32 1
  %1092 = invoke noundef zeroext i1 @_ZNK3AST10StructData7is_UnitEv(ptr noundef nonnull align 8 dereferenceable(32) %1091)
          to label %1093 unwind label %1085

1093:                                             ; preds = %1089
  br i1 %1092, label %1094, label %1124

1094:                                             ; preds = %1093
  %1095 = load ptr, ptr %47, align 8, !tbaa !5
  %1096 = getelementptr inbounds %"struct.AST::Named", ptr %1095, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %1096)
          to label %1097 unwind label %1085

1097:                                             ; preds = %1094
  %1098 = load ptr, ptr %47, align 8, !tbaa !5
  %1099 = getelementptr inbounds %"struct.AST::Named", ptr %1098, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %116, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1099)
          to label %1100 unwind label %1105

1100:                                             ; preds = %1097
  %1101 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstant", ptr %118, i32 0, i32 0
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %1101, ptr noundef nonnull align 8 dereferenceable(56) %49)
          to label %1102 unwind label %1109

1102:                                             ; preds = %1100
  invoke void @_ZN3HIR9ValueItem19make_StructConstantENS0_19Data_StructConstantE(ptr dead_on_unwind writable sret(%"class.HIR::ValueItem") align 8 %117, ptr noundef %118)
          to label %1103 unwind label %1113

1103:                                             ; preds = %1102
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %115, ptr noundef %116, ptr noundef %117)
          to label %1104 unwind label %1117

1104:                                             ; preds = %1103
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %117) #10
  call void @_ZN3HIR9ValueItem19Data_StructConstantD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  br label %1161

1105:                                             ; preds = %1097
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %11, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %12, align 4
  br label %1123

1109:                                             ; preds = %1100
  %1110 = landingpad { ptr, i32 }
          cleanup
  %1111 = extractvalue { ptr, i32 } %1110, 0
  store ptr %1111, ptr %11, align 8
  %1112 = extractvalue { ptr, i32 } %1110, 1
  store i32 %1112, ptr %12, align 4
  br label %1122

1113:                                             ; preds = %1102
  %1114 = landingpad { ptr, i32 }
          cleanup
  %1115 = extractvalue { ptr, i32 } %1114, 0
  store ptr %1115, ptr %11, align 8
  %1116 = extractvalue { ptr, i32 } %1114, 1
  store i32 %1116, ptr %12, align 4
  br label %1121

1117:                                             ; preds = %1103
  %1118 = landingpad { ptr, i32 }
          cleanup
  %1119 = extractvalue { ptr, i32 } %1118, 0
  store ptr %1119, ptr %11, align 8
  %1120 = extractvalue { ptr, i32 } %1118, 1
  store i32 %1120, ptr %12, align 4
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %117) #10
  br label %1121

1121:                                             ; preds = %1117, %1113
  call void @_ZN3HIR9ValueItem19Data_StructConstantD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #10
  br label %1122

1122:                                             ; preds = %1121, %1109
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %116) #10
  br label %1123

1123:                                             ; preds = %1122, %1105
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  br label %1197

1124:                                             ; preds = %1093
  %1125 = load ptr, ptr %114, align 8, !tbaa !5
  %1126 = getelementptr inbounds %"class.AST::Struct", ptr %1125, i32 0, i32 1
  %1127 = invoke noundef zeroext i1 @_ZNK3AST10StructData8is_TupleEv(ptr noundef nonnull align 8 dereferenceable(32) %1126)
          to label %1128 unwind label %1085

1128:                                             ; preds = %1124
  br i1 %1127, label %1129, label %1159

1129:                                             ; preds = %1128
  %1130 = load ptr, ptr %47, align 8, !tbaa !5
  %1131 = getelementptr inbounds %"struct.AST::Named", ptr %1130, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %1131)
          to label %1132 unwind label %1085

1132:                                             ; preds = %1129
  %1133 = load ptr, ptr %47, align 8, !tbaa !5
  %1134 = getelementptr inbounds %"struct.AST::Named", ptr %1133, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %120, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1134)
          to label %1135 unwind label %1140

1135:                                             ; preds = %1132
  %1136 = getelementptr inbounds %"struct.HIR::ValueItem::Data_StructConstructor", ptr %122, i32 0, i32 0
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %1136, ptr noundef nonnull align 8 dereferenceable(56) %49)
          to label %1137 unwind label %1144

1137:                                             ; preds = %1135
  invoke void @_ZN3HIR9ValueItem22make_StructConstructorENS0_22Data_StructConstructorE(ptr dead_on_unwind writable sret(%"class.HIR::ValueItem") align 8 %121, ptr noundef %122)
          to label %1138 unwind label %1148

1138:                                             ; preds = %1137
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %119, ptr noundef %120, ptr noundef %121)
          to label %1139 unwind label %1152

1139:                                             ; preds = %1138
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %121) #10
  call void @_ZN3HIR9ValueItem22Data_StructConstructorD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #10
  br label %1160

1140:                                             ; preds = %1132
  %1141 = landingpad { ptr, i32 }
          cleanup
  %1142 = extractvalue { ptr, i32 } %1141, 0
  store ptr %1142, ptr %11, align 8
  %1143 = extractvalue { ptr, i32 } %1141, 1
  store i32 %1143, ptr %12, align 4
  br label %1158

1144:                                             ; preds = %1135
  %1145 = landingpad { ptr, i32 }
          cleanup
  %1146 = extractvalue { ptr, i32 } %1145, 0
  store ptr %1146, ptr %11, align 8
  %1147 = extractvalue { ptr, i32 } %1145, 1
  store i32 %1147, ptr %12, align 4
  br label %1157

1148:                                             ; preds = %1137
  %1149 = landingpad { ptr, i32 }
          cleanup
  %1150 = extractvalue { ptr, i32 } %1149, 0
  store ptr %1150, ptr %11, align 8
  %1151 = extractvalue { ptr, i32 } %1149, 1
  store i32 %1151, ptr %12, align 4
  br label %1156

1152:                                             ; preds = %1138
  %1153 = landingpad { ptr, i32 }
          cleanup
  %1154 = extractvalue { ptr, i32 } %1153, 0
  store ptr %1154, ptr %11, align 8
  %1155 = extractvalue { ptr, i32 } %1153, 1
  store i32 %1155, ptr %12, align 4
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %121) #10
  br label %1156

1156:                                             ; preds = %1152, %1148
  call void @_ZN3HIR9ValueItem22Data_StructConstructorD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #10
  br label %1157

1157:                                             ; preds = %1156, %1144
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #10
  br label %1158

1158:                                             ; preds = %1157, %1140
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %119) #10
  br label %1197

1159:                                             ; preds = %1128
  br label %1160

1160:                                             ; preds = %1159, %1139
  br label %1161

1161:                                             ; preds = %1160, %1104
  %1162 = load ptr, ptr %47, align 8, !tbaa !5
  %1163 = getelementptr inbounds %"struct.AST::Named", ptr %1162, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %1163)
          to label %1164 unwind label %1085

1164:                                             ; preds = %1161
  %1165 = load ptr, ptr %47, align 8, !tbaa !5
  %1166 = getelementptr inbounds %"struct.AST::Named", ptr %1165, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %124, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1166)
          to label %1167 unwind label %1178

1167:                                             ; preds = %1164
  %1168 = load ptr, ptr %46, align 8, !tbaa !5
  %1169 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1168) #10
  %1170 = getelementptr inbounds %"struct.AST::Named", ptr %1169, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %127, ptr align 8 %49, i64 56, i1 false), !tbaa.struct !11
  %1171 = load ptr, ptr %114, align 8, !tbaa !5
  %1172 = load ptr, ptr %47, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.AST::Named", ptr %1172, i32 0, i32 1
  invoke void @_Z15LowerHIR_StructRK4SpanN3HIR8ItemPathERKN3AST6StructERKNS4_13AttributeListE(ptr dead_on_unwind writable sret(%"class.HIR::Struct") align 8 %126, ptr noundef nonnull align 8 dereferenceable(8) %1170, ptr noundef byval(%"class.HIR::ItemPath") align 8 %127, ptr noundef nonnull align 8 dereferenceable(152) %1171, ptr noundef nonnull align 8 dereferenceable(24) %1173)
          to label %1174 unwind label %1182

1174:                                             ; preds = %1167
  invoke void @_ZN3HIR8TypeItemC2ENS_6StructE(ptr noundef nonnull align 8 dereferenceable(408) %125, ptr noundef %126)
          to label %1175 unwind label %1186

1175:                                             ; preds = %1174
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %123, ptr noundef %124, ptr noundef %125)
          to label %1176 unwind label %1190

1176:                                             ; preds = %1175
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %125) #10
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %126) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %124) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  br label %1177

1177:                                             ; preds = %1176
  store i8 0, ptr %113, align 1, !tbaa !14
  br label %1080, !llvm.loop !60

1178:                                             ; preds = %1164
  %1179 = landingpad { ptr, i32 }
          cleanup
  %1180 = extractvalue { ptr, i32 } %1179, 0
  store ptr %1180, ptr %11, align 8
  %1181 = extractvalue { ptr, i32 } %1179, 1
  store i32 %1181, ptr %12, align 4
  br label %1196

1182:                                             ; preds = %1167
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %11, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %12, align 4
  br label %1195

1186:                                             ; preds = %1174
  %1187 = landingpad { ptr, i32 }
          cleanup
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %11, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %12, align 4
  br label %1194

1190:                                             ; preds = %1175
  %1191 = landingpad { ptr, i32 }
          cleanup
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %11, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %125) #10
  br label %1194

1194:                                             ; preds = %1190, %1186
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %126) #10
  br label %1195

1195:                                             ; preds = %1194, %1182
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %124) #10
  br label %1196

1196:                                             ; preds = %1195, %1178
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  br label %1197

1197:                                             ; preds = %1196, %1158, %1123, %1085
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #10
  br label %1554

1198:                                             ; preds = %1084
  br label %1199

1199:                                             ; preds = %1198
  store i8 0, ptr %113, align 1, !tbaa !14
  br label %1072, !llvm.loop !61

1200:                                             ; preds = %1075
  br label %1552

1201:                                             ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %128) #10
  store i8 1, ptr %128, align 1, !tbaa !14
  br label %1202

1202:                                             ; preds = %1269, %1201
  %1203 = load i8, ptr %128, align 1, !tbaa !14, !range !16, !noundef !17
  %1204 = trunc i8 %1203 to i1
  br i1 %1204, label %1206, label %1205

1205:                                             ; preds = %1202
  store i32 98, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #10
  br label %1270

1206:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #10
  %1207 = load ptr, ptr %51, align 8, !tbaa !5
  %1208 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488) %1207)
          to label %1209 unwind label %1215

1209:                                             ; preds = %1206
  store ptr %1208, ptr %129, align 8, !tbaa !5
  br label %1210

1210:                                             ; preds = %1237, %1209
  %1211 = load ptr, ptr %129, align 8, !tbaa !5
  %1212 = load i8, ptr %128, align 1, !tbaa !14, !range !16, !noundef !17
  %1213 = trunc i8 %1212 to i1
  br i1 %1213, label %1219, label %1214

1214:                                             ; preds = %1210
  store i32 101, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  br label %1268

1215:                                             ; preds = %1206
  %1216 = landingpad { ptr, i32 }
          cleanup
  %1217 = extractvalue { ptr, i32 } %1216, 0
  store ptr %1217, ptr %11, align 8
  %1218 = extractvalue { ptr, i32 } %1216, 1
  store i32 %1218, ptr %12, align 4
  br label %1267

1219:                                             ; preds = %1210
  call void @llvm.lifetime.start.p0(i64 200, ptr %130) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %131, ptr align 8 %49, i64 56, i1 false), !tbaa.struct !11
  %1220 = load ptr, ptr %129, align 8, !tbaa !5
  %1221 = load ptr, ptr %47, align 8, !tbaa !5
  %1222 = getelementptr inbounds %"struct.AST::Named", ptr %1221, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %133) #10
  %1223 = getelementptr inbounds %class.anon.828, ptr %133, i32 0, i32 0
  store ptr %0, ptr %1223, align 8, !tbaa !5
  %1224 = getelementptr inbounds %class.anon.828, ptr %133, i32 0, i32 1
  store ptr %15, ptr %1224, align 8, !tbaa !5
  %1225 = getelementptr inbounds %class.anon.828, ptr %133, i32 0, i32 2
  %1226 = load ptr, ptr %47, align 8, !tbaa !5
  store ptr %1226, ptr %1225, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFv8RcStringN3HIR6StructEEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleENS1_8ItemPathESt6vectorINS1_10SimplePathESaISC_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(24) %133)
          to label %1227 unwind label %1238

1227:                                             ; preds = %1219
  invoke void @_Z13LowerHIR_EnumN3HIR8ItemPathERKN3AST4EnumERKNS1_13AttributeListESt8functionIFv8RcStringNS_6StructEEE(ptr dead_on_unwind writable sret(%"class.HIR::Enum") align 8 %130, ptr noundef byval(%"class.HIR::ItemPath") align 8 %131, ptr noundef nonnull align 8 dereferenceable(80) %1220, ptr noundef nonnull align 8 dereferenceable(24) %1222, ptr noundef %132)
          to label %1228 unwind label %1242

1228:                                             ; preds = %1227
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %133) #10
  %1229 = load ptr, ptr %47, align 8, !tbaa !5
  %1230 = getelementptr inbounds %"struct.AST::Named", ptr %1229, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 8 dereferenceable(8) %1230)
          to label %1231 unwind label %1247

1231:                                             ; preds = %1228
  %1232 = load ptr, ptr %47, align 8, !tbaa !5
  %1233 = getelementptr inbounds %"struct.AST::Named", ptr %1232, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %135, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1233)
          to label %1234 unwind label %1251

1234:                                             ; preds = %1231
  call void @_ZN3HIR4EnumC2EOS0_(ptr noundef nonnull align 8 dereferenceable(200) %137, ptr noundef nonnull align 8 dereferenceable(200) %130) #10
  invoke void @_ZN3HIR8TypeItemC2ENS_4EnumE(ptr noundef nonnull align 8 dereferenceable(408) %136, ptr noundef %137)
          to label %1235 unwind label %1255

1235:                                             ; preds = %1234
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %134, ptr noundef %135, ptr noundef %136)
          to label %1236 unwind label %1259

1236:                                             ; preds = %1235
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %136) #10
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %137) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #10
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %130) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr %130) #10
  br label %1237

1237:                                             ; preds = %1236
  store i8 0, ptr %128, align 1, !tbaa !14
  br label %1210, !llvm.loop !62

1238:                                             ; preds = %1219
  %1239 = landingpad { ptr, i32 }
          cleanup
  %1240 = extractvalue { ptr, i32 } %1239, 0
  store ptr %1240, ptr %11, align 8
  %1241 = extractvalue { ptr, i32 } %1239, 1
  store i32 %1241, ptr %12, align 4
  br label %1246

1242:                                             ; preds = %1227
  %1243 = landingpad { ptr, i32 }
          cleanup
  %1244 = extractvalue { ptr, i32 } %1243, 0
  store ptr %1244, ptr %11, align 8
  %1245 = extractvalue { ptr, i32 } %1243, 1
  store i32 %1245, ptr %12, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #10
  br label %1246

1246:                                             ; preds = %1242, %1238
  call void @llvm.lifetime.end.p0(i64 24, ptr %133) #10
  br label %1266

1247:                                             ; preds = %1228
  %1248 = landingpad { ptr, i32 }
          cleanup
  %1249 = extractvalue { ptr, i32 } %1248, 0
  store ptr %1249, ptr %11, align 8
  %1250 = extractvalue { ptr, i32 } %1248, 1
  store i32 %1250, ptr %12, align 4
  br label %1265

1251:                                             ; preds = %1231
  %1252 = landingpad { ptr, i32 }
          cleanup
  %1253 = extractvalue { ptr, i32 } %1252, 0
  store ptr %1253, ptr %11, align 8
  %1254 = extractvalue { ptr, i32 } %1252, 1
  store i32 %1254, ptr %12, align 4
  br label %1264

1255:                                             ; preds = %1234
  %1256 = landingpad { ptr, i32 }
          cleanup
  %1257 = extractvalue { ptr, i32 } %1256, 0
  store ptr %1257, ptr %11, align 8
  %1258 = extractvalue { ptr, i32 } %1256, 1
  store i32 %1258, ptr %12, align 4
  br label %1263

1259:                                             ; preds = %1235
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %11, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %136) #10
  br label %1263

1263:                                             ; preds = %1259, %1255
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %137) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135) #10
  br label %1264

1264:                                             ; preds = %1263, %1251
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #10
  br label %1265

1265:                                             ; preds = %1264, %1247
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %130) #10
  br label %1266

1266:                                             ; preds = %1265, %1246
  call void @llvm.lifetime.end.p0(i64 200, ptr %130) #10
  br label %1267

1267:                                             ; preds = %1266, %1215
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #10
  br label %1554

1268:                                             ; preds = %1214
  br label %1269

1269:                                             ; preds = %1268
  store i8 0, ptr %128, align 1, !tbaa !14
  br label %1202, !llvm.loop !63

1270:                                             ; preds = %1205
  br label %1552

1271:                                             ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %138) #10
  store i8 1, ptr %138, align 1, !tbaa !14
  br label %1272

1272:                                             ; preds = %1324, %1271
  %1273 = load i8, ptr %138, align 1, !tbaa !14, !range !16, !noundef !17
  %1274 = trunc i8 %1273 to i1
  br i1 %1274, label %1276, label %1275

1275:                                             ; preds = %1272
  store i32 104, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #10
  br label %1325

1276:                                             ; preds = %1272
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  %1277 = load ptr, ptr %51, align 8, !tbaa !5
  %1278 = invoke noundef nonnull align 8 dereferenceable(76) ptr @_ZNK3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488) %1277)
          to label %1279 unwind label %1285

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

1280:                                             ; preds = %1302, %1279
  %1281 = load ptr, ptr %139, align 8, !tbaa !5
  %1282 = load i8, ptr %138, align 1, !tbaa !14, !range !16, !noundef !17
  %1283 = trunc i8 %1282 to i1
  br i1 %1283, label %1289, label %1284

1284:                                             ; preds = %1280
  store i32 107, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  br label %1323

1285:                                             ; preds = %1289, %1276
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %11, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %12, align 4
  br label %1322

1289:                                             ; preds = %1280
  %1290 = load ptr, ptr %47, align 8, !tbaa !5
  %1291 = getelementptr inbounds %"struct.AST::Named", ptr %1290, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 8 dereferenceable(8) %1291)
          to label %1292 unwind label %1285

1292:                                             ; preds = %1289
  %1293 = load ptr, ptr %47, align 8, !tbaa !5
  %1294 = getelementptr inbounds %"struct.AST::Named", ptr %1293, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %141, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1294)
          to label %1295 unwind label %1303

1295:                                             ; preds = %1292
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %144, ptr align 8 %49, i64 56, i1 false), !tbaa.struct !11
  %1296 = load ptr, ptr %139, align 8, !tbaa !5
  %1297 = load ptr, ptr %47, align 8, !tbaa !5
  %1298 = getelementptr inbounds %"struct.AST::Named", ptr %1297, i32 0, i32 1
  invoke void @_Z14LowerHIR_UnionN3HIR8ItemPathERKN3AST5UnionERKNS1_13AttributeListE(ptr dead_on_unwind writable sret(%"class.HIR::Union") align 8 %143, ptr noundef byval(%"class.HIR::ItemPath") align 8 %144, ptr noundef nonnull align 8 dereferenceable(76) %1296, ptr noundef nonnull align 8 dereferenceable(24) %1298)
          to label %1299 unwind label %1307

1299:                                             ; preds = %1295
  invoke void @_ZN3HIR8TypeItemC2ENS_5UnionE(ptr noundef nonnull align 8 dereferenceable(408) %142, ptr noundef %143)
          to label %1300 unwind label %1311

1300:                                             ; preds = %1299
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %140, ptr noundef %141, ptr noundef %142)
          to label %1301 unwind label %1315

1301:                                             ; preds = %1300
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %142) #10
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %143) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %141) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #10
  br label %1302

1302:                                             ; preds = %1301
  store i8 0, ptr %138, align 1, !tbaa !14
  br label %1280, !llvm.loop !64

1303:                                             ; preds = %1292
  %1304 = landingpad { ptr, i32 }
          cleanup
  %1305 = extractvalue { ptr, i32 } %1304, 0
  store ptr %1305, ptr %11, align 8
  %1306 = extractvalue { ptr, i32 } %1304, 1
  store i32 %1306, ptr %12, align 4
  br label %1321

1307:                                             ; preds = %1295
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %11, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %12, align 4
  br label %1320

1311:                                             ; preds = %1299
  %1312 = landingpad { ptr, i32 }
          cleanup
  %1313 = extractvalue { ptr, i32 } %1312, 0
  store ptr %1313, ptr %11, align 8
  %1314 = extractvalue { ptr, i32 } %1312, 1
  store i32 %1314, ptr %12, align 4
  br label %1319

1315:                                             ; preds = %1300
  %1316 = landingpad { ptr, i32 }
          cleanup
  %1317 = extractvalue { ptr, i32 } %1316, 0
  store ptr %1317, ptr %11, align 8
  %1318 = extractvalue { ptr, i32 } %1316, 1
  store i32 %1318, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %142) #10
  br label %1319

1319:                                             ; preds = %1315, %1311
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %143) #10
  br label %1320

1320:                                             ; preds = %1319, %1307
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %141) #10
  br label %1321

1321:                                             ; preds = %1320, %1303
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #10
  br label %1322

1322:                                             ; preds = %1321, %1285
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #10
  br label %1554

1323:                                             ; preds = %1284
  br label %1324

1324:                                             ; preds = %1323
  store i8 0, ptr %138, align 1, !tbaa !14
  br label %1272, !llvm.loop !65

1325:                                             ; preds = %1275
  br label %1552

1326:                                             ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %145) #10
  store i8 1, ptr %145, align 1, !tbaa !14
  br label %1327

1327:                                             ; preds = %1383, %1326
  %1328 = load i8, ptr %145, align 1, !tbaa !14, !range !16, !noundef !17
  %1329 = trunc i8 %1328 to i1
  br i1 %1329, label %1331, label %1330

1330:                                             ; preds = %1327
  store i32 110, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #10
  br label %1384

1331:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  %1332 = load ptr, ptr %51, align 8, !tbaa !5
  %1333 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3AST4Item8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(488) %1332)
          to label %1334 unwind label %1340

1334:                                             ; preds = %1331
  store ptr %1333, ptr %146, align 8, !tbaa !5
  br label %1335

1335:                                             ; preds = %1356, %1334
  %1336 = load ptr, ptr %146, align 8, !tbaa !5
  %1337 = load i8, ptr %145, align 1, !tbaa !14, !range !16, !noundef !17
  %1338 = trunc i8 %1337 to i1
  br i1 %1338, label %1344, label %1339

1339:                                             ; preds = %1335
  store i32 113, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  br label %1382

1340:                                             ; preds = %1344, %1331
  %1341 = landingpad { ptr, i32 }
          cleanup
  %1342 = extractvalue { ptr, i32 } %1341, 0
  store ptr %1342, ptr %11, align 8
  %1343 = extractvalue { ptr, i32 } %1341, 1
  store i32 %1343, ptr %12, align 4
  br label %1381

1344:                                             ; preds = %1335
  %1345 = load ptr, ptr %47, align 8, !tbaa !5
  %1346 = getelementptr inbounds %"struct.AST::Named", ptr %1345, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %147, ptr noundef nonnull align 8 dereferenceable(8) %1346)
          to label %1347 unwind label %1340

1347:                                             ; preds = %1344
  %1348 = load ptr, ptr %47, align 8, !tbaa !5
  %1349 = getelementptr inbounds %"struct.AST::Named", ptr %1348, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %148, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1349)
          to label %1350 unwind label %1357

1350:                                             ; preds = %1347
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %151, ptr noundef nonnull align 8 dereferenceable(56) %49)
          to label %1351 unwind label %1361

1351:                                             ; preds = %1350
  %1352 = load ptr, ptr %146, align 8, !tbaa !5
  invoke void @_Z14LowerHIR_TraitN3HIR10SimplePathERKN3AST5TraitE(ptr dead_on_unwind writable sret(%"class.HIR::Trait") align 8 %150, ptr noundef %151, ptr noundef nonnull align 8 dereferenceable(128) %1352)
          to label %1353 unwind label %1365

1353:                                             ; preds = %1351
  invoke void @_ZN3HIR8TypeItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(408) %149, ptr noundef %150)
          to label %1354 unwind label %1369

1354:                                             ; preds = %1353
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %147, ptr noundef %148, ptr noundef %149)
          to label %1355 unwind label %1373

1355:                                             ; preds = %1354
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %149) #10
  call void @_ZN3HIR5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(400) %150) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #10
  br label %1356

1356:                                             ; preds = %1355
  store i8 0, ptr %145, align 1, !tbaa !14
  br label %1335, !llvm.loop !66

1357:                                             ; preds = %1347
  %1358 = landingpad { ptr, i32 }
          cleanup
  %1359 = extractvalue { ptr, i32 } %1358, 0
  store ptr %1359, ptr %11, align 8
  %1360 = extractvalue { ptr, i32 } %1358, 1
  store i32 %1360, ptr %12, align 4
  br label %1380

1361:                                             ; preds = %1350
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %11, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %12, align 4
  br label %1379

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

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

1373:                                             ; preds = %1354
  %1374 = landingpad { ptr, i32 }
          cleanup
  %1375 = extractvalue { ptr, i32 } %1374, 0
  store ptr %1375, ptr %11, align 8
  %1376 = extractvalue { ptr, i32 } %1374, 1
  store i32 %1376, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %149) #10
  br label %1377

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

1378:                                             ; preds = %1377, %1365
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #10
  br label %1379

1379:                                             ; preds = %1378, %1361
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #10
  br label %1380

1380:                                             ; preds = %1379, %1357
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #10
  br label %1381

1381:                                             ; preds = %1380, %1340
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #10
  br label %1554

1382:                                             ; preds = %1339
  br label %1383

1383:                                             ; preds = %1382
  store i8 0, ptr %145, align 1, !tbaa !14
  br label %1327, !llvm.loop !67

1384:                                             ; preds = %1330
  br label %1552

1385:                                             ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %152) #10
  store i8 1, ptr %152, align 1, !tbaa !14
  br label %1386

1386:                                             ; preds = %1437, %1385
  %1387 = load i8, ptr %152, align 1, !tbaa !14, !range !16, !noundef !17
  %1388 = trunc i8 %1387 to i1
  br i1 %1388, label %1390, label %1389

1389:                                             ; preds = %1386
  store i32 116, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #10
  br label %1438

1390:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #10
  %1391 = load ptr, ptr %51, align 8, !tbaa !5
  %1392 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZNK3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488) %1391)
          to label %1393 unwind label %1399

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

1394:                                             ; preds = %1415, %1393
  %1395 = load ptr, ptr %153, align 8, !tbaa !5
  %1396 = load i8, ptr %152, align 1, !tbaa !14, !range !16, !noundef !17
  %1397 = trunc i8 %1396 to i1
  br i1 %1397, label %1403, label %1398

1398:                                             ; preds = %1394
  store i32 119, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #10
  br label %1436

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

1403:                                             ; preds = %1394
  %1404 = load ptr, ptr %47, align 8, !tbaa !5
  %1405 = getelementptr inbounds %"struct.AST::Named", ptr %1404, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %154, ptr noundef nonnull align 8 dereferenceable(8) %1405)
          to label %1406 unwind label %1399

1406:                                             ; preds = %1403
  %1407 = load ptr, ptr %47, align 8, !tbaa !5
  %1408 = getelementptr inbounds %"struct.AST::Named", ptr %1407, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %155, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1408)
          to label %1409 unwind label %1416

1409:                                             ; preds = %1406
  %1410 = load ptr, ptr %48, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 %49, i64 56, i1 false), !tbaa.struct !11
  %1411 = load ptr, ptr %153, align 8, !tbaa !5
  invoke void @_Z19LowerHIR_TraitAliasRK4SpanN3HIR8ItemPathERKN3AST10TraitAliasE(ptr dead_on_unwind writable sret(%"struct.HIR::TraitAlias") align 8 %157, ptr noundef nonnull align 8 dereferenceable(8) %1410, ptr noundef byval(%"class.HIR::ItemPath") align 8 %158, ptr noundef nonnull align 8 dereferenceable(72) %1411)
          to label %1412 unwind label %1420

1412:                                             ; preds = %1409
  invoke void @_ZN3HIR8TypeItemC2ENS_10TraitAliasE(ptr noundef nonnull align 8 dereferenceable(408) %156, ptr noundef %157)
          to label %1413 unwind label %1424

1413:                                             ; preds = %1412
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %154, ptr noundef %155, ptr noundef %156)
          to label %1414 unwind label %1428

1414:                                             ; preds = %1413
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %156) #10
  call void @_ZN3HIR10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %157) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %155) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %154) #10
  br label %1415

1415:                                             ; preds = %1414
  store i8 0, ptr %152, align 1, !tbaa !14
  br label %1394, !llvm.loop !68

1416:                                             ; preds = %1406
  %1417 = landingpad { ptr, i32 }
          cleanup
  %1418 = extractvalue { ptr, i32 } %1417, 0
  store ptr %1418, ptr %11, align 8
  %1419 = extractvalue { ptr, i32 } %1417, 1
  store i32 %1419, ptr %12, align 4
  br label %1434

1420:                                             ; preds = %1409
  %1421 = landingpad { ptr, i32 }
          cleanup
  %1422 = extractvalue { ptr, i32 } %1421, 0
  store ptr %1422, ptr %11, align 8
  %1423 = extractvalue { ptr, i32 } %1421, 1
  store i32 %1423, ptr %12, align 4
  br label %1433

1424:                                             ; preds = %1412
  %1425 = landingpad { ptr, i32 }
          cleanup
  %1426 = extractvalue { ptr, i32 } %1425, 0
  store ptr %1426, ptr %11, align 8
  %1427 = extractvalue { ptr, i32 } %1425, 1
  store i32 %1427, ptr %12, align 4
  br label %1432

1428:                                             ; preds = %1413
  %1429 = landingpad { ptr, i32 }
          cleanup
  %1430 = extractvalue { ptr, i32 } %1429, 0
  store ptr %1430, ptr %11, align 8
  %1431 = extractvalue { ptr, i32 } %1429, 1
  store i32 %1431, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %156) #10
  br label %1432

1432:                                             ; preds = %1428, %1424
  call void @_ZN3HIR10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %157) #10
  br label %1433

1433:                                             ; preds = %1432, %1420
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %155) #10
  br label %1434

1434:                                             ; preds = %1433, %1416
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %154) #10
  br label %1435

1435:                                             ; preds = %1434, %1399
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #10
  br label %1554

1436:                                             ; preds = %1398
  br label %1437

1437:                                             ; preds = %1436
  store i8 0, ptr %152, align 1, !tbaa !14
  br label %1386, !llvm.loop !69

1438:                                             ; preds = %1389
  br label %1552

1439:                                             ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #10
  store i8 1, ptr %159, align 1, !tbaa !14
  br label %1440

1440:                                             ; preds = %1498, %1439
  %1441 = load i8, ptr %159, align 1, !tbaa !14, !range !16, !noundef !17
  %1442 = trunc i8 %1441 to i1
  br i1 %1442, label %1444, label %1443

1443:                                             ; preds = %1440
  store i32 122, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #10
  br label %1499

1444:                                             ; preds = %1440
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #10
  %1445 = load ptr, ptr %51, align 8, !tbaa !5
  %1446 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488) %1445)
          to label %1447 unwind label %1453

1447:                                             ; preds = %1444
  store ptr %1446, ptr %160, align 8, !tbaa !5
  br label %1448

1448:                                             ; preds = %1471, %1447
  %1449 = load ptr, ptr %160, align 8, !tbaa !5
  %1450 = load i8, ptr %159, align 1, !tbaa !14, !range !16, !noundef !17
  %1451 = trunc i8 %1450 to i1
  br i1 %1451, label %1457, label %1452

1452:                                             ; preds = %1448
  store i32 125, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #10
  br label %1497

1453:                                             ; preds = %1457, %1444
  %1454 = landingpad { ptr, i32 }
          cleanup
  %1455 = extractvalue { ptr, i32 } %1454, 0
  store ptr %1455, ptr %11, align 8
  %1456 = extractvalue { ptr, i32 } %1454, 1
  store i32 %1456, ptr %12, align 4
  br label %1496

1457:                                             ; preds = %1448
  %1458 = load ptr, ptr %47, align 8, !tbaa !5
  %1459 = getelementptr inbounds %"struct.AST::Named", ptr %1458, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %161, ptr noundef nonnull align 8 dereferenceable(8) %1459)
          to label %1460 unwind label %1453

1460:                                             ; preds = %1457
  %1461 = load ptr, ptr %47, align 8, !tbaa !5
  %1462 = getelementptr inbounds %"struct.AST::Named", ptr %1461, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %162, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1462)
          to label %1463 unwind label %1472

1463:                                             ; preds = %1460
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %165, ptr align 8 %49, i64 56, i1 false), !tbaa.struct !11
  %1464 = load ptr, ptr %47, align 8, !tbaa !5
  %1465 = getelementptr inbounds %"struct.AST::Named", ptr %1464, i32 0, i32 1
  %1466 = load ptr, ptr %160, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #10
  invoke void @_ZN3HIR7TypeRefC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %1467 unwind label %1476

1467:                                             ; preds = %1463
  invoke void @_Z17LowerHIR_FunctionN3HIR8ItemPathERKN3AST13AttributeListERKNS1_8FunctionERKNS_7TypeRefE(ptr dead_on_unwind writable sret(%"class.HIR::Function") align 8 %164, ptr noundef byval(%"class.HIR::ItemPath") align 8 %165, ptr noundef nonnull align 8 dereferenceable(24) %1465, ptr noundef nonnull align 8 dereferenceable(368) %1466, ptr noundef nonnull align 8 dereferenceable(8) %166)
          to label %1468 unwind label %1480

1468:                                             ; preds = %1467
  invoke void @_ZN3HIR9ValueItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(368) %163, ptr noundef %164)
          to label %1469 unwind label %1484

1469:                                             ; preds = %1468
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %161, ptr noundef %162, ptr noundef %163)
          to label %1470 unwind label %1488

1470:                                             ; preds = %1469
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %163) #10
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %164) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %162) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #10
  br label %1471

1471:                                             ; preds = %1470
  store i8 0, ptr %159, align 1, !tbaa !14
  br label %1448, !llvm.loop !70

1472:                                             ; preds = %1460
  %1473 = landingpad { ptr, i32 }
          cleanup
  %1474 = extractvalue { ptr, i32 } %1473, 0
  store ptr %1474, ptr %11, align 8
  %1475 = extractvalue { ptr, i32 } %1473, 1
  store i32 %1475, ptr %12, align 4
  br label %1495

1476:                                             ; preds = %1463
  %1477 = landingpad { ptr, i32 }
          cleanup
  %1478 = extractvalue { ptr, i32 } %1477, 0
  store ptr %1478, ptr %11, align 8
  %1479 = extractvalue { ptr, i32 } %1477, 1
  store i32 %1479, ptr %12, align 4
  br label %1494

1480:                                             ; preds = %1467
  %1481 = landingpad { ptr, i32 }
          cleanup
  %1482 = extractvalue { ptr, i32 } %1481, 0
  store ptr %1482, ptr %11, align 8
  %1483 = extractvalue { ptr, i32 } %1481, 1
  store i32 %1483, ptr %12, align 4
  br label %1493

1484:                                             ; preds = %1468
  %1485 = landingpad { ptr, i32 }
          cleanup
  %1486 = extractvalue { ptr, i32 } %1485, 0
  store ptr %1486, ptr %11, align 8
  %1487 = extractvalue { ptr, i32 } %1485, 1
  store i32 %1487, ptr %12, align 4
  br label %1492

1488:                                             ; preds = %1469
  %1489 = landingpad { ptr, i32 }
          cleanup
  %1490 = extractvalue { ptr, i32 } %1489, 0
  store ptr %1490, ptr %11, align 8
  %1491 = extractvalue { ptr, i32 } %1489, 1
  store i32 %1491, ptr %12, align 4
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %163) #10
  br label %1492

1492:                                             ; preds = %1488, %1484
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %164) #10
  br label %1493

1493:                                             ; preds = %1492, %1480
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #10
  br label %1494

1494:                                             ; preds = %1493, %1476
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %162) #10
  br label %1495

1495:                                             ; preds = %1494, %1472
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #10
  br label %1496

1496:                                             ; preds = %1495, %1453
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #10
  br label %1554

1497:                                             ; preds = %1452
  br label %1498

1498:                                             ; preds = %1497
  store i8 0, ptr %159, align 1, !tbaa !14
  br label %1440, !llvm.loop !71

1499:                                             ; preds = %1443
  br label %1552

1500:                                             ; preds = %507
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #10
  store i8 1, ptr %167, align 1, !tbaa !14
  br label %1501

1501:                                             ; preds = %1550, %1500
  %1502 = load i8, ptr %167, align 1, !tbaa !14, !range !16, !noundef !17
  %1503 = trunc i8 %1502 to i1
  br i1 %1503, label %1505, label %1504

1504:                                             ; preds = %1501
  store i32 128, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #10
  br label %1551

1505:                                             ; preds = %1501
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #10
  %1506 = load ptr, ptr %51, align 8, !tbaa !5
  %1507 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488) %1506)
          to label %1508 unwind label %1514

1508:                                             ; preds = %1505
  store ptr %1507, ptr %168, align 8, !tbaa !5
  br label %1509

1509:                                             ; preds = %1533, %1508
  %1510 = load ptr, ptr %168, align 8, !tbaa !5
  %1511 = load i8, ptr %167, align 1, !tbaa !14, !range !16, !noundef !17
  %1512 = trunc i8 %1511 to i1
  br i1 %1512, label %1518, label %1513

1513:                                             ; preds = %1509
  store i32 131, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #10
  br label %1549

1514:                                             ; preds = %1518, %1505
  %1515 = landingpad { ptr, i32 }
          cleanup
  %1516 = extractvalue { ptr, i32 } %1515, 0
  store ptr %1516, ptr %11, align 8
  %1517 = extractvalue { ptr, i32 } %1515, 1
  store i32 %1517, ptr %12, align 4
  br label %1548

1518:                                             ; preds = %1509
  %1519 = load ptr, ptr %47, align 8, !tbaa !5
  %1520 = getelementptr inbounds %"struct.AST::Named", ptr %1519, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %169, ptr noundef nonnull align 8 dereferenceable(8) %1520)
          to label %1521 unwind label %1514

1521:                                             ; preds = %1518
  %1522 = load ptr, ptr %47, align 8, !tbaa !5
  %1523 = getelementptr inbounds %"struct.AST::Named", ptr %1522, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %170, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1523)
          to label %1524 unwind label %1534

1524:                                             ; preds = %1521
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %172, ptr align 8 %49, i64 56, i1 false), !tbaa.struct !11
  %1525 = load ptr, ptr %47, align 8, !tbaa !5
  %1526 = getelementptr inbounds %"struct.AST::Named", ptr %1525, i32 0, i32 1
  %1527 = load ptr, ptr %168, align 8, !tbaa !5
  %1528 = load ptr, ptr %48, align 8, !tbaa !5
  %1529 = load ptr, ptr %47, align 8, !tbaa !5
  %1530 = getelementptr inbounds %"struct.AST::Named", ptr %1529, i32 0, i32 3
  invoke void @_Z15LowerHIR_StaticN3HIR8ItemPathERKN3AST13AttributeListERKNS1_6StaticERK4SpanRK8RcString(ptr dead_on_unwind writable sret(%"class.HIR::ValueItem") align 8 %171, ptr noundef byval(%"class.HIR::ItemPath") align 8 %172, ptr noundef nonnull align 8 dereferenceable(24) %1526, ptr noundef nonnull align 8 dereferenceable(216) %1527, ptr noundef nonnull align 8 dereferenceable(8) %1528, ptr noundef nonnull align 8 dereferenceable(8) %1530)
          to label %1531 unwind label %1538

1531:                                             ; preds = %1524
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %169, ptr noundef %170, ptr noundef %171)
          to label %1532 unwind label %1542

1532:                                             ; preds = %1531
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %171) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #10
  br label %1533

1533:                                             ; preds = %1532
  store i8 0, ptr %167, align 1, !tbaa !14
  br label %1509, !llvm.loop !72

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

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

1542:                                             ; preds = %1531
  %1543 = landingpad { ptr, i32 }
          cleanup
  %1544 = extractvalue { ptr, i32 } %1543, 0
  store ptr %1544, ptr %11, align 8
  %1545 = extractvalue { ptr, i32 } %1543, 1
  store i32 %1545, ptr %12, align 4
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %171) #10
  br label %1546

1546:                                             ; preds = %1542, %1538
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %170) #10
  br label %1547

1547:                                             ; preds = %1546, %1534
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #10
  br label %1548

1548:                                             ; preds = %1547, %1514
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #10
  br label %1554

1549:                                             ; preds = %1513
  br label %1550

1550:                                             ; preds = %1549
  store i8 0, ptr %167, align 1, !tbaa !14
  br label %1501, !llvm.loop !73

1551:                                             ; preds = %1504
  br label %1552

1552:                                             ; preds = %1551, %1499, %1438, %1384, %1325, %1270, %1200, %1070, %946, %879, %826, %803, %780, %757, %667, %581, %558, %535, %507
  br label %1553

1553:                                             ; preds = %1552
  store i8 0, ptr %50, align 1, !tbaa !14
  br label %500, !llvm.loop !74

1554:                                             ; preds = %1548, %1496, %1435, %1381, %1322, %1267, %1197, %1067, %943, %876, %818, %795, %772, %754, %664, %573, %550, %527, %508
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #10
  br label %1560

1555:                                             ; preds = %503
  br label %1556

1556:                                             ; preds = %1555
  store i8 0, ptr %50, align 1, !tbaa !14
  br label %493, !llvm.loop !75

1557:                                             ; preds = %496
  call void @llvm.lifetime.end.p0(i64 56, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  br label %1558

1558:                                             ; preds = %1557
  %1559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #10
  br label %451

1560:                                             ; preds = %1554, %486
  call void @llvm.lifetime.end.p0(i64 56, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %2382

1561:                                             ; preds = %453
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #10
  %1562 = load ptr, ptr %6, align 8, !tbaa !5
  %1563 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %1562)
          to label %1564 unwind label %1574

1564:                                             ; preds = %1561
  store ptr %1563, ptr %173, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #10
  %1565 = load ptr, ptr %173, align 8, !tbaa !5
  %1566 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1565) #10
  %1567 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.829", ptr %174, i32 0, i32 0
  store ptr %1566, ptr %1567, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #10
  %1568 = load ptr, ptr %173, align 8, !tbaa !5
  %1569 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1568) #10
  %1570 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.829", ptr %175, i32 0, i32 0
  store ptr %1569, ptr %1570, align 8
  br label %1571

1571:                                             ; preds = %1688, %1564
  %1572 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull align 8 dereferenceable(8) %175) #10
  br i1 %1572, label %1578, label %1573

1573:                                             ; preds = %1571
  store i32 134, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #10
  br label %1692

1574:                                             ; preds = %1561
  %1575 = landingpad { ptr, i32 }
          cleanup
  %1576 = extractvalue { ptr, i32 } %1575, 0
  store ptr %1576, ptr %11, align 8
  %1577 = extractvalue { ptr, i32 } %1575, 1
  store i32 %1577, ptr %12, align 4
  br label %1691

1578:                                             ; preds = %1571
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #10
  %1579 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %174) #10
  store ptr %1579, ptr %176, align 8, !tbaa !5
  %1580 = load ptr, ptr %176, align 8, !tbaa !5
  %1581 = getelementptr inbounds %"struct.AST::Named.830", ptr %1580, i32 0, i32 4
  %1582 = invoke noundef zeroext i1 @_ZNK13MacroRulesPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1581)
          to label %1583 unwind label %1604

1583:                                             ; preds = %1578
  br i1 %1582, label %1589, label %1584

1584:                                             ; preds = %1583
  %1585 = load ptr, ptr %176, align 8, !tbaa !5
  %1586 = getelementptr inbounds %"struct.AST::Named.830", ptr %1585, i32 0, i32 2
  %1587 = invoke noundef zeroext i1 @_ZNK3AST10Visibility9is_globalEv(ptr noundef nonnull align 8 dereferenceable(36) %1586)
          to label %1588 unwind label %1604

1588:                                             ; preds = %1584
  br i1 %1587, label %1589, label %1687

1589:                                             ; preds = %1588, %1583
  br label %1590

1590:                                             ; preds = %1589
  %1591 = load ptr, ptr %176, align 8, !tbaa !5
  %1592 = getelementptr inbounds %"struct.AST::Named.830", ptr %1591, i32 0, i32 4
  %1593 = invoke noundef zeroext i1 @_ZNK13MacroRulesPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1592)
          to label %1594 unwind label %1604

1594:                                             ; preds = %1590
  br i1 %1593, label %1621, label %1595

1595:                                             ; preds = %1594
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #10
  %1596 = load ptr, ptr %176, align 8, !tbaa !5
  %1597 = getelementptr inbounds %"struct.AST::Named.830", ptr %1596, i32 0, i32 0
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull align 8 dereferenceable(8) %1597)
          to label %1598 unwind label %1608

1598:                                             ; preds = %1595
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #10
  %1599 = getelementptr inbounds %class.anon.831, ptr %179, i32 0, i32 0
  %1600 = load ptr, ptr %176, align 8, !tbaa !5
  store ptr %1600, ptr %1599, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(8) %179) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef %178)
          to label %1601 unwind label %1612

1601:                                             ; preds = %1598
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #10
  %1602 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1602, ptr noundef @.str.9)
          to label %1603 unwind label %1617

1603:                                             ; preds = %1601
  invoke void @__cxa_throw(ptr %1602, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %2393 unwind label %1604

1604:                                             ; preds = %1656, %1640, %1624, %1603, %1590, %1584, %1578
  %1605 = landingpad { ptr, i32 }
          cleanup
  %1606 = extractvalue { ptr, i32 } %1605, 0
  store ptr %1606, ptr %11, align 8
  %1607 = extractvalue { ptr, i32 } %1605, 1
  store i32 %1607, ptr %12, align 4
  br label %1690

1608:                                             ; preds = %1595
  %1609 = landingpad { ptr, i32 }
          cleanup
  %1610 = extractvalue { ptr, i32 } %1609, 0
  store ptr %1610, ptr %11, align 8
  %1611 = extractvalue { ptr, i32 } %1609, 1
  store i32 %1611, ptr %12, align 4
  br label %1616

1612:                                             ; preds = %1598
  %1613 = landingpad { ptr, i32 }
          cleanup
  %1614 = extractvalue { ptr, i32 } %1613, 0
  store ptr %1614, ptr %11, align 8
  %1615 = extractvalue { ptr, i32 } %1613, 1
  store i32 %1615, ptr %12, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #10
  br label %1616

1616:                                             ; preds = %1612, %1608
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #10
  br label %1690

1617:                                             ; preds = %1601
  %1618 = landingpad { ptr, i32 }
          cleanup
  %1619 = extractvalue { ptr, i32 } %1618, 0
  store ptr %1619, ptr %11, align 8
  %1620 = extractvalue { ptr, i32 } %1618, 1
  store i32 %1620, ptr %12, align 4
  call void @__cxa_free_exception(ptr %1602) #10
  br label %1690

1621:                                             ; preds = %1594
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623
  %1625 = load ptr, ptr %176, align 8, !tbaa !5
  %1626 = getelementptr inbounds %"struct.AST::Named.830", ptr %1625, i32 0, i32 4
  %1627 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %1626)
          to label %1628 unwind label %1604

1628:                                             ; preds = %1624
  %1629 = getelementptr inbounds %class.MacroRules, ptr %1627, i32 0, i32 6
  %1630 = call noundef i64 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1629) #10
  %1631 = icmp ugt i64 %1630, 0
  br i1 %1631, label %1654, label %1632

1632:                                             ; preds = %1628
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #10
  %1633 = load ptr, ptr %176, align 8, !tbaa !5
  %1634 = getelementptr inbounds %"struct.AST::Named.830", ptr %1633, i32 0, i32 0
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull align 8 dereferenceable(8) %1634)
          to label %1635 unwind label %1641

1635:                                             ; preds = %1632
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #10
  %1636 = getelementptr inbounds %class.anon.837, ptr %182, i32 0, i32 0
  %1637 = load ptr, ptr %176, align 8, !tbaa !5
  store ptr %1637, ptr %1636, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(8) %182) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef %181)
          to label %1638 unwind label %1645

1638:                                             ; preds = %1635
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #10
  %1639 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1639, ptr noundef @.str.9)
          to label %1640 unwind label %1650

1640:                                             ; preds = %1638
  invoke void @__cxa_throw(ptr %1639, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %2393 unwind label %1604

1641:                                             ; preds = %1632
  %1642 = landingpad { ptr, i32 }
          cleanup
  %1643 = extractvalue { ptr, i32 } %1642, 0
  store ptr %1643, ptr %11, align 8
  %1644 = extractvalue { ptr, i32 } %1642, 1
  store i32 %1644, ptr %12, align 4
  br label %1649

1645:                                             ; preds = %1635
  %1646 = landingpad { ptr, i32 }
          cleanup
  %1647 = extractvalue { ptr, i32 } %1646, 0
  store ptr %1647, ptr %11, align 8
  %1648 = extractvalue { ptr, i32 } %1646, 1
  store i32 %1648, ptr %12, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #10
  br label %1649

1649:                                             ; preds = %1645, %1641
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #10
  br label %1690

1650:                                             ; preds = %1638
  %1651 = landingpad { ptr, i32 }
          cleanup
  %1652 = extractvalue { ptr, i32 } %1651, 0
  store ptr %1652, ptr %11, align 8
  %1653 = extractvalue { ptr, i32 } %1651, 1
  store i32 %1653, ptr %12, align 4
  call void @__cxa_free_exception(ptr %1639) #10
  br label %1690

1654:                                             ; preds = %1628
  br label %1655

1655:                                             ; preds = %1654
  br label %1656

1656:                                             ; preds = %1655
  %1657 = load ptr, ptr %176, align 8, !tbaa !5
  %1658 = getelementptr inbounds %"struct.AST::Named.830", ptr %1657, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef nonnull align 8 dereferenceable(8) %1658)
          to label %1659 unwind label %1604

1659:                                             ; preds = %1656
  %1660 = load ptr, ptr %176, align 8, !tbaa !5
  %1661 = getelementptr inbounds %"struct.AST::Named.830", ptr %1660, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %184, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1661)
          to label %1662 unwind label %1668

1662:                                             ; preds = %1659
  %1663 = load ptr, ptr %176, align 8, !tbaa !5
  %1664 = getelementptr inbounds %"struct.AST::Named.830", ptr %1663, i32 0, i32 4
  invoke void @_ZN13MacroRulesPtrC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %186, ptr noundef nonnull align 8 dereferenceable(8) %1664)
          to label %1665 unwind label %1672

1665:                                             ; preds = %1662
  invoke void @_ZN3HIR9MacroItemC2E13MacroRulesPtr(ptr noundef nonnull align 8 dereferenceable(56) %185, ptr noundef %186)
          to label %1666 unwind label %1676

1666:                                             ; preds = %1665
  invoke void @_Z17_add_mod_mac_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9MacroItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %183, ptr noundef %184, ptr noundef %185)
          to label %1667 unwind label %1680

1667:                                             ; preds = %1666
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %185) #10
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %184) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #10
  br label %1687

1668:                                             ; preds = %1659
  %1669 = landingpad { ptr, i32 }
          cleanup
  %1670 = extractvalue { ptr, i32 } %1669, 0
  store ptr %1670, ptr %11, align 8
  %1671 = extractvalue { ptr, i32 } %1669, 1
  store i32 %1671, ptr %12, align 4
  br label %1686

1672:                                             ; preds = %1662
  %1673 = landingpad { ptr, i32 }
          cleanup
  %1674 = extractvalue { ptr, i32 } %1673, 0
  store ptr %1674, ptr %11, align 8
  %1675 = extractvalue { ptr, i32 } %1673, 1
  store i32 %1675, ptr %12, align 4
  br label %1685

1676:                                             ; preds = %1665
  %1677 = landingpad { ptr, i32 }
          cleanup
  %1678 = extractvalue { ptr, i32 } %1677, 0
  store ptr %1678, ptr %11, align 8
  %1679 = extractvalue { ptr, i32 } %1677, 1
  store i32 %1679, ptr %12, align 4
  br label %1684

1680:                                             ; preds = %1666
  %1681 = landingpad { ptr, i32 }
          cleanup
  %1682 = extractvalue { ptr, i32 } %1681, 0
  store ptr %1682, ptr %11, align 8
  %1683 = extractvalue { ptr, i32 } %1681, 1
  store i32 %1683, ptr %12, align 4
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %185) #10
  br label %1684

1684:                                             ; preds = %1680, %1676
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #10
  br label %1685

1685:                                             ; preds = %1684, %1672
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %184) #10
  br label %1686

1686:                                             ; preds = %1685, %1668
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #10
  br label %1690

1687:                                             ; preds = %1667, %1588
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #10
  br label %1688

1688:                                             ; preds = %1687
  %1689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %174) #10
  br label %1571

1690:                                             ; preds = %1686, %1650, %1649, %1617, %1616, %1604
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  br label %1691

1691:                                             ; preds = %1690, %1574
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #10
  br label %2382

1692:                                             ; preds = %1573
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #10
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %187)
          to label %1693 unwind label %1707

1693:                                             ; preds = %1692
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #10
  %1694 = load ptr, ptr %6, align 8, !tbaa !5
  %1695 = getelementptr inbounds %"class.AST::Module", ptr %1694, i32 0, i32 7
  store ptr %1695, ptr %188, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #10
  %1696 = load ptr, ptr %188, align 8, !tbaa !5
  %1697 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %1696) #10
  %1698 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %189, i32 0, i32 0
  %1699 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %1698, i32 0, i32 0
  store ptr %1697, ptr %1699, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #10
  %1700 = load ptr, ptr %188, align 8, !tbaa !5
  %1701 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1700) #10
  %1702 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %190, i32 0, i32 0
  %1703 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %1702, i32 0, i32 0
  store ptr %1701, ptr %1703, align 8
  br label %1704

1704:                                             ; preds = %1926, %1693
  %1705 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull align 8 dereferenceable(8) %190) #10
  br i1 %1705, label %1711, label %1706

1706:                                             ; preds = %1704
  store i32 140, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #10
  br label %1929

1707:                                             ; preds = %1692
  %1708 = landingpad { ptr, i32 }
          cleanup
  %1709 = extractvalue { ptr, i32 } %1708, 0
  store ptr %1709, ptr %11, align 8
  %1710 = extractvalue { ptr, i32 } %1708, 1
  store i32 %1710, ptr %12, align 4
  br label %2381

1711:                                             ; preds = %1704
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #10
  %1712 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %189) #10
  store ptr %1712, ptr %191, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %192) #10
  store ptr %187, ptr %192, align 8, !tbaa !5
  %1713 = load ptr, ptr %191, align 8, !tbaa !5
  %1714 = getelementptr inbounds %"struct.std::pair.839", ptr %1713, i32 0, i32 0
  %1715 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %1714)
          to label %1716 unwind label %1722

1716:                                             ; preds = %1711
  %1717 = getelementptr inbounds i8, ptr %1715, i64 0
  %1718 = load i8, ptr %1717, align 1, !tbaa !25
  %1719 = sext i8 %1718 to i32
  %1720 = icmp eq i32 %1719, 32
  br i1 %1720, label %1721, label %1726

1721:                                             ; preds = %1716
  store i32 141, ptr %45, align 4
  br label %1920

1722:                                             ; preds = %1711
  %1723 = landingpad { ptr, i32 }
          cleanup
  %1724 = extractvalue { ptr, i32 } %1723, 0
  store ptr %1724, ptr %11, align 8
  %1725 = extractvalue { ptr, i32 } %1723, 1
  store i32 %1725, ptr %12, align 4
  br label %1928

1726:                                             ; preds = %1716
  %1727 = load ptr, ptr %191, align 8, !tbaa !5
  %1728 = getelementptr inbounds %"struct.std::pair.839", ptr %1727, i32 0, i32 1
  %1729 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %1728, i32 0, i32 0
  %1730 = load i8, ptr %1729, align 8, !tbaa !76, !range !16, !noundef !17
  %1731 = trunc i8 %1730 to i1
  br i1 %1731, label %1732, label %1919

1732:                                             ; preds = %1726
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #10
  %1733 = load ptr, ptr %192, align 8, !tbaa !5
  %1734 = load ptr, ptr %191, align 8, !tbaa !5
  %1735 = getelementptr inbounds %"struct.std::pair.839", ptr %1734, i32 0, i32 1
  %1736 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %1735, i32 0, i32 3
  invoke void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %193, ptr noundef nonnull align 8 dereferenceable(8) %1733, ptr noundef nonnull align 8 dereferenceable(240) %1736, i32 noundef 0, i1 noundef zeroext false)
          to label %1737 unwind label %1761

1737:                                             ; preds = %1732
  call void @llvm.lifetime.start.p0(i64 16, ptr %194) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %195) #10
  %1738 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1739 unwind label %1765

1739:                                             ; preds = %1737
  %1740 = getelementptr inbounds { ptr, i64 }, ptr %194, i32 0, i32 0
  %1741 = extractvalue { ptr, i64 } %1738, 0
  store ptr %1741, ptr %1740, align 8
  %1742 = getelementptr inbounds { ptr, i64 }, ptr %194, i32 0, i32 1
  %1743 = extractvalue { ptr, i64 } %1738, 1
  store i64 %1743, ptr %1742, align 8
  %1744 = invoke noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %194)
          to label %1745 unwind label %1765

1745:                                             ; preds = %1739
  br i1 %1744, label %1757, label %1746

1746:                                             ; preds = %1745
  %1747 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1748 unwind label %1769

1748:                                             ; preds = %1746
  %1749 = getelementptr inbounds { ptr, i64 }, ptr %195, i32 0, i32 0
  %1750 = extractvalue { ptr, i64 } %1747, 0
  store ptr %1750, ptr %1749, align 8
  %1751 = getelementptr inbounds { ptr, i64 }, ptr %195, i32 0, i32 1
  %1752 = extractvalue { ptr, i64 } %1747, 1
  store i64 %1752, ptr %1751, align 8
  %1753 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %195)
          to label %1754 unwind label %1769

1754:                                             ; preds = %1748
  %1755 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %1753, ptr noundef @.str.6)
          to label %1756 unwind label %1769

1756:                                             ; preds = %1754
  br label %1757

1757:                                             ; preds = %1756, %1745
  %1758 = phi i1 [ true, %1745 ], [ %1755, %1756 ]
  br i1 %1758, label %1759, label %1760

1759:                                             ; preds = %1757
  br label %1774

1760:                                             ; preds = %1757
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.5, i32 noundef 2009, ptr noundef @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

1761:                                             ; preds = %1732
  %1762 = landingpad { ptr, i32 }
          cleanup
  %1763 = extractvalue { ptr, i32 } %1762, 0
  store ptr %1763, ptr %11, align 8
  %1764 = extractvalue { ptr, i32 } %1762, 1
  store i32 %1764, ptr %12, align 4
  br label %1918

1765:                                             ; preds = %1739, %1737
  %1766 = landingpad { ptr, i32 }
          cleanup
  %1767 = extractvalue { ptr, i32 } %1766, 0
  store ptr %1767, ptr %11, align 8
  %1768 = extractvalue { ptr, i32 } %1766, 1
  store i32 %1768, ptr %12, align 4
  br label %1810

1769:                                             ; preds = %1754, %1748, %1746
  %1770 = landingpad { ptr, i32 }
          cleanup
  %1771 = extractvalue { ptr, i32 } %1770, 0
  store ptr %1771, ptr %11, align 8
  %1772 = extractvalue { ptr, i32 } %1770, 1
  store i32 %1772, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %195) #10
  br label %1810

1773:                                             ; No predecessors!
  br label %1774

1774:                                             ; preds = %1773, %1759
  call void @llvm.lifetime.end.p0(i64 16, ptr %195) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #10
  call void @llvm.lifetime.start.p0(i64 408, ptr %196) #10
  invoke void @_ZN3HIR8TypeItemC2Ev(ptr noundef nonnull align 8 dereferenceable(408) %196)
          to label %1775 unwind label %1811

1775:                                             ; preds = %1774
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #10
  %1776 = load ptr, ptr %191, align 8, !tbaa !5
  %1777 = getelementptr inbounds %"struct.std::pair.839", ptr %1776, i32 0, i32 1
  %1778 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %1777, i32 0, i32 3
  %1779 = getelementptr inbounds %"class.AST::Path", ptr %1778, i32 0, i32 2
  %1780 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1779, i32 0, i32 1
  %1781 = getelementptr inbounds %"struct.AST::PathBinding.104", ptr %1780, i32 0, i32 1
  %1782 = invoke noundef ptr @_ZNK3AST16PathBinding_Type11opt_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %1781)
          to label %1783 unwind label %1815

1783:                                             ; preds = %1775
  store ptr %1782, ptr %197, align 8, !tbaa !5
  %1784 = load ptr, ptr %197, align 8, !tbaa !5
  %1785 = icmp ne ptr %1784, null
  br i1 %1785, label %1786, label %1846

1786:                                             ; preds = %1783
  br label %1787

1787:                                             ; preds = %1786
  %1788 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1789 unwind label %1815

1789:                                             ; preds = %1787
  br i1 %1788, label %1790, label %1819

1790:                                             ; preds = %1789
  %1791 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1792 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1791, ptr noundef @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %1793 unwind label %1815

1793:                                             ; preds = %1790
  %1794 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1792, ptr noundef @.str.50)
          to label %1795 unwind label %1815

1795:                                             ; preds = %1793
  %1796 = load ptr, ptr %191, align 8, !tbaa !5
  %1797 = getelementptr inbounds %"struct.std::pair.839", ptr %1796, i32 0, i32 0
  %1798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1794, ptr noundef nonnull align 8 dereferenceable(8) %1797)
          to label %1799 unwind label %1815

1799:                                             ; preds = %1795
  %1800 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1798, ptr noundef @.str.51)
          to label %1801 unwind label %1815

1801:                                             ; preds = %1799
  %1802 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %1800, ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1803 unwind label %1815

1803:                                             ; preds = %1801
  %1804 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1802, ptr noundef @.str.52)
          to label %1805 unwind label %1815

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

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

1809:                                             ; preds = %1807
  br label %1819

1810:                                             ; preds = %1769, %1765
  call void @llvm.lifetime.end.p0(i64 16, ptr %194) #10
  br label %1917

1811:                                             ; preds = %1774
  %1812 = landingpad { ptr, i32 }
          cleanup
  %1813 = extractvalue { ptr, i32 } %1812, 0
  store ptr %1813, ptr %11, align 8
  %1814 = extractvalue { ptr, i32 } %1812, 1
  store i32 %1814, ptr %12, align 4
  br label %1916

1815:                                             ; preds = %1865, %1863, %1861, %1859, %1855, %1853, %1850, %1847, %1807, %1805, %1803, %1801, %1799, %1795, %1793, %1790, %1787, %1775
  %1816 = landingpad { ptr, i32 }
          cleanup
  %1817 = extractvalue { ptr, i32 } %1816, 0
  store ptr %1817, ptr %11, align 8
  %1818 = extractvalue { ptr, i32 } %1816, 1
  store i32 %1818, ptr %12, align 4
  br label %1901

1819:                                             ; preds = %1809, %1789
  br label %1820

1820:                                             ; preds = %1819
  br label %1821

1821:                                             ; preds = %1820
  call void @llvm.lifetime.start.p0(i64 408, ptr %198) #10
  %1822 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %199, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %1822, ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1823 unwind label %1832

1823:                                             ; preds = %1821
  %1824 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %199, i32 0, i32 1
  store i8 1, ptr %1824, align 8, !tbaa !38
  %1825 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %199, i32 0, i32 2
  %1826 = load ptr, ptr %197, align 8, !tbaa !5
  %1827 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %1826, i32 0, i32 1
  %1828 = load i32, ptr %1827, align 8, !tbaa !105
  store i32 %1828, ptr %1825, align 4, !tbaa !42
  invoke void @_ZN3HIR8TypeItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::TypeItem") align 8 %198, ptr noundef %199)
          to label %1829 unwind label %1836

1829:                                             ; preds = %1823
  %1830 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN3HIR8TypeItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(408) %196, ptr noundef nonnull align 8 dereferenceable(408) %198)
          to label %1831 unwind label %1840

1831:                                             ; preds = %1829
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %198) #10
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %199) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr %198) #10
  br label %1892

1832:                                             ; preds = %1821
  %1833 = landingpad { ptr, i32 }
          cleanup
  %1834 = extractvalue { ptr, i32 } %1833, 0
  store ptr %1834, ptr %11, align 8
  %1835 = extractvalue { ptr, i32 } %1833, 1
  store i32 %1835, ptr %12, align 4
  br label %1845

1836:                                             ; preds = %1823
  %1837 = landingpad { ptr, i32 }
          cleanup
  %1838 = extractvalue { ptr, i32 } %1837, 0
  store ptr %1838, ptr %11, align 8
  %1839 = extractvalue { ptr, i32 } %1837, 1
  store i32 %1839, ptr %12, align 4
  br label %1844

1840:                                             ; preds = %1829
  %1841 = landingpad { ptr, i32 }
          cleanup
  %1842 = extractvalue { ptr, i32 } %1841, 0
  store ptr %1842, ptr %11, align 8
  %1843 = extractvalue { ptr, i32 } %1841, 1
  store i32 %1843, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %198) #10
  br label %1844

1844:                                             ; preds = %1840, %1836
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %199) #10
  br label %1845

1845:                                             ; preds = %1844, %1832
  call void @llvm.lifetime.end.p0(i64 408, ptr %198) #10
  br label %1901

1846:                                             ; preds = %1783
  br label %1847

1847:                                             ; preds = %1846
  %1848 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1849 unwind label %1815

1849:                                             ; preds = %1847
  br i1 %1848, label %1850, label %1868

1850:                                             ; preds = %1849
  %1851 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1852 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1851, ptr noundef @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %1853 unwind label %1815

1853:                                             ; preds = %1850
  %1854 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1852, ptr noundef @.str.50)
          to label %1855 unwind label %1815

1855:                                             ; preds = %1853
  %1856 = load ptr, ptr %191, align 8, !tbaa !5
  %1857 = getelementptr inbounds %"struct.std::pair.839", ptr %1856, i32 0, i32 0
  %1858 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1854, ptr noundef nonnull align 8 dereferenceable(8) %1857)
          to label %1859 unwind label %1815

1859:                                             ; preds = %1855
  %1860 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1858, ptr noundef @.str.51)
          to label %1861 unwind label %1815

1861:                                             ; preds = %1859
  %1862 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %1860, ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1863 unwind label %1815

1863:                                             ; preds = %1861
  %1864 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1862, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1865 unwind label %1815

1865:                                             ; preds = %1863
  %1866 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1864, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1867 unwind label %1815

1867:                                             ; preds = %1865
  br label %1868

1868:                                             ; preds = %1867, %1849
  br label %1869

1869:                                             ; preds = %1868
  br label %1870

1870:                                             ; preds = %1869
  call void @llvm.lifetime.start.p0(i64 408, ptr %200) #10
  %1871 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %201, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %1871, ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %1872 unwind label %1878

1872:                                             ; preds = %1870
  %1873 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %201, i32 0, i32 1
  store i8 0, ptr %1873, align 8, !tbaa !38
  %1874 = getelementptr inbounds %"struct.HIR::TypeItem::Data_Import", ptr %201, i32 0, i32 2
  store i32 0, ptr %1874, align 4, !tbaa !42
  invoke void @_ZN3HIR8TypeItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::TypeItem") align 8 %200, ptr noundef %201)
          to label %1875 unwind label %1882

1875:                                             ; preds = %1872
  %1876 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN3HIR8TypeItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(408) %196, ptr noundef nonnull align 8 dereferenceable(408) %200)
          to label %1877 unwind label %1886

1877:                                             ; preds = %1875
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %200) #10
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %201) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr %200) #10
  br label %1892

1878:                                             ; preds = %1870
  %1879 = landingpad { ptr, i32 }
          cleanup
  %1880 = extractvalue { ptr, i32 } %1879, 0
  store ptr %1880, ptr %11, align 8
  %1881 = extractvalue { ptr, i32 } %1879, 1
  store i32 %1881, ptr %12, align 4
  br label %1891

1882:                                             ; preds = %1872
  %1883 = landingpad { ptr, i32 }
          cleanup
  %1884 = extractvalue { ptr, i32 } %1883, 0
  store ptr %1884, ptr %11, align 8
  %1885 = extractvalue { ptr, i32 } %1883, 1
  store i32 %1885, ptr %12, align 4
  br label %1890

1886:                                             ; preds = %1875
  %1887 = landingpad { ptr, i32 }
          cleanup
  %1888 = extractvalue { ptr, i32 } %1887, 0
  store ptr %1888, ptr %11, align 8
  %1889 = extractvalue { ptr, i32 } %1887, 1
  store i32 %1889, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %200) #10
  br label %1890

1890:                                             ; preds = %1886, %1882
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %201) #10
  br label %1891

1891:                                             ; preds = %1890, %1878
  call void @llvm.lifetime.end.p0(i64 408, ptr %200) #10
  br label %1901

1892:                                             ; preds = %1877, %1831
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #10
  %1893 = load ptr, ptr %191, align 8, !tbaa !5
  %1894 = getelementptr inbounds %"struct.std::pair.839", ptr %1893, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef nonnull align 8 dereferenceable(8) %1894)
          to label %1895 unwind label %1902

1895:                                             ; preds = %1892
  %1896 = load ptr, ptr %191, align 8, !tbaa !5
  %1897 = getelementptr inbounds %"struct.std::pair.839", ptr %1896, i32 0, i32 1
  %1898 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %1897, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %203, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %1898)
          to label %1899 unwind label %1906

1899:                                             ; preds = %1895
  call void @_ZN3HIR8TypeItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(408) %204, ptr noundef nonnull align 8 dereferenceable(408) %196) #10
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %202, ptr noundef %203, ptr noundef %204)
          to label %1900 unwind label %1910

1900:                                             ; preds = %1899
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %204) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #10
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %196) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr %196) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #10
  br label %1919

1901:                                             ; preds = %1891, %1845, %1815
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #10
  br label %1915

1902:                                             ; preds = %1892
  %1903 = landingpad { ptr, i32 }
          cleanup
  %1904 = extractvalue { ptr, i32 } %1903, 0
  store ptr %1904, ptr %11, align 8
  %1905 = extractvalue { ptr, i32 } %1903, 1
  store i32 %1905, ptr %12, align 4
  br label %1915

1906:                                             ; preds = %1895
  %1907 = landingpad { ptr, i32 }
          cleanup
  %1908 = extractvalue { ptr, i32 } %1907, 0
  store ptr %1908, ptr %11, align 8
  %1909 = extractvalue { ptr, i32 } %1907, 1
  store i32 %1909, ptr %12, align 4
  br label %1914

1910:                                             ; preds = %1899
  %1911 = landingpad { ptr, i32 }
          cleanup
  %1912 = extractvalue { ptr, i32 } %1911, 0
  store ptr %1912, ptr %11, align 8
  %1913 = extractvalue { ptr, i32 } %1911, 1
  store i32 %1913, ptr %12, align 4
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %204) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %203) #10
  br label %1914

1914:                                             ; preds = %1910, %1906
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #10
  br label %1915

1915:                                             ; preds = %1914, %1902, %1901
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %196) #10
  br label %1916

1916:                                             ; preds = %1915, %1811
  call void @llvm.lifetime.end.p0(i64 408, ptr %196) #10
  br label %1917

1917:                                             ; preds = %1916, %1810
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #10
  br label %1918

1918:                                             ; preds = %1917, %1761
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #10
  br label %1928

1919:                                             ; preds = %1900, %1726
  store i32 0, ptr %45, align 4
  br label %1920

1920:                                             ; preds = %1919, %1721
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #10
  %1921 = load i32, ptr %45, align 4
  switch i32 %1921, label %1923 [
    i32 0, label %1922
  ]

1922:                                             ; preds = %1920
  store i32 0, ptr %45, align 4
  br label %1923

1923:                                             ; preds = %1922, %1920
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #10
  %1924 = load i32, ptr %45, align 4
  switch i32 %1924, label %2393 [
    i32 0, label %1925
    i32 141, label %1926
  ]

1925:                                             ; preds = %1923
  br label %1926

1926:                                             ; preds = %1925, %1923
  %1927 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %189) #10
  br label %1704

1928:                                             ; preds = %1918, %1722
  call void @llvm.lifetime.end.p0(i64 8, ptr %192) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #10
  br label %2380

1929:                                             ; preds = %1706
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #10
  %1930 = load ptr, ptr %6, align 8, !tbaa !5
  %1931 = getelementptr inbounds %"class.AST::Module", ptr %1930, i32 0, i32 9
  store ptr %1931, ptr %205, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #10
  %1932 = load ptr, ptr %205, align 8, !tbaa !5
  %1933 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %1932) #10
  %1934 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %206, i32 0, i32 0
  %1935 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %1934, i32 0, i32 0
  store ptr %1933, ptr %1935, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #10
  %1936 = load ptr, ptr %205, align 8, !tbaa !5
  %1937 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1936) #10
  %1938 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %207, i32 0, i32 0
  %1939 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %1938, i32 0, i32 0
  store ptr %1937, ptr %1939, align 8
  br label %1940

1940:                                             ; preds = %2196, %1929
  %1941 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %206, ptr noundef nonnull align 8 dereferenceable(8) %207) #10
  br i1 %1941, label %1943, label %1942

1942:                                             ; preds = %1940
  store i32 146, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #10
  br label %2199

1943:                                             ; preds = %1940
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #10
  %1944 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %206) #10
  store ptr %1944, ptr %208, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #10
  store ptr %187, ptr %209, align 8, !tbaa !5
  %1945 = load ptr, ptr %208, align 8, !tbaa !5
  %1946 = getelementptr inbounds %"struct.std::pair.839", ptr %1945, i32 0, i32 0
  %1947 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %1946)
          to label %1948 unwind label %1954

1948:                                             ; preds = %1943
  %1949 = getelementptr inbounds i8, ptr %1947, i64 0
  %1950 = load i8, ptr %1949, align 1, !tbaa !25
  %1951 = sext i8 %1950 to i32
  %1952 = icmp eq i32 %1951, 32
  br i1 %1952, label %1953, label %1958

1953:                                             ; preds = %1948
  store i32 147, ptr %45, align 4
  br label %2190

1954:                                             ; preds = %1943
  %1955 = landingpad { ptr, i32 }
          cleanup
  %1956 = extractvalue { ptr, i32 } %1955, 0
  store ptr %1956, ptr %11, align 8
  %1957 = extractvalue { ptr, i32 } %1955, 1
  store i32 %1957, ptr %12, align 4
  br label %2198

1958:                                             ; preds = %1948
  %1959 = load ptr, ptr %208, align 8, !tbaa !5
  %1960 = getelementptr inbounds %"struct.std::pair.839", ptr %1959, i32 0, i32 1
  %1961 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %1960, i32 0, i32 0
  %1962 = load i8, ptr %1961, align 8, !tbaa !76, !range !16, !noundef !17
  %1963 = trunc i8 %1962 to i1
  br i1 %1963, label %1964, label %2189

1964:                                             ; preds = %1958
  call void @llvm.lifetime.start.p0(i64 8, ptr %210) #10
  %1965 = load ptr, ptr %209, align 8, !tbaa !5
  %1966 = load ptr, ptr %208, align 8, !tbaa !5
  %1967 = getelementptr inbounds %"struct.std::pair.839", ptr %1966, i32 0, i32 1
  %1968 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %1967, i32 0, i32 3
  invoke void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %210, ptr noundef nonnull align 8 dereferenceable(8) %1965, ptr noundef nonnull align 8 dereferenceable(240) %1968, i32 noundef 1, i1 noundef zeroext false)
          to label %1969 unwind label %1981

1969:                                             ; preds = %1964
  call void @llvm.lifetime.start.p0(i64 16, ptr %211) #10
  %1970 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %1971 unwind label %1985

1971:                                             ; preds = %1969
  %1972 = getelementptr inbounds { ptr, i64 }, ptr %211, i32 0, i32 0
  %1973 = extractvalue { ptr, i64 } %1970, 0
  store ptr %1973, ptr %1972, align 8
  %1974 = getelementptr inbounds { ptr, i64 }, ptr %211, i32 0, i32 1
  %1975 = extractvalue { ptr, i64 } %1970, 1
  store i64 %1975, ptr %1974, align 8
  %1976 = invoke noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %211)
          to label %1977 unwind label %1985

1977:                                             ; preds = %1971
  %1978 = xor i1 %1976, true
  br i1 %1978, label %1979, label %1980

1979:                                             ; preds = %1977
  br label %1990

1980:                                             ; preds = %1977
  call void @__assert_fail(ptr noundef @.str.53, ptr noundef @.str.5, i32 noundef 2030, ptr noundef @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

1981:                                             ; preds = %1964
  %1982 = landingpad { ptr, i32 }
          cleanup
  %1983 = extractvalue { ptr, i32 } %1982, 0
  store ptr %1983, ptr %11, align 8
  %1984 = extractvalue { ptr, i32 } %1982, 1
  store i32 %1984, ptr %12, align 4
  br label %2188

1985:                                             ; preds = %1971, %1969
  %1986 = landingpad { ptr, i32 }
          cleanup
  %1987 = extractvalue { ptr, i32 } %1986, 0
  store ptr %1987, ptr %11, align 8
  %1988 = extractvalue { ptr, i32 } %1986, 1
  store i32 %1988, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #10
  br label %2187

1989:                                             ; No predecessors!
  br label %1990

1990:                                             ; preds = %1989, %1979
  call void @llvm.lifetime.end.p0(i64 16, ptr %211) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %212) #10
  %1991 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %1992 unwind label %2003

1992:                                             ; preds = %1990
  %1993 = getelementptr inbounds { ptr, i64 }, ptr %212, i32 0, i32 0
  %1994 = extractvalue { ptr, i64 } %1991, 0
  store ptr %1994, ptr %1993, align 8
  %1995 = getelementptr inbounds { ptr, i64 }, ptr %212, i32 0, i32 1
  %1996 = extractvalue { ptr, i64 } %1991, 1
  store i64 %1996, ptr %1995, align 8
  %1997 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %212)
          to label %1998 unwind label %2003

1998:                                             ; preds = %1992
  %1999 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %1997, ptr noundef @.str.6)
          to label %2000 unwind label %2003

2000:                                             ; preds = %1998
  br i1 %1999, label %2001, label %2002

2001:                                             ; preds = %2000
  br label %2008

2002:                                             ; preds = %2000
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str.5, i32 noundef 2031, ptr noundef @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

2003:                                             ; preds = %1998, %1992, %1990
  %2004 = landingpad { ptr, i32 }
          cleanup
  %2005 = extractvalue { ptr, i32 } %2004, 0
  store ptr %2005, ptr %11, align 8
  %2006 = extractvalue { ptr, i32 } %2004, 1
  store i32 %2006, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %212) #10
  br label %2187

2007:                                             ; No predecessors!
  br label %2008

2008:                                             ; preds = %2007, %2001
  call void @llvm.lifetime.end.p0(i64 16, ptr %212) #10
  call void @llvm.lifetime.start.p0(i64 368, ptr %213) #10
  invoke void @_ZN3HIR9ValueItemC2Ev(ptr noundef nonnull align 8 dereferenceable(368) %213)
          to label %2009 unwind label %2014

2009:                                             ; preds = %2008
  call void @llvm.lifetime.start.p0(i64 1, ptr %214) #10
  store i8 1, ptr %214, align 1, !tbaa !14
  br label %2010

2010:                                             ; preds = %2162, %2009
  %2011 = load i8, ptr %214, align 1, !tbaa !14, !range !16, !noundef !17
  %2012 = trunc i8 %2011 to i1
  br i1 %2012, label %2018, label %2013

2013:                                             ; preds = %2010
  store i32 148, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #10
  br label %2163

2014:                                             ; preds = %2008
  %2015 = landingpad { ptr, i32 }
          cleanup
  %2016 = extractvalue { ptr, i32 } %2015, 0
  store ptr %2016, ptr %11, align 8
  %2017 = extractvalue { ptr, i32 } %2015, 1
  store i32 %2017, ptr %12, align 4
  br label %2186

2018:                                             ; preds = %2010
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #10
  %2019 = load ptr, ptr %208, align 8, !tbaa !5
  %2020 = getelementptr inbounds %"struct.std::pair.839", ptr %2019, i32 0, i32 1
  %2021 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %2020, i32 0, i32 3
  %2022 = getelementptr inbounds %"class.AST::Path", ptr %2021, i32 0, i32 2
  %2023 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2022, i32 0, i32 0
  %2024 = getelementptr inbounds %"struct.AST::PathBinding", ptr %2023, i32 0, i32 1
  store ptr %2024, ptr %215, align 8, !tbaa !5
  br label %2025

2025:                                             ; preds = %2159, %2018
  %2026 = load i8, ptr %214, align 1, !tbaa !14, !range !16, !noundef !17
  %2027 = trunc i8 %2026 to i1
  br i1 %2027, label %2029, label %2028

2028:                                             ; preds = %2025
  store i32 151, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #10
  br label %2161

2029:                                             ; preds = %2025
  %2030 = load ptr, ptr %215, align 8, !tbaa !5
  %2031 = invoke noundef i32 @_ZNK3AST17PathBinding_Value3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %2030)
          to label %2032 unwind label %2033

2032:                                             ; preds = %2029
  switch i32 %2031, label %2038 [
    i32 0, label %2037
    i32 5, label %2084
  ]

2033:                                             ; preds = %2057, %2055, %2053, %2051, %2047, %2045, %2042, %2039, %2029
  %2034 = landingpad { ptr, i32 }
          cleanup
  %2035 = extractvalue { ptr, i32 } %2034, 0
  store ptr %2035, ptr %11, align 8
  %2036 = extractvalue { ptr, i32 } %2034, 1
  store i32 %2036, ptr %12, align 4
  br label %2160

2037:                                             ; preds = %2032
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str.5, i32 noundef 2034, ptr noundef @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

2038:                                             ; preds = %2032
  br label %2039

2039:                                             ; preds = %2038
  %2040 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2041 unwind label %2033

2041:                                             ; preds = %2039
  br i1 %2040, label %2042, label %2060

2042:                                             ; preds = %2041
  %2043 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2044 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2043, ptr noundef @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %2045 unwind label %2033

2045:                                             ; preds = %2042
  %2046 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2044, ptr noundef @.str.55)
          to label %2047 unwind label %2033

2047:                                             ; preds = %2045
  %2048 = load ptr, ptr %208, align 8, !tbaa !5
  %2049 = getelementptr inbounds %"struct.std::pair.839", ptr %2048, i32 0, i32 0
  %2050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2046, ptr noundef nonnull align 8 dereferenceable(8) %2049)
          to label %2051 unwind label %2033

2051:                                             ; preds = %2047
  %2052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2050, ptr noundef @.str.51)
          to label %2053 unwind label %2033

2053:                                             ; preds = %2051
  %2054 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %2052, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %2055 unwind label %2033

2055:                                             ; preds = %2053
  %2056 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2054, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2057 unwind label %2033

2057:                                             ; preds = %2055
  %2058 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2056, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2059 unwind label %2033

2059:                                             ; preds = %2057
  br label %2060

2060:                                             ; preds = %2059, %2041
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  call void @llvm.lifetime.start.p0(i64 368, ptr %216) #10
  %2063 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %217, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %2063, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %2064 unwind label %2070

2064:                                             ; preds = %2062
  %2065 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %217, i32 0, i32 1
  store i8 0, ptr %2065, align 8, !tbaa !107
  %2066 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %217, i32 0, i32 2
  store i32 0, ptr %2066, align 4, !tbaa !109
  invoke void @_ZN3HIR9ValueItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::ValueItem") align 8 %216, ptr noundef %217)
          to label %2067 unwind label %2074

2067:                                             ; preds = %2064
  %2068 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZN3HIR9ValueItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(368) %213, ptr noundef nonnull align 8 dereferenceable(368) %216)
          to label %2069 unwind label %2078

2069:                                             ; preds = %2067
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %216) #10
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #10
  call void @llvm.lifetime.end.p0(i64 368, ptr %216) #10
  br label %2158

2070:                                             ; preds = %2062
  %2071 = landingpad { ptr, i32 }
          cleanup
  %2072 = extractvalue { ptr, i32 } %2071, 0
  store ptr %2072, ptr %11, align 8
  %2073 = extractvalue { ptr, i32 } %2071, 1
  store i32 %2073, ptr %12, align 4
  br label %2083

2074:                                             ; preds = %2064
  %2075 = landingpad { ptr, i32 }
          cleanup
  %2076 = extractvalue { ptr, i32 } %2075, 0
  store ptr %2076, ptr %11, align 8
  %2077 = extractvalue { ptr, i32 } %2075, 1
  store i32 %2077, ptr %12, align 4
  br label %2082

2078:                                             ; preds = %2067
  %2079 = landingpad { ptr, i32 }
          cleanup
  %2080 = extractvalue { ptr, i32 } %2079, 0
  store ptr %2080, ptr %11, align 8
  %2081 = extractvalue { ptr, i32 } %2079, 1
  store i32 %2081, ptr %12, align 4
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %216) #10
  br label %2082

2082:                                             ; preds = %2078, %2074
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %217) #10
  br label %2083

2083:                                             ; preds = %2082, %2070
  call void @llvm.lifetime.end.p0(i64 368, ptr %216) #10
  br label %2160

2084:                                             ; preds = %2032
  call void @llvm.lifetime.start.p0(i64 1, ptr %218) #10
  store i8 1, ptr %218, align 1, !tbaa !14
  br label %2085

2085:                                             ; preds = %2156, %2084
  %2086 = load i8, ptr %218, align 1, !tbaa !14, !range !16, !noundef !17
  %2087 = trunc i8 %2086 to i1
  br i1 %2087, label %2089, label %2088

2088:                                             ; preds = %2085
  store i32 157, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %218) #10
  br label %2157

2089:                                             ; preds = %2085
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #10
  %2090 = load ptr, ptr %215, align 8, !tbaa !5
  %2091 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST17PathBinding_Value10as_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %2090)
          to label %2092 unwind label %2098

2092:                                             ; preds = %2089
  store ptr %2091, ptr %219, align 8, !tbaa !5
  br label %2093

2093:                                             ; preds = %2139, %2092
  %2094 = load ptr, ptr %219, align 8, !tbaa !5
  %2095 = load i8, ptr %218, align 1, !tbaa !14, !range !16, !noundef !17
  %2096 = trunc i8 %2095 to i1
  br i1 %2096, label %2102, label %2097

2097:                                             ; preds = %2093
  store i32 160, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #10
  br label %2155

2098:                                             ; preds = %2123, %2121, %2119, %2117, %2115, %2111, %2109, %2106, %2103, %2089
  %2099 = landingpad { ptr, i32 }
          cleanup
  %2100 = extractvalue { ptr, i32 } %2099, 0
  store ptr %2100, ptr %11, align 8
  %2101 = extractvalue { ptr, i32 } %2099, 1
  store i32 %2101, ptr %12, align 4
  br label %2154

2102:                                             ; preds = %2093
  br label %2103

2103:                                             ; preds = %2102
  %2104 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2105 unwind label %2098

2105:                                             ; preds = %2103
  br i1 %2104, label %2106, label %2126

2106:                                             ; preds = %2105
  %2107 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2108 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2107, ptr noundef @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %2109 unwind label %2098

2109:                                             ; preds = %2106
  %2110 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2108, ptr noundef @.str.55)
          to label %2111 unwind label %2098

2111:                                             ; preds = %2109
  %2112 = load ptr, ptr %208, align 8, !tbaa !5
  %2113 = getelementptr inbounds %"struct.std::pair.839", ptr %2112, i32 0, i32 0
  %2114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2110, ptr noundef nonnull align 8 dereferenceable(8) %2113)
          to label %2115 unwind label %2098

2115:                                             ; preds = %2111
  %2116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2114, ptr noundef @.str.51)
          to label %2117 unwind label %2098

2117:                                             ; preds = %2115
  %2118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %2116, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %2119 unwind label %2098

2119:                                             ; preds = %2117
  %2120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2118, ptr noundef @.str.52)
          to label %2121 unwind label %2098

2121:                                             ; preds = %2119
  %2122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2120, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2123 unwind label %2098

2123:                                             ; preds = %2121
  %2124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2122, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2125 unwind label %2098

2125:                                             ; preds = %2123
  br label %2126

2126:                                             ; preds = %2125, %2105
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127
  call void @llvm.lifetime.start.p0(i64 368, ptr %220) #10
  %2129 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %221, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %2129, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %2130 unwind label %2140

2130:                                             ; preds = %2128
  %2131 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %221, i32 0, i32 1
  store i8 1, ptr %2131, align 8, !tbaa !107
  %2132 = getelementptr inbounds %"struct.HIR::ValueItem::Data_Import", ptr %221, i32 0, i32 2
  %2133 = load ptr, ptr %219, align 8, !tbaa !5
  %2134 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %2133, i32 0, i32 1
  %2135 = load i32, ptr %2134, align 8, !tbaa !110
  store i32 %2135, ptr %2132, align 4, !tbaa !109
  invoke void @_ZN3HIR9ValueItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::ValueItem") align 8 %220, ptr noundef %221)
          to label %2136 unwind label %2144

2136:                                             ; preds = %2130
  %2137 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZN3HIR9ValueItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(368) %213, ptr noundef nonnull align 8 dereferenceable(368) %220)
          to label %2138 unwind label %2148

2138:                                             ; preds = %2136
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %220) #10
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #10
  call void @llvm.lifetime.end.p0(i64 368, ptr %220) #10
  br label %2139

2139:                                             ; preds = %2138
  store i8 0, ptr %218, align 1, !tbaa !14
  br label %2093, !llvm.loop !112

2140:                                             ; preds = %2128
  %2141 = landingpad { ptr, i32 }
          cleanup
  %2142 = extractvalue { ptr, i32 } %2141, 0
  store ptr %2142, ptr %11, align 8
  %2143 = extractvalue { ptr, i32 } %2141, 1
  store i32 %2143, ptr %12, align 4
  br label %2153

2144:                                             ; preds = %2130
  %2145 = landingpad { ptr, i32 }
          cleanup
  %2146 = extractvalue { ptr, i32 } %2145, 0
  store ptr %2146, ptr %11, align 8
  %2147 = extractvalue { ptr, i32 } %2145, 1
  store i32 %2147, ptr %12, align 4
  br label %2152

2148:                                             ; preds = %2136
  %2149 = landingpad { ptr, i32 }
          cleanup
  %2150 = extractvalue { ptr, i32 } %2149, 0
  store ptr %2150, ptr %11, align 8
  %2151 = extractvalue { ptr, i32 } %2149, 1
  store i32 %2151, ptr %12, align 4
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %220) #10
  br label %2152

2152:                                             ; preds = %2148, %2144
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %221) #10
  br label %2153

2153:                                             ; preds = %2152, %2140
  call void @llvm.lifetime.end.p0(i64 368, ptr %220) #10
  br label %2154

2154:                                             ; preds = %2153, %2098
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %218) #10
  br label %2160

2155:                                             ; preds = %2097
  br label %2156

2156:                                             ; preds = %2155
  store i8 0, ptr %218, align 1, !tbaa !14
  br label %2085, !llvm.loop !113

2157:                                             ; preds = %2088
  br label %2158

2158:                                             ; preds = %2157, %2069
  br label %2159

2159:                                             ; preds = %2158
  store i8 0, ptr %214, align 1, !tbaa !14
  br label %2025, !llvm.loop !114

2160:                                             ; preds = %2154, %2083, %2033
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #10
  br label %2185

2161:                                             ; preds = %2028
  br label %2162

2162:                                             ; preds = %2161
  store i8 0, ptr %214, align 1, !tbaa !14
  br label %2010, !llvm.loop !115

2163:                                             ; preds = %2013
  %2164 = load ptr, ptr %208, align 8, !tbaa !5
  %2165 = getelementptr inbounds %"struct.std::pair.839", ptr %2164, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull align 8 dereferenceable(8) %2165)
          to label %2166 unwind label %2172

2166:                                             ; preds = %2163
  %2167 = load ptr, ptr %208, align 8, !tbaa !5
  %2168 = getelementptr inbounds %"struct.std::pair.839", ptr %2167, i32 0, i32 1
  %2169 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %2168, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %223, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %2169)
          to label %2170 unwind label %2176

2170:                                             ; preds = %2166
  call void @_ZN3HIR9ValueItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(368) %224, ptr noundef nonnull align 8 dereferenceable(368) %213) #10
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %222, ptr noundef %223, ptr noundef %224)
          to label %2171 unwind label %2180

2171:                                             ; preds = %2170
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %224) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %223) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %222) #10
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %213) #10
  call void @llvm.lifetime.end.p0(i64 368, ptr %213) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #10
  br label %2189

2172:                                             ; preds = %2163
  %2173 = landingpad { ptr, i32 }
          cleanup
  %2174 = extractvalue { ptr, i32 } %2173, 0
  store ptr %2174, ptr %11, align 8
  %2175 = extractvalue { ptr, i32 } %2173, 1
  store i32 %2175, ptr %12, align 4
  br label %2185

2176:                                             ; preds = %2166
  %2177 = landingpad { ptr, i32 }
          cleanup
  %2178 = extractvalue { ptr, i32 } %2177, 0
  store ptr %2178, ptr %11, align 8
  %2179 = extractvalue { ptr, i32 } %2177, 1
  store i32 %2179, ptr %12, align 4
  br label %2184

2180:                                             ; preds = %2170
  %2181 = landingpad { ptr, i32 }
          cleanup
  %2182 = extractvalue { ptr, i32 } %2181, 0
  store ptr %2182, ptr %11, align 8
  %2183 = extractvalue { ptr, i32 } %2181, 1
  store i32 %2183, ptr %12, align 4
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %224) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %223) #10
  br label %2184

2184:                                             ; preds = %2180, %2176
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %222) #10
  br label %2185

2185:                                             ; preds = %2184, %2172, %2160
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %213) #10
  br label %2186

2186:                                             ; preds = %2185, %2014
  call void @llvm.lifetime.end.p0(i64 368, ptr %213) #10
  br label %2187

2187:                                             ; preds = %2186, %2003, %1985
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #10
  br label %2188

2188:                                             ; preds = %2187, %1981
  call void @llvm.lifetime.end.p0(i64 8, ptr %210) #10
  br label %2198

2189:                                             ; preds = %2171, %1958
  store i32 0, ptr %45, align 4
  br label %2190

2190:                                             ; preds = %2189, %1953
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #10
  %2191 = load i32, ptr %45, align 4
  switch i32 %2191, label %2193 [
    i32 0, label %2192
  ]

2192:                                             ; preds = %2190
  store i32 0, ptr %45, align 4
  br label %2193

2193:                                             ; preds = %2192, %2190
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #10
  %2194 = load i32, ptr %45, align 4
  switch i32 %2194, label %2393 [
    i32 0, label %2195
    i32 147, label %2196
  ]

2195:                                             ; preds = %2193
  br label %2196

2196:                                             ; preds = %2195, %2193
  %2197 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %206) #10
  br label %1940

2198:                                             ; preds = %2188, %1954
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #10
  br label %2380

2199:                                             ; preds = %1942
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #10
  %2200 = load ptr, ptr %6, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"class.AST::Module", ptr %2200, i32 0, i32 10
  store ptr %2201, ptr %225, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #10
  %2202 = load ptr, ptr %225, align 8, !tbaa !5
  %2203 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %2202) #10
  %2204 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %226, i32 0, i32 0
  %2205 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %2204, i32 0, i32 0
  store ptr %2203, ptr %2205, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #10
  %2206 = load ptr, ptr %225, align 8, !tbaa !5
  %2207 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %2206) #10
  %2208 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %227, i32 0, i32 0
  %2209 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.838", ptr %2208, i32 0, i32 0
  store ptr %2207, ptr %2209, align 8
  br label %2210

2210:                                             ; preds = %2373, %2199
  %2211 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %226, ptr noundef nonnull align 8 dereferenceable(8) %227) #10
  br i1 %2211, label %2213, label %2212

2212:                                             ; preds = %2210
  store i32 165, ptr %45, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #10
  br label %2378

2213:                                             ; preds = %2210
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #10
  %2214 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %226) #10
  store ptr %2214, ptr %228, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #10
  store ptr %187, ptr %229, align 8, !tbaa !5
  %2215 = load ptr, ptr %228, align 8, !tbaa !5
  %2216 = getelementptr inbounds %"struct.std::pair.839", ptr %2215, i32 0, i32 0
  %2217 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %2216)
          to label %2218 unwind label %2224

2218:                                             ; preds = %2213
  %2219 = getelementptr inbounds i8, ptr %2217, i64 0
  %2220 = load i8, ptr %2219, align 1, !tbaa !25
  %2221 = sext i8 %2220 to i32
  %2222 = icmp eq i32 %2221, 32
  br i1 %2222, label %2223, label %2228

2223:                                             ; preds = %2218
  store i32 166, ptr %45, align 4
  br label %2367

2224:                                             ; preds = %2213
  %2225 = landingpad { ptr, i32 }
          cleanup
  %2226 = extractvalue { ptr, i32 } %2225, 0
  store ptr %2226, ptr %11, align 8
  %2227 = extractvalue { ptr, i32 } %2225, 1
  store i32 %2227, ptr %12, align 4
  br label %2377

2228:                                             ; preds = %2218
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #10
  %2229 = load ptr, ptr %229, align 8, !tbaa !5
  %2230 = load ptr, ptr %228, align 8, !tbaa !5
  %2231 = getelementptr inbounds %"struct.std::pair.839", ptr %2230, i32 0, i32 1
  %2232 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %2231, i32 0, i32 3
  invoke void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind writable sret(%"struct.HIR::SimplePath") align 8 %230, ptr noundef nonnull align 8 dereferenceable(8) %2229, ptr noundef nonnull align 8 dereferenceable(240) %2232, i32 noundef 2, i1 noundef zeroext false)
          to label %2233 unwind label %2251

2233:                                             ; preds = %2228
  %2234 = load ptr, ptr %228, align 8, !tbaa !5
  %2235 = getelementptr inbounds %"struct.std::pair.839", ptr %2234, i32 0, i32 1
  %2236 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %2235, i32 0, i32 0
  %2237 = load i8, ptr %2236, align 8, !tbaa !76, !range !16, !noundef !17
  %2238 = trunc i8 %2237 to i1
  br i1 %2238, label %2239, label %2341

2239:                                             ; preds = %2233
  call void @llvm.lifetime.start.p0(i64 16, ptr %231) #10
  %2240 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %230)
          to label %2241 unwind label %2255

2241:                                             ; preds = %2239
  %2242 = getelementptr inbounds { ptr, i64 }, ptr %231, i32 0, i32 0
  %2243 = extractvalue { ptr, i64 } %2240, 0
  store ptr %2243, ptr %2242, align 8
  %2244 = getelementptr inbounds { ptr, i64 }, ptr %231, i32 0, i32 1
  %2245 = extractvalue { ptr, i64 } %2240, 1
  store i64 %2245, ptr %2244, align 8
  %2246 = invoke noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %231)
          to label %2247 unwind label %2255

2247:                                             ; preds = %2241
  %2248 = xor i1 %2246, true
  br i1 %2248, label %2249, label %2250

2249:                                             ; preds = %2247
  br label %2260

2250:                                             ; preds = %2247
  call void @__assert_fail(ptr noundef @.str.53, ptr noundef @.str.5, i32 noundef 2055, ptr noundef @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

2251:                                             ; preds = %2228
  %2252 = landingpad { ptr, i32 }
          cleanup
  %2253 = extractvalue { ptr, i32 } %2252, 0
  store ptr %2253, ptr %11, align 8
  %2254 = extractvalue { ptr, i32 } %2252, 1
  store i32 %2254, ptr %12, align 4
  br label %2376

2255:                                             ; preds = %2241, %2239
  %2256 = landingpad { ptr, i32 }
          cleanup
  %2257 = extractvalue { ptr, i32 } %2256, 0
  store ptr %2257, ptr %11, align 8
  %2258 = extractvalue { ptr, i32 } %2256, 1
  store i32 %2258, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %231) #10
  br label %2375

2259:                                             ; No predecessors!
  br label %2260

2260:                                             ; preds = %2259, %2249
  call void @llvm.lifetime.end.p0(i64 16, ptr %231) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %232) #10
  %2261 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %230)
          to label %2262 unwind label %2273

2262:                                             ; preds = %2260
  %2263 = getelementptr inbounds { ptr, i64 }, ptr %232, i32 0, i32 0
  %2264 = extractvalue { ptr, i64 } %2261, 0
  store ptr %2264, ptr %2263, align 8
  %2265 = getelementptr inbounds { ptr, i64 }, ptr %232, i32 0, i32 1
  %2266 = extractvalue { ptr, i64 } %2261, 1
  store i64 %2266, ptr %2265, align 8
  %2267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %232)
          to label %2268 unwind label %2273

2268:                                             ; preds = %2262
  %2269 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %2267, ptr noundef @.str.6)
          to label %2270 unwind label %2273

2270:                                             ; preds = %2268
  br i1 %2269, label %2271, label %2272

2271:                                             ; preds = %2270
  br label %2278

2272:                                             ; preds = %2270
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str.5, i32 noundef 2056, ptr noundef @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

2273:                                             ; preds = %2268, %2262, %2260
  %2274 = landingpad { ptr, i32 }
          cleanup
  %2275 = extractvalue { ptr, i32 } %2274, 0
  store ptr %2275, ptr %11, align 8
  %2276 = extractvalue { ptr, i32 } %2274, 1
  store i32 %2276, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #10
  br label %2375

2277:                                             ; No predecessors!
  br label %2278

2278:                                             ; preds = %2277, %2271
  call void @llvm.lifetime.end.p0(i64 16, ptr %232) #10
  br label %2279

2279:                                             ; preds = %2278
  %2280 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2281 unwind label %2300

2281:                                             ; preds = %2279
  br i1 %2280, label %2282, label %2304

2282:                                             ; preds = %2281
  %2283 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2283, ptr noundef @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %2285 unwind label %2300

2285:                                             ; preds = %2282
  %2286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2284, ptr noundef @.str.56)
          to label %2287 unwind label %2300

2287:                                             ; preds = %2285
  %2288 = load ptr, ptr %228, align 8, !tbaa !5
  %2289 = getelementptr inbounds %"struct.std::pair.839", ptr %2288, i32 0, i32 0
  %2290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2286, ptr noundef nonnull align 8 dereferenceable(8) %2289)
          to label %2291 unwind label %2300

2291:                                             ; preds = %2287
  %2292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2290, ptr noundef @.str.51)
          to label %2293 unwind label %2300

2293:                                             ; preds = %2291
  %2294 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %2292, ptr noundef nonnull align 8 dereferenceable(8) %230)
          to label %2295 unwind label %2300

2295:                                             ; preds = %2293
  %2296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2294, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2297 unwind label %2300

2297:                                             ; preds = %2295
  %2298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2296, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2299 unwind label %2300

2299:                                             ; preds = %2297
  br label %2304

2300:                                             ; preds = %2360, %2358, %2356, %2354, %2350, %2348, %2345, %2342, %2297, %2295, %2293, %2291, %2287, %2285, %2282, %2279
  %2301 = landingpad { ptr, i32 }
          cleanup
  %2302 = extractvalue { ptr, i32 } %2301, 0
  store ptr %2302, ptr %11, align 8
  %2303 = extractvalue { ptr, i32 } %2301, 1
  store i32 %2303, ptr %12, align 4
  br label %2375

2304:                                             ; preds = %2299, %2281
  br label %2305

2305:                                             ; preds = %2304
  br label %2306

2306:                                             ; preds = %2305
  call void @llvm.lifetime.start.p0(i64 56, ptr %233) #10
  %2307 = getelementptr inbounds %"struct.HIR::MacroItem::Data_Import", ptr %234, i32 0, i32 0
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %2307, ptr noundef nonnull align 8 dereferenceable(8) %230)
          to label %2308 unwind label %2318

2308:                                             ; preds = %2306
  invoke void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind writable sret(%"class.HIR::MacroItem") align 8 %233, ptr noundef %234)
          to label %2309 unwind label %2322

2309:                                             ; preds = %2308
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #10
  %2310 = load ptr, ptr %228, align 8, !tbaa !5
  %2311 = getelementptr inbounds %"struct.std::pair.839", ptr %2310, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef nonnull align 8 dereferenceable(8) %2311)
          to label %2312 unwind label %2326

2312:                                             ; preds = %2309
  %2313 = load ptr, ptr %228, align 8, !tbaa !5
  %2314 = getelementptr inbounds %"struct.std::pair.839", ptr %2313, i32 0, i32 1
  %2315 = getelementptr inbounds %"struct.AST::Module::IndexEnt", ptr %2314, i32 0, i32 2
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind writable sret(%"class.HIR::Publicity") align 8 %236, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(36) %2315)
          to label %2316 unwind label %2330

2316:                                             ; preds = %2312
  call void @_ZN3HIR9MacroItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56) %237, ptr noundef nonnull align 8 dereferenceable(56) %233) #10
  invoke void @_Z17_add_mod_mac_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9MacroItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %235, ptr noundef %236, ptr noundef %237)
          to label %2317 unwind label %2334

2317:                                             ; preds = %2316
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %237) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %236) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #10
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %233) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %233) #10
  br label %2366

2318:                                             ; preds = %2306
  %2319 = landingpad { ptr, i32 }
          cleanup
  %2320 = extractvalue { ptr, i32 } %2319, 0
  store ptr %2320, ptr %11, align 8
  %2321 = extractvalue { ptr, i32 } %2319, 1
  store i32 %2321, ptr %12, align 4
  br label %2340

2322:                                             ; preds = %2308
  %2323 = landingpad { ptr, i32 }
          cleanup
  %2324 = extractvalue { ptr, i32 } %2323, 0
  store ptr %2324, ptr %11, align 8
  %2325 = extractvalue { ptr, i32 } %2323, 1
  store i32 %2325, ptr %12, align 4
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #10
  br label %2340

2326:                                             ; preds = %2309
  %2327 = landingpad { ptr, i32 }
          cleanup
  %2328 = extractvalue { ptr, i32 } %2327, 0
  store ptr %2328, ptr %11, align 8
  %2329 = extractvalue { ptr, i32 } %2327, 1
  store i32 %2329, ptr %12, align 4
  br label %2339

2330:                                             ; preds = %2312
  %2331 = landingpad { ptr, i32 }
          cleanup
  %2332 = extractvalue { ptr, i32 } %2331, 0
  store ptr %2332, ptr %11, align 8
  %2333 = extractvalue { ptr, i32 } %2331, 1
  store i32 %2333, ptr %12, align 4
  br label %2338

2334:                                             ; preds = %2316
  %2335 = landingpad { ptr, i32 }
          cleanup
  %2336 = extractvalue { ptr, i32 } %2335, 0
  store ptr %2336, ptr %11, align 8
  %2337 = extractvalue { ptr, i32 } %2335, 1
  store i32 %2337, ptr %12, align 4
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %237) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %236) #10
  br label %2338

2338:                                             ; preds = %2334, %2330
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #10
  br label %2339

2339:                                             ; preds = %2338, %2326
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %233) #10
  br label %2340

2340:                                             ; preds = %2339, %2322, %2318
  call void @llvm.lifetime.end.p0(i64 56, ptr %233) #10
  br label %2375

2341:                                             ; preds = %2233
  br label %2342

2342:                                             ; preds = %2341
  %2343 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2344 unwind label %2300

2344:                                             ; preds = %2342
  br i1 %2343, label %2345, label %2363

2345:                                             ; preds = %2344
  %2346 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2346, ptr noundef @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %2348 unwind label %2300

2348:                                             ; preds = %2345
  %2349 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2347, ptr noundef @.str.57)
          to label %2350 unwind label %2300

2350:                                             ; preds = %2348
  %2351 = load ptr, ptr %228, align 8, !tbaa !5
  %2352 = getelementptr inbounds %"struct.std::pair.839", ptr %2351, i32 0, i32 0
  %2353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2349, ptr noundef nonnull align 8 dereferenceable(8) %2352)
          to label %2354 unwind label %2300

2354:                                             ; preds = %2350
  %2355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2353, ptr noundef @.str.51)
          to label %2356 unwind label %2300

2356:                                             ; preds = %2354
  %2357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %2355, ptr noundef nonnull align 8 dereferenceable(8) %230)
          to label %2358 unwind label %2300

2358:                                             ; preds = %2356
  %2359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2357, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2360 unwind label %2300

2360:                                             ; preds = %2358
  %2361 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2359, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2362 unwind label %2300

2362:                                             ; preds = %2360
  br label %2363

2363:                                             ; preds = %2362, %2344
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365, %2317
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %230) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #10
  store i32 0, ptr %45, align 4
  br label %2367

2367:                                             ; preds = %2366, %2223
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #10
  %2368 = load i32, ptr %45, align 4
  switch i32 %2368, label %2370 [
    i32 0, label %2369
  ]

2369:                                             ; preds = %2367
  store i32 0, ptr %45, align 4
  br label %2370

2370:                                             ; preds = %2369, %2367
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #10
  %2371 = load i32, ptr %45, align 4
  switch i32 %2371, label %2393 [
    i32 0, label %2372
    i32 166, label %2373
  ]

2372:                                             ; preds = %2370
  br label %2373

2373:                                             ; preds = %2372, %2370
  %2374 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %226) #10
  br label %2210

2375:                                             ; preds = %2340, %2300, %2273, %2255
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %230) #10
  br label %2376

2376:                                             ; preds = %2375, %2251
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #10
  br label %2377

2377:                                             ; preds = %2376, %2224
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #10
  br label %2380

2378:                                             ; preds = %2212
  store i1 true, ptr %13, align 1
  store i32 1, ptr %45, align 4
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  %2379 = load i1, ptr %13, align 1
  br i1 %2379, label %2385, label %2384

2380:                                             ; preds = %2377, %2198, %1928
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #10
  br label %2381

2381:                                             ; preds = %2380, %1707
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #10
  br label %2382

2382:                                             ; preds = %2381, %1691, %1560, %441, %333
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #10
  br label %2383

2383:                                             ; preds = %2382, %267
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %0) #10
  br label %2386

2384:                                             ; preds = %2378
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %0) #10
  br label %2385

2385:                                             ; preds = %2384, %2378
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #10
  ret void

2386:                                             ; preds = %2383, %263
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #10
  br label %2387

2387:                                             ; preds = %2386, %259
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #10
  br label %2388

2388:                                             ; preds = %2387
  %2389 = load ptr, ptr %11, align 8
  %2390 = load i32, ptr %12, align 4
  %2391 = insertvalue { ptr, i32 } poison, ptr %2389, 0
  %2392 = insertvalue { ptr, i32 } %2391, i32 %2390, 1
  resume { ptr, i32 } %2392

2393:                                             ; preds = %2370, %2193, %1923, %1640, %1603, %991, %699
  unreachable
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind noalias writable sret(%"struct.HIR::SimplePath") align 8, ptr noundef nonnull align 8 dereferenceable(56)) #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 nounwind uwtable
declare dso_local void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3AST4Item7tag_strEv(ptr noundef nonnull align 8 dereferenceable(488)) #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind noalias writable sret(%"class.HIR::Publicity") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36)) #7 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 @_ZN3HIR8TypeItemC2ENS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef) unnamed_addr #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFv8RcStringN3HIR6StructEEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleENS1_8ItemPathESt6vectorINS1_10SimplePathESaISC_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR4EnumC2EOS0_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_5vEEOT_"(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 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 #5 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 ptr @_ZNKSt13unordered_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 @_ZNKSt13unordered_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 zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(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(296) ptr @_ZNKSt8__detail20_Node_const_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 @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

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 noundef nonnull align 8 dereferenceable(408) ptr @_ZN3HIR8TypeItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(408)) #5 align 2

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

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

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

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

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

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

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

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

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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{i64 0, i64 8, !5, i64 8, i64 8, !5, i64 16, i64 8, !5, i64 24, i64 8, !5, i64 32, i64 8, !5, i64 40, i64 8, !5, i64 48, i64 8, !5}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!15, !15, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{i8 0, i8 2}
!17 = !{}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = !{i64 0, i64 1, !25}
!25 = !{!7, !7, i64 0}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13}
!32 = distinct !{!32, !13}
!33 = distinct !{!33, !13}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}
!37 = distinct !{!37, !13}
!38 = !{!39, !15, i64 8}
!39 = !{!"_ZTSN3HIR8TypeItem11Data_ImportE", !40, i64 0, !15, i64 8, !10, i64 12}
!40 = !{!"_ZTSN3HIR10SimplePathE", !41, i64 0}
!41 = !{!"_ZTS10ThinVectorI8RcStringE", !6, i64 0}
!42 = !{!39, !10, i64 12}
!43 = distinct !{!43, !13}
!44 = distinct !{!44, !13}
!45 = !{!46, !15, i64 0}
!46 = !{!"_ZTSN3HIR13TraitMarkingsE", !15, i64 0, !15, i64 1, !15, i64 2, !47, i64 8}
!47 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !48, i64 0}
!48 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !49, i64 0}
!49 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !50, i64 0, !52, i64 8}
!50 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !51, i64 0}
!51 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}
!52 = !{!"_ZTSSt15_Rb_tree_header", !53, i64 0, !55, i64 32}
!53 = !{!"_ZTSSt18_Rb_tree_node_base", !54, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!54 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!55 = !{!"long", !7, i64 0}
!56 = !{!46, !15, i64 1}
!57 = !{!46, !15, i64 2}
!58 = distinct !{!58, !13}
!59 = distinct !{!59, !13}
!60 = distinct !{!60, !13}
!61 = distinct !{!61, !13}
!62 = distinct !{!62, !13}
!63 = distinct !{!63, !13}
!64 = distinct !{!64, !13}
!65 = distinct !{!65, !13}
!66 = distinct !{!66, !13}
!67 = distinct !{!67, !13}
!68 = distinct !{!68, !13}
!69 = distinct !{!69, !13}
!70 = distinct !{!70, !13}
!71 = distinct !{!71, !13}
!72 = distinct !{!72, !13}
!73 = distinct !{!73, !13}
!74 = distinct !{!74, !13}
!75 = distinct !{!75, !13}
!76 = !{!77, !15, i64 8}
!77 = !{!"_ZTSSt4pairIK8RcStringN3AST6Module8IndexEntEE", !78, i64 0, !79, i64 8}
!78 = !{!"_ZTS8RcString", !6, i64 0}
!79 = !{!"_ZTSN3AST6Module8IndexEntE", !15, i64 0, !80, i64 8, !87, i64 48}
!80 = !{!"_ZTSN3AST10VisibilityE", !81, i64 0, !84, i64 16, !86, i64 32}
!81 = !{!"_ZTSSt10shared_ptrIN3AST4PathEE", !82, i64 0}
!82 = !{!"_ZTSSt12__shared_ptrIN3AST4PathELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !83, i64 8}
!83 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!84 = !{!"_ZTSSt10shared_ptrIN3AST12AbsolutePathEE", !85, i64 0}
!85 = !{!"_ZTSSt12__shared_ptrIN3AST12AbsolutePathELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !83, i64 8}
!86 = !{!"_ZTSN3AST10Visibility2TyE", !7, i64 0}
!87 = !{!"_ZTSN3AST4PathE", !88, i64 8, !90, i64 56}
!88 = !{!"_ZTSN3AST4Path5ClassE", !89, i64 0, !7, i64 8}
!89 = !{!"_ZTSN3AST4Path5Class3TagE", !7, i64 0}
!90 = !{!"_ZTSN3AST4Path8BindingsE", !91, i64 0, !99, i64 64, !102, i64 128}
!91 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_ValueEEE", !92, i64 0, !97, i64 32}
!92 = !{!"_ZTSN3AST12AbsolutePathE", !78, i64 0, !93, i64 8}
!93 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !94, i64 0}
!94 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !95, i64 0}
!95 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!97 = !{!"_ZTSN3AST17PathBinding_ValueE", !98, i64 0, !7, i64 8}
!98 = !{!"_ZTSN3AST17PathBinding_Value3TagE", !7, i64 0}
!99 = !{!"_ZTSN3AST11PathBindingINS_16PathBinding_TypeEEE", !92, i64 0, !100, i64 32}
!100 = !{!"_ZTSN3AST16PathBinding_TypeE", !101, i64 0, !7, i64 8}
!101 = !{!"_ZTSN3AST16PathBinding_Type3TagE", !7, i64 0}
!102 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_MacroEEE", !92, i64 0, !103, i64 32}
!103 = !{!"_ZTSN3AST17PathBinding_MacroE", !104, i64 0, !7, i64 8}
!104 = !{!"_ZTSN3AST17PathBinding_Macro3TagE", !7, i64 0}
!105 = !{!106, !10, i64 8}
!106 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}
!107 = !{!108, !15, i64 8}
!108 = !{!"_ZTSN3HIR9ValueItem11Data_ImportE", !40, i64 0, !15, i64 8, !10, i64 12}
!109 = !{!108, !10, i64 12}
!110 = !{!111, !10, i64 8}
!111 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}
!112 = distinct !{!112, !13}
!113 = distinct !{!113, !13}
!114 = distinct !{!114, !13}
!115 = distinct !{!115, !13}


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

%class.RcString = type { ptr }
%"class.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.HIR::Path" = type { %"class.HIR::Path::Data" }
%"class.HIR::Path::Data" = type { i32, %"union.HIR::Path::Data::DataUnion" }
%"union.HIR::Path::Data::DataUnion" = type { %"struct.HIR::Path::Data::Data_UfcsKnown" }
%"struct.HIR::Path::Data::Data_UfcsKnown" = type { %"class.HIR::TypeRef", %"class.HIR::GenericPath", %class.RcString, %"struct.HIR::PathParams", %"class.std::unique_ptr.106" }
%"class.HIR::TypeRef" = type { ptr }
%"class.HIR::GenericPath" = type { %"struct.HIR::SimplePath", %"struct.HIR::PathParams" }
%"struct.HIR::SimplePath" = type { %class.ThinVector }
%class.ThinVector = type { ptr }
%"struct.HIR::PathParams" = type { %class.ThinVector.114, %class.ThinVector.115, %class.ThinVector.116 }
%class.ThinVector.114 = type { ptr }
%class.ThinVector.115 = type { ptr }
%class.ThinVector.116 = type { ptr }
%"class.std::unique_ptr.106" = type { %"struct.std::__uniq_ptr_data.107" }
%"struct.std::__uniq_ptr_data.107" = type { %"class.std::__uniq_ptr_impl.108" }
%"class.std::__uniq_ptr_impl.108" = type { %"class.std::tuple.109" }
%"class.std::tuple.109" = type { %"struct.std::_Tuple_impl.110" }
%"struct.std::_Tuple_impl.110" = type { %"struct.std::_Head_base.113" }
%"struct.std::_Head_base.113" = type { ptr }
%"struct.HIR::TypeAlias" = type { %"class.HIR::GenericParams", %"class.HIR::TypeRef" }
%"class.HIR::GenericParams" = type { %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector.18", %"class.std::vector.23" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Struct" = type <{ %"class.HIR::GenericParams", i32, [4 x i8], %"class.HIR::Struct::Data", i32, i32, %"struct.HIR::TraitMarkings", %"struct.HIR::StructMarkings", i32, [4 x i8] }>
%"class.HIR::Struct::Data" = type { i32, %"union.HIR::Struct::Data::DataUnion" }
%"union.HIR::Struct::Data::DataUnion" = type { %"class.std::vector.365" }
%"class.std::vector.365" = type { %"struct.std::_Vector_base.366" }
%"struct.std::_Vector_base.366" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::VisEnt<HIR::TypeRef>, std::allocator<HIR::VisEnt<HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TraitMarkings" = type { i8, i8, i8, %"class.std::map.375" }
%"class.std::map.375" = type { %"class.std::_Rb_tree.376" }
%"class.std::_Rb_tree.376" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.HIR::StructMarkings" = type { i8, i32, i32, i32, i32, i32, i32, i8, i8, %class.U128 }
%class.U128 = type { i64, i64 }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.HIR::Enum" = type { %"class.HIR::GenericParams", i8, i32, %"class.HIR::Enum::Class", %"struct.HIR::TraitMarkings" }
%"class.HIR::Enum::Class" = type { i32, %"union.HIR::Enum::Class::DataUnion" }
%"union.HIR::Enum::Class::DataUnion" = type { %"class.std::vector.403", [8 x i8] }
%"class.std::vector.403" = type { %"struct.std::_Vector_base.404" }
%"struct.std::_Vector_base.404" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.HIR::Union" = type { %"class.HIR::GenericParams", i32, %"class.std::vector.370", %"struct.HIR::TraitMarkings" }
%"class.std::vector.370" = type { %"struct.std::_Vector_base.371" }
%"struct.std::_Vector_base.371" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>, std::allocator<std::pair<RcString, HIR::VisEnt<HIR::TypeRef>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Trait" = type { %"class.HIR::GenericParams", %"struct.HIR::LifetimeRef", %"class.std::vector.126", i8, %"class.std::unordered_map", %"class.std::unordered_map.317", %"class.std::unordered_multimap", %"class.std::unordered_map.344", i32, %"class.std::vector.126", %"struct.HIR::SimplePath" }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_map.317" = type { %"class.std::_Hashtable.318" }
%"class.std::_Hashtable.318" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.331" }
%"class.std::_Hashtable.331" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.344" = type { %"class.std::_Hashtable.345" }
%"class.std::_Hashtable.345" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.126" = type { %"struct.std::_Vector_base.127" }
%"struct.std::_Vector_base.127" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Function" = type { i8, %"struct.HIR::Linkage", i32, %"class.HIR::TypeRef", %class.RcString, i8, i8, %"class.HIR::GenericParams", %"class.std::vector.529", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %"struct.HIR::Function::Markings" }
%"struct.HIR::Linkage" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::vector.529" = type { %"struct.std::_Vector_base.530" }
%"struct.std::_Vector_base.530" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<HIR::Pattern, HIR::TypeRef>, std::allocator<std::pair<HIR::Pattern, HIR::TypeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.93", %"class.std::vector.93", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.93" = type { %"struct.std::_Vector_base.94" }
%"struct.std::_Vector_base.94" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MIR::FunctionPointer" = type { ptr }
%"class.HIR::ExprStatePtr" = type { ptr }
%"struct.HIR::Function::Markings" = type { %"class.std::vector.510", i8, i32 }
%"class.std::vector.510" = type { %"struct.std::_Vector_base.511" }
%"struct.std::_Vector_base.511" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TraitAlias" = type { %"class.HIR::GenericParams", %"class.std::vector.126" }
%"class.HIR::ValueItem" = type { i32, %"union.HIR::ValueItem::DataUnion" }
%"union.HIR::ValueItem::DataUnion" = type { %"class.HIR::Static" }
%"class.HIR::Static" = type { %"class.HIR::GenericParams", %"struct.HIR::Linkage", i8, %"class.HIR::TypeRef", %"class.HIR::ExprPtr", %struct.EncodedLiteral, i8, i8, i8, %"class.std::map.551" }
%struct.EncodedLiteral = type { %"class.std::vector.541", %"class.std::vector.546" }
%"class.std::vector.541" = type { %"struct.std::_Vector_base.542" }
%"struct.std::_Vector_base.542" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.546" = type { %"struct.std::_Vector_base.547" }
%"struct.std::_Vector_base.547" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl" = type { %"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Reloc, std::allocator<Reloc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.551" = type { %"class.std::_Rb_tree.552" }
%"class.std::_Rb_tree.552" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, EncodedLiteral>, std::_Select1st<std::pair<const HIR::Path, EncodedLiteral>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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 }
%"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.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.805 = type { ptr }
%class.anon.806 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.807" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.808" = type { ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.HIR::TypeItem" = type { i32, %"union.HIR::TypeItem::DataUnion" }
%"union.HIR::TypeItem::DataUnion" = type { %"class.HIR::Trait" }
%"class.__gnu_cxx::__normal_iterator.809" = type { ptr }
%"class.HIR::GlobalAssembly" = type <{ %"class.std::vector.445", %"class.std::vector.818", %"struct.AsmCommon::Options", [4 x i8] }>
%"class.std::vector.445" = type { %"struct.std::_Vector_base.446" }
%"struct.std::_Vector_base.446" = type { %"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl" }
%"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl" = type { %"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AsmCommon::Line, std::allocator<AsmCommon::Line>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.818" = type { %"struct.std::_Vector_base.819" }
%"struct.std::_Vector_base.819" = type { %"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::Path, std::allocator<HIR::Path>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AsmCommon::Options" = type { i8, [3 x i8] }
%"class.__gnu_cxx::__normal_iterator.823" = type { ptr }
%struct.Span = type { ptr }
%class.anon.824 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.825" = type { ptr }
%"class.HIR::ExternLibrary" = type { %"class.std::__cxx11::basic_string" }
%"struct.HIR::TypeItem::Data_Import" = type { %"struct.HIR::SimplePath", i8, i32 }
%"class.std::initializer_list" = type { ptr, i64 }
%class.anon.826 = type { i8 }
%"class.HIR::ExternType" = type { %"struct.HIR::TraitMarkings" }
%"struct.HIR::ValueItem::Data_StructConstant" = type { %"struct.HIR::SimplePath" }
%"struct.HIR::ValueItem::Data_StructConstructor" = type { %"struct.HIR::SimplePath" }
%"class.std::function.413" = type { %"class.std::_Function_base", ptr }
%class.anon.828 = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.829" = type { ptr }
%class.anon.831 = type { ptr }
%class.anon.837 = type { 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.MacroRulesPtr = type { ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base.838" }
%"struct.std::__detail::_Node_iterator_base.838" = type { ptr }
%"class.std::span" = type { ptr, i64 }
%"struct.HIR::ValueItem::Data_Import" = type { %"struct.HIR::SimplePath", i8, i32 }
%"struct.HIR::MacroItem::Data_Import" = type { %"struct.HIR::SimplePath" }

@g_crate_name = external dso_local global %class.RcString, align 8
@g_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
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [24 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.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE = external hidden unnamed_addr constant [16 x i8], align 1
@__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE = external hidden unnamed_addr constant [105 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [15 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #0 align 2

; 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #4

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

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

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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #0 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 @_Z13LowerHIR_PathRK4SpanRKN3AST4PathE17FromAST_PathClass(ptr dead_on_unwind noalias writable sret(%"class.HIR::Path") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240), i32 noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind noalias writable sret(%"struct.HIR::SimplePath") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240), i32 noundef, i1 noundef zeroext) local_unnamed_addr #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 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 uwtable
declare dso_local void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z18LowerHIR_TypeAliasRKN3HIR8ItemPathERKN3AST9TypeAliasE(ptr dead_on_unwind noalias writable sret(%"struct.HIR::TypeAlias") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(216)) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15LowerHIR_StructRK4SpanN3HIR8ItemPathERKN3AST6StructERKNS4_13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Struct") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13LowerHIR_EnumN3HIR8ItemPathERKN3AST4EnumERKNS1_13AttributeListESt8functionIFv8RcStringNS_6StructEEE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Enum") align 8, ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #5 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: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14LowerHIR_UnionN3HIR8ItemPathERKN3AST5UnionERKNS1_13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Union") align 8, ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(76), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14LowerHIR_TraitN3HIR10SimplePathERKN3AST5TraitE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Trait") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19LowerHIR_TraitAliasRK4SpanN3HIR8ItemPathERKN3AST10TraitAliasE(ptr dead_on_unwind noalias writable sret(%"struct.HIR::TraitAlias") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17_add_mod_mac_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9MacroItemE(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

; 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: mustprogress uwtable
declare dso_local void @_Z15LowerHIR_StaticN3HIR8ItemPathERKN3AST13AttributeListERKNS1_6StaticERK4SpanRK8RcString(ptr dead_on_unwind noalias writable sret(%"class.HIR::ValueItem") align 8, ptr noundef byval(%"class.HIR::ItemPath") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind noalias writable sret(%"class.HIR::Module") align 8 %0, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef byval(%"class.HIR::ItemPath") align 8 %2, ptr noundef %3) local_unnamed_addr #5 personality ptr @__gxx_personality_v0 {
  %5 = alloca %class.TraceLog, align 8
  %6 = alloca %"class.std::function", align 8
  %7 = alloca %class.anon.805, align 8
  %8 = alloca %"struct.HIR::SimplePath", align 8
  %9 = alloca %class.anon.806, align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.807", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.807", align 8
  %12 = alloca %"struct.HIR::SimplePath", align 8
  %13 = alloca %class.RcString, align 8
  %14 = alloca %"class.std::vector", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.808", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.808", align 8
  %17 = alloca i32, align 4
  %18 = alloca %class.RcString, align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %21 = alloca %"class.HIR::ItemPath", align 8
  %22 = alloca %"class.HIR::TypeItem", align 8
  %23 = alloca %"class.HIR::Module", align 8
  %24 = alloca %"class.HIR::ItemPath", align 8
  %25 = alloca %"class.std::vector.561", align 8
  %26 = alloca %class.RcString, align 8
  %27 = alloca %"class.HIR::Publicity", align 8
  %28 = alloca %"struct.HIR::SimplePath", align 8
  %29 = alloca %"class.HIR::TypeItem", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.809", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator.809", align 8
  %32 = alloca %"class.HIR::ItemPath", align 8
  %33 = alloca %"class.HIR::GlobalAssembly", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.823", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.823", align 8
  %36 = alloca %"class.HIR::Path", align 8
  %37 = alloca %struct.Span, align 8
  %38 = alloca ptr, align 8
  %39 = alloca %struct.Span, align 8
  %40 = alloca %"class.std::function", align 8
  %41 = alloca %class.anon.824, align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.825", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.825", align 8
  %44 = alloca %"class.HIR::ExternLibrary", align 8
  %45 = alloca %class.RcString, align 8
  %46 = alloca %"class.HIR::Publicity", align 8
  %47 = alloca %"class.HIR::TypeItem", align 8
  %48 = alloca %"class.HIR::Module", align 8
  %49 = alloca %"class.HIR::ItemPath", align 8
  %50 = alloca %"class.std::vector.561", align 8
  %51 = alloca %class.RcString, align 8
  %52 = alloca %"class.HIR::Publicity", align 8
  %53 = alloca %"class.HIR::TypeItem", align 8
  %54 = alloca %"struct.HIR::TypeItem::Data_Import", align 8
  %55 = alloca %class.RcString, align 8
  %56 = alloca %"class.std::initializer_list", align 8
  %57 = alloca %struct.Span, align 8
  %58 = alloca %"class.std::function", align 8
  %59 = alloca %class.anon.826, align 1
  %60 = alloca %class.RcString, align 8
  %61 = alloca %"class.HIR::Publicity", align 8
  %62 = alloca %"class.HIR::TypeItem", align 8
  %63 = alloca %"class.HIR::ExternType", align 8
  %64 = alloca %class.RcString, align 8
  %65 = alloca %"class.HIR::Publicity", align 8
  %66 = alloca %"class.HIR::TypeItem", align 8
  %67 = alloca %"struct.HIR::TypeAlias", align 8
  %68 = alloca %class.RcString, align 8
  %69 = alloca %"class.HIR::Publicity", align 8
  %70 = alloca %"class.HIR::ValueItem", align 8
  %71 = alloca %"struct.HIR::ValueItem::Data_StructConstant", align 8
  %72 = alloca %class.RcString, align 8
  %73 = alloca %"class.HIR::Publicity", align 8
  %74 = alloca %"class.HIR::ValueItem", align 8
  %75 = alloca %"struct.HIR::ValueItem::Data_StructConstructor", align 8
  %76 = alloca %class.RcString, align 8
  %77 = alloca %"class.HIR::Publicity", align 8
  %78 = alloca %"class.HIR::TypeItem", align 8
  %79 = alloca %"class.HIR::Struct", align 8
  %80 = alloca %"class.HIR::Enum", align 8
  %81 = alloca %"class.HIR::ItemPath", align 8
  %82 = alloca %"class.std::function.413", align 8
  %83 = alloca %class.anon.828, align 8
  %84 = alloca %class.RcString, align 8
  %85 = alloca %"class.HIR::Publicity", align 8
  %86 = alloca %"class.HIR::TypeItem", align 8
  %87 = alloca %"class.HIR::Enum", align 8
  %88 = alloca %class.RcString, align 8
  %89 = alloca %"class.HIR::Publicity", align 8
  %90 = alloca %"class.HIR::TypeItem", align 8
  %91 = alloca %"class.HIR::Union", align 8
  %92 = alloca %class.RcString, align 8
  %93 = alloca %"class.HIR::Publicity", align 8
  %94 = alloca %"class.HIR::TypeItem", align 8
  %95 = alloca %"class.HIR::Trait", align 8
  %96 = alloca %"struct.HIR::SimplePath", align 8
  %97 = alloca %class.RcString, align 8
  %98 = alloca %"class.HIR::Publicity", align 8
  %99 = alloca %"class.HIR::TypeItem", align 8
  %100 = alloca %"struct.HIR::TraitAlias", align 8
  %101 = alloca %class.RcString, align 8
  %102 = alloca %"class.HIR::Publicity", align 8
  %103 = alloca %"class.HIR::ValueItem", align 8
  %104 = alloca %"class.HIR::Function", align 8
  %105 = alloca %"class.HIR::ItemPath", align 8
  %106 = alloca %"class.HIR::TypeRef", align 8
  %107 = alloca %class.RcString, align 8
  %108 = alloca %"class.HIR::Publicity", align 8
  %109 = alloca %"class.HIR::ValueItem", align 8
  %110 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %111 = alloca %"class.__gnu_cxx::__normal_iterator.829", align 8
  %112 = alloca %struct.Span, align 8
  %113 = alloca %"class.std::function", align 8
  %114 = alloca %class.anon.831, align 8
  %115 = alloca %struct.Span, align 8
  %116 = alloca %"class.std::function", align 8
  %117 = alloca %class.anon.837, align 8
  %118 = alloca %class.RcString, align 8
  %119 = alloca %"class.HIR::Publicity", align 8
  %120 = alloca %"class.HIR::MacroItem", align 8
  %121 = alloca %class.MacroRulesPtr, align 8
  %122 = alloca %struct.Span, align 8
  %123 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %124 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %125 = alloca %"struct.HIR::SimplePath", align 8
  %126 = alloca %"class.std::span", align 8
  %127 = alloca %"class.std::span", align 8
  %128 = alloca %"class.HIR::TypeItem", align 8
  %129 = alloca %"class.HIR::TypeItem", align 8
  %130 = alloca %"struct.HIR::TypeItem::Data_Import", align 8
  %131 = alloca %"class.HIR::TypeItem", align 8
  %132 = alloca %"struct.HIR::TypeItem::Data_Import", align 8
  %133 = alloca %class.RcString, align 8
  %134 = alloca %"class.HIR::Publicity", align 8
  %135 = alloca %"class.HIR::TypeItem", align 8
  %136 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %137 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %138 = alloca %"struct.HIR::SimplePath", align 8
  %139 = alloca %"class.std::span", align 8
  %140 = alloca %"class.std::span", align 8
  %141 = alloca %"class.HIR::ValueItem", align 8
  %142 = alloca %"class.HIR::ValueItem", align 8
  %143 = alloca %"struct.HIR::ValueItem::Data_Import", align 8
  %144 = alloca %"class.HIR::ValueItem", align 8
  %145 = alloca %"struct.HIR::ValueItem::Data_Import", align 8
  %146 = alloca %class.RcString, align 8
  %147 = alloca %"class.HIR::Publicity", align 8
  %148 = alloca %"class.HIR::ValueItem", align 8
  %149 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %150 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %151 = alloca %"struct.HIR::SimplePath", align 8
  %152 = alloca %"class.std::span", align 8
  %153 = alloca %"class.std::span", align 8
  %154 = alloca %"class.HIR::MacroItem", align 8
  %155 = alloca %"struct.HIR::MacroItem::Data_Import", align 8
  %156 = alloca %class.RcString, align 8
  %157 = alloca %"class.HIR::Publicity", align 8
  %158 = alloca %"class.HIR::MacroItem", align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #10
  %159 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %160 = select i1 %159, ptr @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE, ptr null
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  store ptr %2, ptr %7, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef %160, ptr noundef nonnull %6)
          to label %161 unwind label %170

161:                                              ; preds = %4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @_ZN3HIR6ModuleC2Ev(ptr noundef nonnull align 8 dereferenceable(216) %0)
  %162 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %3) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %8, ptr noundef nonnull align 8 dereferenceable(56) %2)
          to label %163 unwind label %172

163:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  store ptr %8, ptr %9, align 8, !tbaa !5
  %164 = getelementptr inbounds i8, ptr %1, i64 408
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  %165 = call ptr @_ZNKSt6vectorIN3AST12AbsolutePathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %164) #10
  store ptr %165, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  %166 = call ptr @_ZNKSt6vectorIN3AST12AbsolutePathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %164) #10
  store ptr %166, ptr %11, align 8
  %167 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  br i1 %167, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %199, %163
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #10
  store i32 0, ptr %17, align 4, !tbaa !9
  %168 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  %169 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %168) #10
  %.not3874 = icmp eq i64 %169, 0
  br i1 %.not3874, label %._crit_edge631, label %.lr.ph630

170:                                              ; preds = %4
  %171 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  br label %990

172:                                              ; preds = %161
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %989

.lr.ph:                                           ; preds = %163, %199
  %174 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  %175 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull @.str.6)
          to label %176 unwind label %188

176:                                              ; preds = %.lr.ph
  %177 = select i1 %175, ptr @g_crate_name, ptr %174
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %177)
  %178 = getelementptr inbounds i8, ptr %174, i64 8
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %178)
          to label %179 unwind label %190

179:                                              ; preds = %176
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull %13, ptr noundef nonnull %14)
          to label %180 unwind label %192

180:                                              ; preds = %179
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  %181 = call ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #10
  %182 = call ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #10
  %183 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPN3HIR10SimplePathESt6vectorIS3_SaIS3_EEEES3_ET_S9_S9_RKT0_(ptr %181, ptr %182, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %184 unwind label %195

184:                                              ; preds = %180
  store ptr %183, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #10
  %185 = call ptr @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #10
  store ptr %185, ptr %16, align 8
  %186 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPN3HIR10SimplePathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  br i1 %186, label %187, label %199

187:                                              ; preds = %184
  invoke void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %199 unwind label %197

188:                                              ; preds = %.lr.ph
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %203

190:                                              ; preds = %176
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %194

192:                                              ; preds = %179
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  br label %194

194:                                              ; preds = %192, %190
  %.pn496 = phi { ptr, i32 } [ %193, %192 ], [ %191, %190 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  br label %203

195:                                              ; preds = %180
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  br label %202

197:                                              ; preds = %187
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %202

199:                                              ; preds = %187, %184
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  %200 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %201 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  br i1 %201, label %.lr.ph, label %._crit_edge

202:                                              ; preds = %197, %195
  %.pn498 = phi { ptr, i32 } [ %198, %197 ], [ %196, %195 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  br label %203

203:                                              ; preds = %202, %194, %188
  %.pn498.pn = phi { ptr, i32 } [ %.pn498, %202 ], [ %.pn496, %194 ], [ %189, %188 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  br label %988

._crit_edge631:                                   ; preds = %264, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  %204 = getelementptr inbounds i8, ptr %1, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #10
  %205 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #10
  store ptr %205, ptr %30, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #10
  %206 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #10
  store ptr %206, ptr %31, align 8
  %207 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  br i1 %207, label %.lr.ph3765, label %._crit_edge3766

.lr.ph3765:                                       ; preds = %._crit_edge631
  %208 = getelementptr inbounds i8, ptr %83, i64 8
  %209 = getelementptr inbounds i8, ptr %83, i64 16
  %210 = getelementptr inbounds i8, ptr %63, i64 1
  %211 = getelementptr inbounds i8, ptr %63, i64 2
  %212 = getelementptr inbounds i8, ptr %63, i64 8
  %213 = getelementptr inbounds i8, ptr %56, i64 8
  %214 = getelementptr inbounds i8, ptr %54, i64 8
  %215 = getelementptr inbounds i8, ptr %54, i64 12
  %216 = getelementptr inbounds i8, ptr %33, i64 24
  %217 = getelementptr inbounds i8, ptr %33, i64 48
  br label %275

.lr.ph630:                                        ; preds = %._crit_edge, %264
  %218 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  %219 = load i32, ptr %17, align 4, !tbaa !9
  %220 = zext i32 %219 to i64
  %221 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %218, i64 noundef %220) #10
  %222 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %221) #10
  br i1 %222, label %223, label %264

223:                                              ; preds = %.lr.ph630
  %224 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %221) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #10
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %20) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20)
          to label %225 unwind label %239

225:                                              ; preds = %223
  %226 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA2_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %20, ptr noundef nonnull align 1 dereferenceable(2) @.str.34)
          to label %227 unwind label %241

227:                                              ; preds = %225
  %228 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEjEOT_S7_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %226, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %229 unwind label %241

229:                                              ; preds = %227
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(112) %228)
          to label %230 unwind label %241

230:                                              ; preds = %229
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %231 unwind label %243

231:                                              ; preds = %230
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %21) #10
  %232 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @_ZN3HIR8ItemPathC2ERKS0_PKc(ptr noundef nonnull align 8 dereferenceable(56) %21, ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef %232)
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %22) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %24, ptr noundef nonnull align 8 dereferenceable(56) %21, i64 56, i1 false), !tbaa.struct !11
  invoke void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %0)
          to label %233 unwind label %247

233:                                              ; preds = %231
  invoke void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Module") align 8 %23, ptr noundef nonnull align 8 dereferenceable(480) %224, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %24, ptr noundef nonnull %25)
          to label %234 unwind label %249

234:                                              ; preds = %233
  invoke void @_ZN3HIR8TypeItem11make_ModuleENS_6ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeItem") align 8 %22, ptr noundef nonnull %23)
          to label %235 unwind label %251

235:                                              ; preds = %234
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %23) #10
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %18)
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %236 unwind label %254

236:                                              ; preds = %235
  invoke void @_ZN3HIR9Publicity8new_privENS_10SimplePathE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %27, ptr noundef nonnull %28)
          to label %237 unwind label %256

237:                                              ; preds = %236
  call void @_ZN3HIR8TypeItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(408) %29, ptr noundef nonnull align 8 dereferenceable(408) %22) #10
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %29)
          to label %238 unwind label %258

238:                                              ; preds = %237
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %29) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %22) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %21) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  br label %264

239:                                              ; preds = %223
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %246

241:                                              ; preds = %229, %227, %225
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %245

243:                                              ; preds = %230
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  br label %245

245:                                              ; preds = %243, %241
  %.pn486 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %20) #10
  br label %246

246:                                              ; preds = %245, %239
  %.pn486.pn = phi { ptr, i32 } [ %.pn486, %245 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  br label %263

247:                                              ; preds = %231
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %262

249:                                              ; preds = %233
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %253

251:                                              ; preds = %234
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %23) #10
  br label %253

253:                                              ; preds = %251, %249
  %.pn489 = phi { ptr, i32 } [ %252, %251 ], [ %250, %249 ]
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  br label %262

254:                                              ; preds = %235
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %261

256:                                              ; preds = %236
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %260

258:                                              ; preds = %237
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %29) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #10
  br label %260

260:                                              ; preds = %258, %256
  %.pn491 = phi { ptr, i32 } [ %259, %258 ], [ %257, %256 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  br label %261

261:                                              ; preds = %260, %254
  %.pn491.pn = phi { ptr, i32 } [ %.pn491, %260 ], [ %255, %254 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %22) #10
  br label %262

262:                                              ; preds = %261, %253, %247
  %.pn491.pn.pn = phi { ptr, i32 } [ %.pn491.pn, %261 ], [ %.pn489, %253 ], [ %248, %247 ]
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %21) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  br label %263

263:                                              ; preds = %262, %246
  %.pn491.pn.pn.pn = phi { ptr, i32 } [ %.pn491.pn.pn, %262 ], [ %.pn486.pn, %246 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  br label %988

264:                                              ; preds = %238, %.lr.ph630
  %265 = load i32, ptr %17, align 4, !tbaa !9
  %266 = add i32 %265, 1
  store i32 %266, ptr %17, align 4, !tbaa !9
  %267 = zext i32 %266 to i64
  %268 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  %269 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %268) #10
  %270 = icmp ugt i64 %269, %267
  br i1 %270, label %.lr.ph630, label %._crit_edge631, !llvm.loop !12

._crit_edge3766:                                  ; preds = %.loopexit561, %._crit_edge631
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  %271 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %110) #10
  %272 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %271) #10
  store ptr %272, ptr %110, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #10
  %273 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %271) #10
  store ptr %273, ptr %111, align 8
  %274 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 8 dereferenceable(8) %111) #10
  br i1 %274, label %.lr.ph3768, label %._crit_edge3769

275:                                              ; preds = %.lr.ph3765, %.loopexit561
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  %277 = call noundef nonnull align 8 dereferenceable(568) ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %276) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %32) #10
  %278 = getelementptr inbounds i8, ptr %277, i64 72
  %279 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %278)
  call void @_ZN3HIR8ItemPathC2ERKS0_PKc(ptr noundef nonnull align 8 dereferenceable(56) %32, ptr noundef nonnull align 8 dereferenceable(56) %2, ptr noundef %279)
  %280 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %281 unwind label %298

281:                                              ; preds = %275
  br i1 %280, label %282, label %.lr.ph3761

282:                                              ; preds = %281
  %283 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %283, ptr noundef nonnull @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %285 unwind label %298

285:                                              ; preds = %282
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull align 8 dereferenceable(56) %32)
          to label %287 unwind label %298

287:                                              ; preds = %285
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull @.str.17)
          to label %289 unwind label %298

289:                                              ; preds = %287
  %290 = getelementptr inbounds i8, ptr %277, i64 80
  %291 = invoke noundef ptr @_ZNK3AST4Item7tag_strEv(ptr noundef nonnull align 8 dereferenceable(488) %290)
          to label %292 unwind label %298

292:                                              ; preds = %289
  %293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %288, ptr noundef %291)
          to label %294 unwind label %298

294:                                              ; preds = %292
  %295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %293, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %296 unwind label %298

296:                                              ; preds = %294
  %297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.lr.ph3761 unwind label %298

298:                                              ; preds = %296, %294, %292, %289, %287, %285, %282, %275
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %571

.loopexit561:                                     ; preds = %.preheader539, %.preheader537, %.preheader535, %.preheader529, %.preheader527, %.preheader525, %.lr.ph3761, %..loopexit511_crit_edge, %..loopexit515_crit_edge, %..loopexit516_crit_edge, %..loopexit520_crit_edge, %..loopexit521_crit_edge, %..loopexit522_crit_edge, %..loopexit523_crit_edge, %..loopexit524_crit_edge, %..loopexit510_crit_edge, %431, %..loopexit517_crit_edge, %..loopexit518_crit_edge, %..loopexit519_crit_edge
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %32) #10
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  %301 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  br i1 %301, label %275, label %._crit_edge3766

.lr.ph3761:                                       ; preds = %281, %296
  %302 = getelementptr inbounds i8, ptr %277, i64 80
  %303 = getelementptr inbounds i8, ptr %277, i64 32
  %304 = getelementptr inbounds i8, ptr %277, i64 8
  %305 = call noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  switch i32 %305, label %.loopexit561 [
    i32 0, label %322
    i32 1, label %.preheader525
    i32 8, label %.preheader527
    i32 2, label %.preheader529
    i32 5, label %.lr.ph3488
    i32 4, label %.preheader533
    i32 6, label %.preheader535
    i32 7, label %.preheader537
    i32 3, label %.preheader539
    i32 9, label %.preheader541
    i32 10, label %.preheader543
    i32 11, label %.lr.ph2336
    i32 12, label %.lr.ph2333
    i32 13, label %.lr.ph2136
    i32 14, label %.preheader551
    i32 15, label %.preheader553
    i32 16, label %.preheader555
    i32 17, label %.preheader557
    i32 18, label %.preheader559
  ]

.preheader559:                                    ; preds = %.lr.ph3761
  %306 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %108, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %564 unwind label %.split.split

.preheader557:                                    ; preds = %.lr.ph3761
  %307 = call noundef nonnull align 8 dereferenceable(368) ptr @_ZNK3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %102, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %551 unwind label %.split989.split

.preheader555:                                    ; preds = %.lr.ph3761
  %308 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %98, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %541 unwind label %.split1243.split

.preheader553:                                    ; preds = %.lr.ph3761
  %309 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK3AST4Item8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %93, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %528 unwind label %.split1621.split

.preheader551:                                    ; preds = %.lr.ph3761
  %310 = call noundef nonnull align 8 dereferenceable(76) ptr @_ZNK3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %89, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %518 unwind label %.split1875.split

.preheader543:                                    ; preds = %.lr.ph3761
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %52, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %392 unwind label %.split2357.split

.preheader541:                                    ; preds = %.lr.ph3761
  %312 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNK3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %46, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %382 unwind label %.split2661.split

.preheader539:                                    ; preds = %.lr.ph3761
  %313 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  br label %.loopexit561

.preheader537:                                    ; preds = %.lr.ph3761
  %314 = call noundef nonnull align 8 dereferenceable(448) ptr @_ZNK3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  br label %.loopexit561

.preheader535:                                    ; preds = %.lr.ph3761
  %315 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNK3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  br label %.loopexit561

.preheader533:                                    ; preds = %.lr.ph3761
  %316 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  %317 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST11ExternBlock5itemsEv(ptr noundef nonnull align 8 dereferenceable(80) %316)
  %318 = call noundef i64 @_ZNKSt6vectorIN3AST5NamedINS0_4ItemEEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %317) #10
  %.not472 = icmp eq i64 %318, 0
  br i1 %.not472, label %367, label %.split3199

.preheader529:                                    ; preds = %.lr.ph3761
  %319 = call noundef nonnull align 8 dereferenceable(393) ptr @_ZNK3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  br label %.loopexit561

.preheader527:                                    ; preds = %.lr.ph3761
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST4Item8as_MacroEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  br label %.loopexit561

.preheader525:                                    ; preds = %.lr.ph3761
  %321 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  br label %.loopexit561

322:                                              ; preds = %.lr.ph3761
  call void @__assert_fail(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.5, i32 noundef 1895, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

.lr.ph3488:                                       ; preds = %.lr.ph3761
  %323 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZNK3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  %324 = getelementptr inbounds i8, ptr %323, i64 24
  %325 = getelementptr inbounds i8, ptr %323, i64 48
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %33) #10
  invoke void @_ZN3HIR14GlobalAssemblyC2Ev(ptr noundef nonnull align 8 dereferenceable(52) %33)
          to label %326 unwind label %337

326:                                              ; preds = %.lr.ph3488
  %327 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN9AsmCommon4LineESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull align 8 dereferenceable(24) %323)
          to label %328 unwind label %339

328:                                              ; preds = %326
  %329 = call noundef i64 @_ZNKSt6vectorIN3AST4PathESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %324) #10
  invoke void @_ZNSt6vectorIN3HIR4PathESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %216, i64 noundef %329)
          to label %330 unwind label %339

330:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #10
  %331 = call ptr @_ZNKSt6vectorIN3AST4PathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %324) #10
  store ptr %331, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #10
  %332 = call ptr @_ZNKSt6vectorIN3AST4PathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %324) #10
  store ptr %332, ptr %35, align 8
  %333 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST4PathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  br i1 %333, label %.lr.ph3485, label %._crit_edge3486

._crit_edge3486:                                  ; preds = %343, %330
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  %334 = load i8, ptr %325, align 8, !tbaa !14
  store i8 %334, ptr %217, align 8, !tbaa !14
  %335 = load ptr, ptr @g_crate_ptr, align 8, !tbaa !5
  %336 = getelementptr inbounds i8, ptr %335, i64 520
  invoke void @_ZNSt6vectorIN3HIR14GlobalAssemblyESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %336, ptr noundef nonnull align 8 dereferenceable(52) %33)
          to label %..loopexit510_crit_edge unwind label %339

337:                                              ; preds = %.lr.ph3488
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %352

339:                                              ; preds = %._crit_edge3486, %328, %326
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %351

.lr.ph3485:                                       ; preds = %330, %343
  %341 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST4PathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %36) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #10
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37)
  invoke void @_Z13LowerHIR_PathRK4SpanRKN3AST4PathE17FromAST_PathClass(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Path") align 8 %36, ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(240) %341, i32 noundef 1)
          to label %342 unwind label %346

342:                                              ; preds = %.lr.ph3485
  invoke void @_ZNSt6vectorIN3HIR4PathESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %216, ptr noundef nonnull align 8 dereferenceable(88) %36)
          to label %343 unwind label %348

343:                                              ; preds = %342
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %36) #10
  %344 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST4PathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  %345 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST4PathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  br i1 %345, label %.lr.ph3485, label %._crit_edge3486

346:                                              ; preds = %.lr.ph3485
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %350

348:                                              ; preds = %342
  %349 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #10
  br label %350

350:                                              ; preds = %348, %346
  %.pn480 = phi { ptr, i32 } [ %349, %348 ], [ %347, %346 ]
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  br label %351

..loopexit510_crit_edge:                          ; preds = %._crit_edge3486
  call void @_ZN3HIR14GlobalAssemblyD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %33) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %33) #10
  br label %.loopexit561

351:                                              ; preds = %350, %339
  %.pn480.pn = phi { ptr, i32 } [ %.pn480, %350 ], [ %340, %339 ]
  call void @_ZN3HIR14GlobalAssemblyD2Ev(ptr noundef nonnull align 8 dereferenceable(52) %33) #10
  br label %352

352:                                              ; preds = %351, %337
  %.pn480.pn.pn = phi { ptr, i32 } [ %.pn480.pn, %351 ], [ %338, %337 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %33) #10
  br label %571

.split3199:                                       ; preds = %.preheader533
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #10
  store ptr @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #10
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %277)
          to label %353 unwind label %357

353:                                              ; preds = %.split3199
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #10
  store ptr %38, ptr %41, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull %40)
          to label %354 unwind label %359

354:                                              ; preds = %353
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #10
  %355 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %355, ptr noundef nonnull @.str.8)
          to label %356 unwind label %362

356:                                              ; preds = %354
  invoke void @__cxa_throw(ptr nonnull %355, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %991 unwind label %364

357:                                              ; preds = %.split3199
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %361

359:                                              ; preds = %353
  %360 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  br label %361

361:                                              ; preds = %359, %357
  %.pn475 = phi { ptr, i32 } [ %360, %359 ], [ %358, %357 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #10
  br label %366

362:                                              ; preds = %354
  %363 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %355) #10
  br label %366

364:                                              ; preds = %356
  %365 = landingpad { ptr, i32 }
          cleanup
  br label %366

366:                                              ; preds = %364, %362, %361
  %.pn477 = phi { ptr, i32 } [ %365, %364 ], [ %363, %362 ], [ %.pn475, %361 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  br label %571

367:                                              ; preds = %.preheader533
  %368 = getelementptr inbounds i8, ptr %316, i64 56
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #10
  %369 = call ptr @_ZNKSt6vectorIN3AST11ExternBlock4LinkESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %368) #10
  store ptr %369, ptr %42, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #10
  %370 = call ptr @_ZNKSt6vectorIN3AST11ExternBlock4LinkESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %368) #10
  store ptr %370, ptr %43, align 8
  %371 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #10
  br i1 %371, label %.lr.ph3194, label %..loopexit511_crit_edge

..loopexit511_crit_edge:                          ; preds = %376, %367
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #10
  br label %.loopexit561

.lr.ph3194:                                       ; preds = %367, %376
  %372 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #10
  %373 = load ptr, ptr @g_crate_ptr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %372)
          to label %374 unwind label %.split3202.split

374:                                              ; preds = %.lr.ph3194
  %375 = getelementptr inbounds i8, ptr %373, i64 896
  invoke void @_ZNSt6vectorIN3HIR13ExternLibraryESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %375, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %376 unwind label %.split3205.split

376:                                              ; preds = %374
  call void @_ZN3HIR13ExternLibraryD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  %377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #10
  %378 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #10
  br i1 %378, label %.lr.ph3194, label %..loopexit511_crit_edge

.split3202.split:                                 ; preds = %.lr.ph3194
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %381

.split3205.split:                                 ; preds = %374
  %380 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR13ExternLibraryD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %381

381:                                              ; preds = %.split3205.split, %.split3202.split
  %.pn473 = phi { ptr, i32 } [ %380, %.split3205.split ], [ %379, %.split3202.split ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #10
  br label %571

382:                                              ; preds = %.preheader541
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %49, ptr noundef nonnull align 8 dereferenceable(56) %32, i64 56, i1 false), !tbaa.struct !11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %50, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #10
  invoke void @_Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Module") align 8 %48, ptr noundef nonnull align 8 dereferenceable(480) %312, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %49, ptr noundef nonnull %50)
          to label %383 unwind label %.split2664.split

383:                                              ; preds = %382
  invoke void @_ZN3HIR8TypeItemC2ENS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(408) %47, ptr noundef nonnull %48)
          to label %384 unwind label %.split2667.split

384:                                              ; preds = %383
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef nonnull %47)
          to label %..loopexit515_crit_edge unwind label %.split2670.split

..loopexit515_crit_edge:                          ; preds = %384
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %47) #10
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %48) #10
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  br label %.loopexit561

.split2661.split:                                 ; preds = %.preheader541
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %391

.split2664.split:                                 ; preds = %382
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %390

.split2667.split:                                 ; preds = %383
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %389

.split2670.split:                                 ; preds = %384
  %388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %47) #10
  br label %389

389:                                              ; preds = %.split2670.split, %.split2667.split
  %.pn468 = phi { ptr, i32 } [ %388, %.split2670.split ], [ %387, %.split2667.split ]
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %48) #10
  br label %390

390:                                              ; preds = %389, %.split2664.split
  %.pn468.pn = phi { ptr, i32 } [ %.pn468, %389 ], [ %386, %.split2664.split ]
  call void @_ZNSt6vectorIN3HIR10SimplePathESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #10
  br label %391

391:                                              ; preds = %390, %.split2661.split
  %.pn468.pn.pn = phi { ptr, i32 } [ %.pn468.pn, %390 ], [ %385, %.split2661.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  br label %571

392:                                              ; preds = %.preheader543
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %311)
  call void @_ZNSt16initializer_listI8RcStringEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #10
  %393 = load ptr, ptr %56, align 8
  %394 = load i64, ptr %213, align 8
  invoke void @_ZN3HIR10SimplePathC2E8RcStringSt16initializer_listIS1_E(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull %55, ptr %393, i64 %394)
          to label %395 unwind label %.split2360.split

395:                                              ; preds = %392
  store i8 0, ptr %214, align 8, !tbaa !15
  store i32 0, ptr %215, align 4, !tbaa !20
  invoke void @_ZN3HIR8TypeItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeItem") align 8 %53, ptr noundef nonnull %54)
          to label %396 unwind label %.split2363.split

396:                                              ; preds = %395
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull %53)
          to label %..loopexit516_crit_edge unwind label %.split2366.split

..loopexit516_crit_edge:                          ; preds = %396
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %53) #10
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  br label %.loopexit561

.split2357.split:                                 ; preds = %.preheader543
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %403

.split2360.split:                                 ; preds = %392
  %398 = landingpad { ptr, i32 }
          cleanup
  br label %402

.split2363.split:                                 ; preds = %395
  %399 = landingpad { ptr, i32 }
          cleanup
  br label %401

.split2366.split:                                 ; preds = %396
  %400 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %53) #10
  br label %401

401:                                              ; preds = %.split2366.split, %.split2363.split
  %.pn464 = phi { ptr, i32 } [ %400, %.split2366.split ], [ %399, %.split2363.split ]
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #10
  br label %402

402:                                              ; preds = %401, %.split2360.split
  %.pn464.pn = phi { ptr, i32 } [ %.pn464, %401 ], [ %398, %.split2360.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #10
  br label %403

403:                                              ; preds = %402, %.split2357.split
  %.pn464.pn.pn = phi { ptr, i32 } [ %.pn464.pn, %402 ], [ %397, %.split2357.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  br label %571

.lr.ph2336:                                       ; preds = %.lr.ph3761
  %404 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZNK3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  %405 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNK3AST9TypeAlias4typeEv(ptr noundef nonnull align 8 dereferenceable(216) %404)
  %406 = getelementptr inbounds i8, ptr %405, i64 8
  %407 = call noundef zeroext i1 @_ZNK8TypeData6is_AnyEv(ptr noundef nonnull align 8 dereferenceable(112) %406)
  br i1 %407, label %.split2338, label %440

408:                                              ; preds = %420
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %571

.split2338:                                       ; preds = %.lr.ph2336
  %410 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3AST9TypeAlias6paramsEv(ptr noundef nonnull align 8 dereferenceable(216) %404)
  %411 = call noundef zeroext i1 @_ZNKSt6vectorIN3AST12GenericParamESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %410) #10
  br i1 %411, label %412, label %416

412:                                              ; preds = %.split2338
  %413 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK3AST9TypeAlias6paramsEv(ptr noundef nonnull align 8 dereferenceable(216) %404)
  %414 = getelementptr inbounds i8, ptr %413, i64 24
  %415 = call noundef zeroext i1 @_ZNKSt6vectorIN3AST12GenericBoundESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %414) #10
  br i1 %415, label %428, label %416

416:                                              ; preds = %.split2338, %412
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #10
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %277)
          to label %417 unwind label %421

417:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #10
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %57, i32 noundef 0, ptr noundef nonnull %58)
          to label %418 unwind label %423

418:                                              ; preds = %417
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #10
  %419 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %419, ptr noundef nonnull @.str.12)
          to label %420 unwind label %426

420:                                              ; preds = %418
  invoke void @__cxa_throw(ptr nonnull %419, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %991 unwind label %408

421:                                              ; preds = %416
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %425

423:                                              ; preds = %417
  %424 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #10
  br label %425

425:                                              ; preds = %423, %421
  %.pn458 = phi { ptr, i32 } [ %424, %423 ], [ %422, %421 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #10
  br label %571

426:                                              ; preds = %418
  %427 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %419) #10
  br label %571

428:                                              ; preds = %412
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %61, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %429 unwind label %432

429:                                              ; preds = %428
  store i8 0, ptr %63, align 8, !tbaa !21
  store i8 0, ptr %210, align 1, !tbaa !32
  store i8 0, ptr %211, align 2, !tbaa !33
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %212, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %212) #10
  invoke void @_ZN3HIR8TypeItemC2ENS_10ExternTypeE(ptr noundef nonnull align 8 dereferenceable(408) %62, ptr noundef nonnull %63)
          to label %430 unwind label %434

430:                                              ; preds = %429
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %60, ptr noundef nonnull %61, ptr noundef nonnull %62)
          to label %431 unwind label %436

431:                                              ; preds = %430
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %62) #10
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %63) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  br label %.loopexit561

432:                                              ; preds = %428
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %439

434:                                              ; preds = %429
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %438

436:                                              ; preds = %430
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %62) #10
  br label %438

438:                                              ; preds = %436, %434
  %.pn460 = phi { ptr, i32 } [ %437, %436 ], [ %435, %434 ]
  call void @_ZN3HIR10ExternTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %63) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #10
  br label %439

439:                                              ; preds = %438, %432
  %.pn460.pn = phi { ptr, i32 } [ %.pn460, %438 ], [ %433, %432 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  br label %571

440:                                              ; preds = %.lr.ph2336
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %65, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %441 unwind label %.split2340

441:                                              ; preds = %440
  invoke void @_Z18LowerHIR_TypeAliasRKN3HIR8ItemPathERKN3AST9TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::TypeAlias") align 8 %67, ptr noundef nonnull align 8 dereferenceable(56) %32, ptr noundef nonnull align 8 dereferenceable(216) %404)
          to label %442 unwind label %.split2343

442:                                              ; preds = %441
  invoke void @_ZN3HIR8TypeItem14make_TypeAliasENS_9TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeItem") align 8 %66, ptr noundef nonnull %67)
          to label %443 unwind label %.split2346

443:                                              ; preds = %442
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66)
          to label %..loopexit517_crit_edge unwind label %.split2349

..loopexit517_crit_edge:                          ; preds = %443
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %66) #10
  call void @_ZN3HIR9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %67) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  br label %.loopexit561

.split2340:                                       ; preds = %440
  %444 = landingpad { ptr, i32 }
          cleanup
  br label %450

.split2343:                                       ; preds = %441
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %449

.split2346:                                       ; preds = %442
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %448

.split2349:                                       ; preds = %443
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %66) #10
  br label %448

448:                                              ; preds = %.split2349, %.split2346
  %.pn454 = phi { ptr, i32 } [ %447, %.split2349 ], [ %446, %.split2346 ]
  call void @_ZN3HIR9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %67) #10
  br label %449

449:                                              ; preds = %448, %.split2343
  %.pn454.pn = phi { ptr, i32 } [ %.pn454, %448 ], [ %445, %.split2343 ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #10
  br label %450

450:                                              ; preds = %449, %.split2340
  %.pn454.pn.pn = phi { ptr, i32 } [ %.pn454.pn, %449 ], [ %444, %.split2340 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  br label %571

.lr.ph2333:                                       ; preds = %.lr.ph3761
  %451 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZNK3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  %452 = getelementptr inbounds i8, ptr %451, i64 48
  %453 = call noundef zeroext i1 @_ZNK3AST10StructData7is_UnitEv(ptr noundef nonnull align 8 dereferenceable(32) %452)
  br i1 %453, label %454, label %470

454:                                              ; preds = %.lr.ph2333
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %69, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %455 unwind label %459

455:                                              ; preds = %454
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %71, ptr noundef nonnull align 8 dereferenceable(56) %32)
          to label %456 unwind label %461

456:                                              ; preds = %455
  invoke void @_ZN3HIR9ValueItem19make_StructConstantENS0_19Data_StructConstantE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ValueItem") align 8 %70, ptr noundef nonnull %71)
          to label %457 unwind label %463

457:                                              ; preds = %456
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %68, ptr noundef nonnull %69, ptr noundef nonnull %70)
          to label %458 unwind label %465

458:                                              ; preds = %457
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %70) #10
  call void @_ZN3HIR9ValueItem19Data_StructConstantD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  br label %.sink.split

459:                                              ; preds = %454
  %460 = landingpad { ptr, i32 }
          cleanup
  br label %469

461:                                              ; preds = %455
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %468

463:                                              ; preds = %456
  %464 = landingpad { ptr, i32 }
          cleanup
  br label %467

465:                                              ; preds = %457
  %466 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %70) #10
  br label %467

467:                                              ; preds = %465, %463
  %.pn445 = phi { ptr, i32 } [ %466, %465 ], [ %464, %463 ]
  call void @_ZN3HIR9ValueItem19Data_StructConstantD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  br label %468

468:                                              ; preds = %467, %461
  %.pn445.pn = phi { ptr, i32 } [ %.pn445, %467 ], [ %462, %461 ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #10
  br label %469

469:                                              ; preds = %468, %459
  %.pn445.pn.pn = phi { ptr, i32 } [ %.pn445.pn, %468 ], [ %460, %459 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  br label %571

470:                                              ; preds = %.lr.ph2333
  %471 = call noundef zeroext i1 @_ZNK3AST10StructData8is_TupleEv(ptr noundef nonnull align 8 dereferenceable(32) %452)
  br i1 %471, label %472, label %488

472:                                              ; preds = %470
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %73, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %473 unwind label %477

473:                                              ; preds = %472
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %75, ptr noundef nonnull align 8 dereferenceable(56) %32)
          to label %474 unwind label %479

474:                                              ; preds = %473
  invoke void @_ZN3HIR9ValueItem22make_StructConstructorENS0_22Data_StructConstructorE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ValueItem") align 8 %74, ptr noundef nonnull %75)
          to label %475 unwind label %481

475:                                              ; preds = %474
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %72, ptr noundef nonnull %73, ptr noundef nonnull %74)
          to label %476 unwind label %483

476:                                              ; preds = %475
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %74) #10
  call void @_ZN3HIR9ValueItem22Data_StructConstructorD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  br label %.sink.split

477:                                              ; preds = %472
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %487

479:                                              ; preds = %473
  %480 = landingpad { ptr, i32 }
          cleanup
  br label %486

481:                                              ; preds = %474
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %485

483:                                              ; preds = %475
  %484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %74) #10
  br label %485

485:                                              ; preds = %483, %481
  %.pn441 = phi { ptr, i32 } [ %484, %483 ], [ %482, %481 ]
  call void @_ZN3HIR9ValueItem22Data_StructConstructorD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  br label %486

486:                                              ; preds = %485, %479
  %.pn441.pn = phi { ptr, i32 } [ %.pn441, %485 ], [ %480, %479 ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #10
  br label %487

487:                                              ; preds = %486, %477
  %.pn441.pn.pn = phi { ptr, i32 } [ %.pn441.pn, %486 ], [ %478, %477 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  br label %571

.sink.split:                                      ; preds = %458, %476
  %.sink4018 = phi ptr [ %73, %476 ], [ %69, %458 ]
  %.sink = phi ptr [ %72, %476 ], [ %68, %458 ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %.sink4018) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %.sink) #10
  br label %488

488:                                              ; preds = %.sink.split, %470
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %77, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %489 unwind label %493

489:                                              ; preds = %488
  %490 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %276) #10
  invoke void @_Z15LowerHIR_StructRK4SpanN3HIR8ItemPathERKN3AST6StructERKNS4_13AttributeListE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Struct") align 8 %79, ptr noundef nonnull align 8 dereferenceable(8) %490, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %32, ptr noundef nonnull align 8 dereferenceable(152) %451, ptr noundef nonnull align 8 dereferenceable(24) %304)
          to label %491 unwind label %495

491:                                              ; preds = %489
  invoke void @_ZN3HIR8TypeItemC2ENS_6StructE(ptr noundef nonnull align 8 dereferenceable(408) %78, ptr noundef nonnull %79)
          to label %492 unwind label %497

492:                                              ; preds = %491
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %76, ptr noundef nonnull %77, ptr noundef nonnull %78)
          to label %..loopexit518_crit_edge unwind label %499

..loopexit518_crit_edge:                          ; preds = %492
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %78) #10
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %79) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  br label %.loopexit561

493:                                              ; preds = %488
  %494 = landingpad { ptr, i32 }
          cleanup
  br label %503

495:                                              ; preds = %489
  %496 = landingpad { ptr, i32 }
          cleanup
  br label %502

497:                                              ; preds = %491
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %501

499:                                              ; preds = %492
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %78) #10
  br label %501

501:                                              ; preds = %499, %497
  %.pn449 = phi { ptr, i32 } [ %500, %499 ], [ %498, %497 ]
  call void @_ZN3HIR6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(252) %79) #10
  br label %502

502:                                              ; preds = %501, %495
  %.pn449.pn = phi { ptr, i32 } [ %.pn449, %501 ], [ %496, %495 ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #10
  br label %503

503:                                              ; preds = %502, %493
  %.pn449.pn.pn = phi { ptr, i32 } [ %.pn449.pn, %502 ], [ %494, %493 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  br label %571

.lr.ph2136:                                       ; preds = %.lr.ph3761
  %504 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488) %302)
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %80) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %81, ptr noundef nonnull align 8 dereferenceable(56) %32, i64 56, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %83) #10
  store ptr %0, ptr %83, align 8, !tbaa !5
  store ptr %9, ptr %208, align 8, !tbaa !5
  store ptr %277, ptr %209, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFv8RcStringN3HIR6StructEEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleENS1_8ItemPathESt6vectorINS1_10SimplePathESaISC_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(24) %83)
          to label %505 unwind label %.split2138

505:                                              ; preds = %.lr.ph2136
  invoke void @_Z13LowerHIR_EnumN3HIR8ItemPathERKN3AST4EnumERKNS1_13AttributeListESt8functionIFv8RcStringNS_6StructEEE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Enum") align 8 %80, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %81, ptr noundef nonnull align 8 dereferenceable(80) %504, ptr noundef nonnull align 8 dereferenceable(24) %304, ptr noundef nonnull %82)
          to label %506 unwind label %.split2141

506:                                              ; preds = %505
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %83) #10
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %278)
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %85, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %303)
          to label %507 unwind label %.split2144

507:                                              ; preds = %506
  call void @_ZN3HIR4EnumC2EOS0_(ptr noundef nonnull align 8 dereferenceable(200) %87, ptr noundef nonnull align 8 dereferenceable(200) %80) #10
  invoke void @_ZN3HIR8TypeItemC2ENS_4EnumE(ptr noundef nonnull align 8 dereferenceable(408) %86, ptr noundef nonnull %87)
          to label %508 unwind label %.split2147

508:                                              ; preds = %507
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %84, ptr noundef nonnull %85, ptr noundef nonnull %86)
          to label %..loopexit519_crit_edge unwind label %.split2150

..loopexit519_crit_edge:                          ; preds = %508
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %86) #10
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %87) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %80) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %80) #10
  br label %.loopexit561

.split2138:                                       ; preds = %.lr.ph2136
  %509 = landingpad { ptr, i32 }
          cleanup
  br label %511

.split2141:                                       ; preds = %505
  %510 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  br label %511

511:                                              ; preds = %.split2141, %.split2138
  %.pn435 = phi { ptr, i32 } [ %510, %.split2141 ], [ %509, %.split2138 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %83) #10
  br label %517

.split2144:                                       ; preds = %506
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %516

.split2147:                                       ; preds = %507
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %515

.split2150:                                       ; preds = %508
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %86) #10
  br label %515

515:                                              ; preds = %.split2150, %.split2147
  %.pn437 = phi { ptr, i32 } [ %514, %.split2150 ], [ %513, %.split2147 ]
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %87) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %85) #10
  br label %516

516:                                              ; preds = %515, %.split2144
  %.pn437.pn = phi { ptr, i32 } [ %.pn437, %515 ], [ %512, %.split2144 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  call void @_ZN3HIR4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %80) #10
  br label %517

517:                                              ; preds = %516, %511
  %.pn437.pn.pn = phi { ptr, i32 } [ %.pn437.pn, %516 ], [ %.pn435, %511 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %80) #10
  br label %571

518:                                              ; preds = %.preheader551
  invoke void @_Z14LowerHIR_UnionN3HIR8ItemPathERKN3AST5UnionERKNS1_13AttributeListE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Union") align 8 %91, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %32, ptr noundef nonnull align 8 dereferenceable(76) %310, ptr noundef nonnull align 8 dereferenceable(24) %304)
          to label %519 unwind label %.split1878.split

519:                                              ; preds = %518
  invoke void @_ZN3HIR8TypeItemC2ENS_5UnionE(ptr noundef nonnull align 8 dereferenceable(408) %90, ptr noundef nonnull %91)
          to label %520 unwind label %.split1881.split

520:                                              ; preds = %519
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %88, ptr noundef nonnull %89, ptr noundef nonnull %90)
          to label %..loopexit520_crit_edge unwind label %.split1884.split

..loopexit520_crit_edge:                          ; preds = %520
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %90) #10
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %91) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #10
  br label %.loopexit561

.split1875.split:                                 ; preds = %.preheader551
  %521 = landingpad { ptr, i32 }
          cleanup
  br label %527

.split1878.split:                                 ; preds = %518
  %522 = landingpad { ptr, i32 }
          cleanup
  br label %526

.split1881.split:                                 ; preds = %519
  %523 = landingpad { ptr, i32 }
          cleanup
  br label %525

.split1884.split:                                 ; preds = %520
  %524 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %90) #10
  br label %525

525:                                              ; preds = %.split1884.split, %.split1881.split
  %.pn431 = phi { ptr, i32 } [ %524, %.split1884.split ], [ %523, %.split1881.split ]
  call void @_ZN3HIR5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %91) #10
  br label %526

526:                                              ; preds = %525, %.split1878.split
  %.pn431.pn = phi { ptr, i32 } [ %.pn431, %525 ], [ %522, %.split1878.split ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %89) #10
  br label %527

527:                                              ; preds = %526, %.split1875.split
  %.pn431.pn.pn = phi { ptr, i32 } [ %.pn431.pn, %526 ], [ %521, %.split1875.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #10
  br label %571

528:                                              ; preds = %.preheader553
  invoke void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %96, ptr noundef nonnull align 8 dereferenceable(56) %32)
          to label %529 unwind label %.split1624.split

529:                                              ; preds = %528
  invoke void @_Z14LowerHIR_TraitN3HIR10SimplePathERKN3AST5TraitE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Trait") align 8 %95, ptr noundef nonnull %96, ptr noundef nonnull align 8 dereferenceable(128) %309)
          to label %530 unwind label %.split1627.split

530:                                              ; preds = %529
  invoke void @_ZN3HIR8TypeItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(408) %94, ptr noundef nonnull %95)
          to label %531 unwind label %.split1630.split

531:                                              ; preds = %530
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %92, ptr noundef nonnull %93, ptr noundef nonnull %94)
          to label %..loopexit521_crit_edge unwind label %.split1633.split

..loopexit521_crit_edge:                          ; preds = %531
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %94) #10
  call void @_ZN3HIR5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(400) %95) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  br label %.loopexit561

.split1621.split:                                 ; preds = %.preheader553
  %532 = landingpad { ptr, i32 }
          cleanup
  br label %540

.split1624.split:                                 ; preds = %528
  %533 = landingpad { ptr, i32 }
          cleanup
  br label %539

.split1627.split:                                 ; preds = %529
  %534 = landingpad { ptr, i32 }
          cleanup
  br label %538

.split1630.split:                                 ; preds = %530
  %535 = landingpad { ptr, i32 }
          cleanup
  br label %537

.split1633.split:                                 ; preds = %531
  %536 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %94) #10
  br label %537

537:                                              ; preds = %.split1633.split, %.split1630.split
  %.pn426 = phi { ptr, i32 } [ %536, %.split1633.split ], [ %535, %.split1630.split ]
  call void @_ZN3HIR5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(400) %95) #10
  br label %538

538:                                              ; preds = %537, %.split1627.split
  %.pn426.pn = phi { ptr, i32 } [ %.pn426, %537 ], [ %534, %.split1627.split ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #10
  br label %539

539:                                              ; preds = %538, %.split1624.split
  %.pn426.pn.pn = phi { ptr, i32 } [ %.pn426.pn, %538 ], [ %533, %.split1624.split ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %93) #10
  br label %540

540:                                              ; preds = %539, %.split1621.split
  %.pn426.pn.pn.pn = phi { ptr, i32 } [ %.pn426.pn.pn, %539 ], [ %532, %.split1621.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  br label %571

541:                                              ; preds = %.preheader555
  invoke void @_Z19LowerHIR_TraitAliasRK4SpanN3HIR8ItemPathERKN3AST10TraitAliasE(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::TraitAlias") align 8 %100, ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %32, ptr noundef nonnull align 8 dereferenceable(72) %308)
          to label %542 unwind label %.split1246.split

542:                                              ; preds = %541
  invoke void @_ZN3HIR8TypeItemC2ENS_10TraitAliasE(ptr noundef nonnull align 8 dereferenceable(408) %99, ptr noundef nonnull %100)
          to label %543 unwind label %.split1249.split

543:                                              ; preds = %542
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef nonnull %99)
          to label %..loopexit522_crit_edge unwind label %.split1252.split

..loopexit522_crit_edge:                          ; preds = %543
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %99) #10
  call void @_ZN3HIR10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %100) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #10
  br label %.loopexit561

.split1243.split:                                 ; preds = %.preheader555
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %550

.split1246.split:                                 ; preds = %541
  %545 = landingpad { ptr, i32 }
          cleanup
  br label %549

.split1249.split:                                 ; preds = %542
  %546 = landingpad { ptr, i32 }
          cleanup
  br label %548

.split1252.split:                                 ; preds = %543
  %547 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %99) #10
  br label %548

548:                                              ; preds = %.split1252.split, %.split1249.split
  %.pn422 = phi { ptr, i32 } [ %547, %.split1252.split ], [ %546, %.split1249.split ]
  call void @_ZN3HIR10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(120) %100) #10
  br label %549

549:                                              ; preds = %548, %.split1246.split
  %.pn422.pn = phi { ptr, i32 } [ %.pn422, %548 ], [ %545, %.split1246.split ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #10
  br label %550

550:                                              ; preds = %549, %.split1243.split
  %.pn422.pn.pn = phi { ptr, i32 } [ %.pn422.pn, %549 ], [ %544, %.split1243.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #10
  br label %571

551:                                              ; preds = %.preheader557
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %105, ptr noundef nonnull align 8 dereferenceable(56) %32, i64 56, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %106) #10
  invoke void @_ZN3HIR7TypeRefC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %552 unwind label %.split992.split

552:                                              ; preds = %551
  invoke void @_Z17LowerHIR_FunctionN3HIR8ItemPathERKN3AST13AttributeListERKNS1_8FunctionERKNS_7TypeRefE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Function") align 8 %104, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %105, ptr noundef nonnull align 8 dereferenceable(24) %304, ptr noundef nonnull align 8 dereferenceable(368) %307, ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %553 unwind label %.split995.split

553:                                              ; preds = %552
  invoke void @_ZN3HIR9ValueItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(368) %103, ptr noundef nonnull %104)
          to label %554 unwind label %.split998.split

554:                                              ; preds = %553
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %101, ptr noundef nonnull %102, ptr noundef nonnull %103)
          to label %..loopexit523_crit_edge unwind label %.split1001.split

..loopexit523_crit_edge:                          ; preds = %554
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %103) #10
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %104) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #10
  br label %.loopexit561

.split989.split:                                  ; preds = %.preheader557
  %555 = landingpad { ptr, i32 }
          cleanup
  br label %563

.split992.split:                                  ; preds = %551
  %556 = landingpad { ptr, i32 }
          cleanup
  br label %562

.split995.split:                                  ; preds = %552
  %557 = landingpad { ptr, i32 }
          cleanup
  br label %561

.split998.split:                                  ; preds = %553
  %558 = landingpad { ptr, i32 }
          cleanup
  br label %560

.split1001.split:                                 ; preds = %554
  %559 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %103) #10
  br label %560

560:                                              ; preds = %.split1001.split, %.split998.split
  %.pn417 = phi { ptr, i32 } [ %559, %.split1001.split ], [ %558, %.split998.split ]
  call void @_ZN3HIR8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(352) %104) #10
  br label %561

561:                                              ; preds = %560, %.split995.split
  %.pn417.pn = phi { ptr, i32 } [ %.pn417, %560 ], [ %557, %.split995.split ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #10
  br label %562

562:                                              ; preds = %561, %.split992.split
  %.pn417.pn.pn = phi { ptr, i32 } [ %.pn417.pn, %561 ], [ %556, %.split992.split ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %106) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %102) #10
  br label %563

563:                                              ; preds = %562, %.split989.split
  %.pn417.pn.pn.pn = phi { ptr, i32 } [ %.pn417.pn.pn, %562 ], [ %555, %.split989.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #10
  br label %571

564:                                              ; preds = %.preheader559
  invoke void @_Z15LowerHIR_StaticN3HIR8ItemPathERKN3AST13AttributeListERKNS1_6StaticERK4SpanRK8RcString(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ValueItem") align 8 %109, ptr noundef nonnull byval(%"class.HIR::ItemPath") align 8 %32, ptr noundef nonnull align 8 dereferenceable(24) %304, ptr noundef nonnull align 8 dereferenceable(216) %306, ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef nonnull align 8 dereferenceable(8) %278)
          to label %565 unwind label %.split635.split

565:                                              ; preds = %564
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %107, ptr noundef nonnull %108, ptr noundef nonnull %109)
          to label %..loopexit524_crit_edge unwind label %.split638.split

..loopexit524_crit_edge:                          ; preds = %565
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %109) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #10
  br label %.loopexit561

.split.split:                                     ; preds = %.preheader559
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %570

.split635.split:                                  ; preds = %564
  %567 = landingpad { ptr, i32 }
          cleanup
  br label %569

.split638.split:                                  ; preds = %565
  %568 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %109) #10
  br label %569

569:                                              ; preds = %.split638.split, %.split635.split
  %.pn414 = phi { ptr, i32 } [ %568, %.split638.split ], [ %567, %.split635.split ]
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %108) #10
  br label %570

570:                                              ; preds = %569, %.split.split
  %.pn414.pn = phi { ptr, i32 } [ %.pn414, %569 ], [ %566, %.split.split ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #10
  br label %571

571:                                              ; preds = %352, %391, %403, %517, %527, %540, %550, %563, %570, %381, %366, %450, %439, %426, %425, %408, %503, %487, %469, %298
  %.pn414.pn.pn.pn = phi { ptr, i32 } [ %299, %298 ], [ %.pn414.pn, %570 ], [ %.pn417.pn.pn.pn, %563 ], [ %.pn422.pn.pn, %550 ], [ %.pn426.pn.pn.pn, %540 ], [ %.pn431.pn.pn, %527 ], [ %.pn437.pn.pn, %517 ], [ %.pn464.pn.pn, %403 ], [ %.pn468.pn.pn, %391 ], [ %.pn480.pn.pn, %352 ], [ %.pn477, %366 ], [ %.pn473, %381 ], [ %.pn460.pn, %439 ], [ %409, %408 ], [ %427, %426 ], [ %.pn458, %425 ], [ %.pn454.pn.pn, %450 ], [ %.pn449.pn.pn, %503 ], [ %.pn445.pn.pn, %469 ], [ %.pn441.pn.pn, %487 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  br label %988

._crit_edge3769:                                  ; preds = %633, %._crit_edge3766
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #10
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122)
  %572 = getelementptr inbounds i8, ptr %1, i64 184
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #10
  %573 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %572) #10
  store ptr %573, ptr %123, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %124) #10
  %574 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %572) #10
  store ptr %574, ptr %124, align 8
  %575 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  br i1 %575, label %.lr.ph3771, label %._crit_edge3772

.lr.ph3771:                                       ; preds = %._crit_edge3769
  %576 = getelementptr inbounds i8, ptr %126, i64 8
  %577 = getelementptr inbounds i8, ptr %127, i64 8
  %578 = getelementptr inbounds i8, ptr %130, i64 8
  %579 = getelementptr inbounds i8, ptr %130, i64 12
  %580 = getelementptr inbounds i8, ptr %132, i64 8
  %581 = getelementptr inbounds i8, ptr %132, i64 12
  br label %647

.lr.ph3768:                                       ; preds = %._crit_edge3766, %633
  %582 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %110) #10
  %583 = getelementptr inbounds i8, ptr %582, i64 80
  %584 = call noundef zeroext i1 @_ZNK13MacroRulesPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %583)
  br i1 %584, label %588, label %585

585:                                              ; preds = %.lr.ph3768
  %586 = getelementptr inbounds i8, ptr %582, i64 32
  %587 = call noundef zeroext i1 @_ZNK3AST10Visibility9is_globalEv(ptr noundef nonnull align 8 dereferenceable(36) %586)
  br i1 %587, label %588, label %633

588:                                              ; preds = %.lr.ph3768, %585
  %589 = call noundef zeroext i1 @_ZNK13MacroRulesPtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %583)
  br i1 %589, label %603, label %590

590:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %112) #10
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %582)
          to label %591 unwind label %596

591:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #10
  store ptr %582, ptr %114, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(8) %114) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull %113)
          to label %592 unwind label %598

592:                                              ; preds = %591
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #10
  %593 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %593, ptr noundef nonnull @.str.9)
          to label %.invoke unwind label %601

594:                                              ; preds = %.invoke
  %595 = landingpad { ptr, i32 }
          cleanup
  br label %636

596:                                              ; preds = %590
  %597 = landingpad { ptr, i32 }
          cleanup
  br label %600

598:                                              ; preds = %591
  %599 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #10
  br label %600

600:                                              ; preds = %598, %596
  %.pn405 = phi { ptr, i32 } [ %599, %598 ], [ %597, %596 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %112) #10
  br label %636

601:                                              ; preds = %592
  %602 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %593) #10
  br label %636

603:                                              ; preds = %588
  %604 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %583)
  %605 = getelementptr inbounds i8, ptr %604, i64 40
  %606 = call noundef i64 @_ZNKSt6vectorI13MacroRulesArmSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %605) #10
  %.not407 = icmp eq i64 %606, 0
  br i1 %.not407, label %607, label %619

607:                                              ; preds = %603
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #10
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %582)
          to label %608 unwind label %612

608:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #10
  store ptr %582, ptr %117, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(8) %117) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull %116)
          to label %609 unwind label %614

609:                                              ; preds = %608
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #10
  %610 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %610, ptr noundef nonnull @.str.9)
          to label %.invoke unwind label %617

.invoke:                                          ; preds = %592, %609
  %611 = phi ptr [ %610, %609 ], [ %593, %592 ]
  invoke void @__cxa_throw(ptr nonnull %611, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %.cont unwind label %594

.cont:                                            ; preds = %.invoke
  unreachable

612:                                              ; preds = %607
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %616

614:                                              ; preds = %608
  %615 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  br label %616

616:                                              ; preds = %614, %612
  %.pn408 = phi { ptr, i32 } [ %615, %614 ], [ %613, %612 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #10
  br label %636

617:                                              ; preds = %609
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %610) #10
  br label %636

619:                                              ; preds = %603
  %620 = getelementptr inbounds i8, ptr %582, i64 72
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef nonnull align 8 dereferenceable(8) %620)
  %621 = getelementptr inbounds i8, ptr %582, i64 32
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %119, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %621)
          to label %622 unwind label %625

622:                                              ; preds = %619
  call void @_ZN13MacroRulesPtrC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %583)
  invoke void @_ZN3HIR9MacroItemC2E13MacroRulesPtr(ptr noundef nonnull align 8 dereferenceable(56) %120, ptr noundef nonnull %121)
          to label %623 unwind label %627

623:                                              ; preds = %622
  invoke void @_Z17_add_mod_mac_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9MacroItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %118, ptr noundef nonnull %119, ptr noundef nonnull %120)
          to label %624 unwind label %629

624:                                              ; preds = %623
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %120) #10
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %119) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #10
  br label %633

625:                                              ; preds = %619
  %626 = landingpad { ptr, i32 }
          cleanup
  br label %632

627:                                              ; preds = %622
  %628 = landingpad { ptr, i32 }
          cleanup
  br label %631

629:                                              ; preds = %623
  %630 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %120) #10
  br label %631

631:                                              ; preds = %629, %627
  %.pn410 = phi { ptr, i32 } [ %630, %629 ], [ %628, %627 ]
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %121) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %119) #10
  br label %632

632:                                              ; preds = %631, %625
  %.pn410.pn = phi { ptr, i32 } [ %.pn410, %631 ], [ %626, %625 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #10
  br label %636

633:                                              ; preds = %624, %585
  %634 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %110) #10
  %635 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 8 dereferenceable(8) %111) #10
  br i1 %635, label %.lr.ph3768, label %._crit_edge3769

636:                                              ; preds = %632, %617, %616, %601, %600, %594
  %.pn410.pn.pn = phi { ptr, i32 } [ %.pn410.pn, %632 ], [ %595, %594 ], [ %618, %617 ], [ %.pn408, %616 ], [ %602, %601 ], [ %.pn405, %600 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #10
  br label %988

._crit_edge3772:                                  ; preds = %766, %._crit_edge3769
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #10
  %637 = getelementptr inbounds i8, ptr %1, i64 296
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %136) #10
  %638 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %637) #10
  store ptr %638, ptr %136, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %137) #10
  %639 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %637) #10
  store ptr %639, ptr %137, align 8
  %640 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef nonnull align 8 dereferenceable(8) %137) #10
  br i1 %640, label %.lr.ph3869, label %._crit_edge3870

.lr.ph3869:                                       ; preds = %._crit_edge3772
  %641 = getelementptr inbounds i8, ptr %139, i64 8
  %642 = getelementptr inbounds i8, ptr %140, i64 8
  %643 = getelementptr inbounds i8, ptr %145, i64 8
  %644 = getelementptr inbounds i8, ptr %145, i64 12
  %645 = getelementptr inbounds i8, ptr %143, i64 8
  %646 = getelementptr inbounds i8, ptr %143, i64 12
  br label %775

647:                                              ; preds = %.lr.ph3771, %766
  %648 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  %649 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %648)
  %650 = load i8, ptr %649, align 1, !tbaa !14
  %651 = icmp eq i8 %650, 32
  br i1 %651, label %766, label %652

652:                                              ; preds = %647
  %653 = getelementptr inbounds i8, ptr %648, i64 8
  %654 = load i8, ptr %653, align 8, !tbaa !34, !range !63, !noundef !64
  %655 = trunc nuw i8 %654 to i1
  br i1 %655, label %656, label %766

656:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %125) #10
  %657 = getelementptr inbounds i8, ptr %648, i64 56
  invoke void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %125, ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(240) %657, i32 noundef 0, i1 noundef zeroext false)
          to label %658 unwind label %673

658:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %126) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %127) #10
  %659 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %660 unwind label %675

660:                                              ; preds = %658
  %661 = extractvalue { ptr, i64 } %659, 0
  store ptr %661, ptr %126, align 8
  %662 = extractvalue { ptr, i64 } %659, 1
  store i64 %662, ptr %576, align 8
  %663 = call noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %126)
  br i1 %663, label %.critedge, label %664

664:                                              ; preds = %660
  %665 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %666 unwind label %677

666:                                              ; preds = %664
  %667 = extractvalue { ptr, i64 } %665, 0
  store ptr %667, ptr %127, align 8
  %668 = extractvalue { ptr, i64 } %665, 1
  store i64 %668, ptr %577, align 8
  %669 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %127)
  %670 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %669, ptr noundef nonnull @.str.6)
          to label %671 unwind label %677

671:                                              ; preds = %666
  br i1 %670, label %.critedge, label %672

672:                                              ; preds = %671
  call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.5, i32 noundef 2009, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

673:                                              ; preds = %656
  %674 = landingpad { ptr, i32 }
          cleanup
  br label %765

675:                                              ; preds = %658
  %676 = landingpad { ptr, i32 }
          cleanup
  br label %702

677:                                              ; preds = %666, %664
  %678 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #10
  br label %702

.critedge:                                        ; preds = %660, %671
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %127) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #10
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %128) #10
  invoke void @_ZN3HIR8TypeItemC2Ev(ptr noundef nonnull align 8 dereferenceable(408) %128)
          to label %679 unwind label %703

679:                                              ; preds = %.critedge
  %680 = getelementptr inbounds i8, ptr %648, i64 208
  %681 = call noundef ptr @_ZNK3AST16PathBinding_Type11opt_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %680)
  %.not = icmp eq ptr %681, null
  br i1 %.not, label %722, label %682

682:                                              ; preds = %679
  %683 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %684 unwind label %705

684:                                              ; preds = %682
  br i1 %683, label %685, label %707

685:                                              ; preds = %684
  %686 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %686, ptr noundef nonnull @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %688 unwind label %705

688:                                              ; preds = %685
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %687, ptr noundef nonnull @.str.50)
          to label %690 unwind label %705

690:                                              ; preds = %688
  %691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %689, ptr noundef nonnull align 8 dereferenceable(8) %648)
          to label %692 unwind label %705

692:                                              ; preds = %690
  %693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %691, ptr noundef nonnull @.str.51)
          to label %694 unwind label %705

694:                                              ; preds = %692
  %695 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %693, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %696 unwind label %705

696:                                              ; preds = %694
  %697 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %695, ptr noundef nonnull @.str.52)
          to label %698 unwind label %705

698:                                              ; preds = %696
  %699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %697, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %700 unwind label %705

700:                                              ; preds = %698
  %701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %699, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %707 unwind label %705

702:                                              ; preds = %677, %675
  %.pn389 = phi { ptr, i32 } [ %678, %677 ], [ %676, %675 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %126) #10
  br label %764

703:                                              ; preds = %.critedge
  %704 = landingpad { ptr, i32 }
          cleanup
  br label %763

705:                                              ; preds = %738, %736, %734, %732, %730, %728, %725, %722, %700, %698, %696, %694, %692, %690, %688, %685, %682
  %706 = landingpad { ptr, i32 }
          cleanup
  br label %762

707:                                              ; preds = %700, %684
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %129) #10
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %708 unwind label %714

708:                                              ; preds = %707
  store i8 1, ptr %578, align 8, !tbaa !15
  %709 = getelementptr inbounds i8, ptr %681, i64 8
  %710 = load i32, ptr %709, align 8, !tbaa !65
  store i32 %710, ptr %579, align 4, !tbaa !20
  invoke void @_ZN3HIR8TypeItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeItem") align 8 %129, ptr noundef nonnull %130)
          to label %711 unwind label %716

711:                                              ; preds = %708
  %712 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN3HIR8TypeItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(408) %128, ptr noundef nonnull align 8 dereferenceable(408) %129)
          to label %713 unwind label %718

713:                                              ; preds = %711
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %129) #10
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %129) #10
  br label %753

714:                                              ; preds = %707
  %715 = landingpad { ptr, i32 }
          cleanup
  br label %721

716:                                              ; preds = %708
  %717 = landingpad { ptr, i32 }
          cleanup
  br label %720

718:                                              ; preds = %711
  %719 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %129) #10
  br label %720

720:                                              ; preds = %718, %716
  %.pn394 = phi { ptr, i32 } [ %719, %718 ], [ %717, %716 ]
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #10
  br label %721

721:                                              ; preds = %720, %714
  %.pn394.pn = phi { ptr, i32 } [ %.pn394, %720 ], [ %715, %714 ]
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %129) #10
  br label %762

722:                                              ; preds = %679
  %723 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %724 unwind label %705

724:                                              ; preds = %722
  br i1 %723, label %725, label %740

725:                                              ; preds = %724
  %726 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %727 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %726, ptr noundef nonnull @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %728 unwind label %705

728:                                              ; preds = %725
  %729 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %727, ptr noundef nonnull @.str.50)
          to label %730 unwind label %705

730:                                              ; preds = %728
  %731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %729, ptr noundef nonnull align 8 dereferenceable(8) %648)
          to label %732 unwind label %705

732:                                              ; preds = %730
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %731, ptr noundef nonnull @.str.51)
          to label %734 unwind label %705

734:                                              ; preds = %732
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %733, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %736 unwind label %705

736:                                              ; preds = %734
  %737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %735, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %738 unwind label %705

738:                                              ; preds = %736
  %739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %740 unwind label %705

740:                                              ; preds = %738, %724
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %131) #10
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %741 unwind label %745

741:                                              ; preds = %740
  store i8 0, ptr %580, align 8, !tbaa !15
  store i32 0, ptr %581, align 4, !tbaa !20
  invoke void @_ZN3HIR8TypeItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeItem") align 8 %131, ptr noundef nonnull %132)
          to label %742 unwind label %747

742:                                              ; preds = %741
  %743 = invoke noundef nonnull align 8 dereferenceable(408) ptr @_ZN3HIR8TypeItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(408) %128, ptr noundef nonnull align 8 dereferenceable(408) %131)
          to label %744 unwind label %749

744:                                              ; preds = %742
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %131) #10
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %131) #10
  br label %753

745:                                              ; preds = %740
  %746 = landingpad { ptr, i32 }
          cleanup
  br label %752

747:                                              ; preds = %741
  %748 = landingpad { ptr, i32 }
          cleanup
  br label %751

749:                                              ; preds = %742
  %750 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %131) #10
  br label %751

751:                                              ; preds = %749, %747
  %.pn391 = phi { ptr, i32 } [ %750, %749 ], [ %748, %747 ]
  call void @_ZN3HIR8TypeItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #10
  br label %752

752:                                              ; preds = %751, %745
  %.pn391.pn = phi { ptr, i32 } [ %.pn391, %751 ], [ %746, %745 ]
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %131) #10
  br label %762

753:                                              ; preds = %744, %713
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull align 8 dereferenceable(8) %648)
  %754 = getelementptr inbounds i8, ptr %648, i64 16
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %134, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %754)
          to label %755 unwind label %757

755:                                              ; preds = %753
  call void @_ZN3HIR8TypeItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(408) %135, ptr noundef nonnull align 8 dereferenceable(408) %128) #10
  invoke void @_Z16_add_mod_ns_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_8TypeItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %133, ptr noundef nonnull %134, ptr noundef nonnull %135)
          to label %756 unwind label %759

756:                                              ; preds = %755
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %135) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #10
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %128) #10
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %128) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #10
  br label %766

757:                                              ; preds = %753
  %758 = landingpad { ptr, i32 }
          cleanup
  br label %761

759:                                              ; preds = %755
  %760 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %135) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #10
  br label %761

761:                                              ; preds = %759, %757
  %.pn398 = phi { ptr, i32 } [ %760, %759 ], [ %758, %757 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #10
  br label %762

762:                                              ; preds = %705, %721, %752, %761
  %.pn398.pn = phi { ptr, i32 } [ %.pn398, %761 ], [ %.pn394.pn, %721 ], [ %706, %705 ], [ %.pn391.pn, %752 ]
  call void @_ZN3HIR8TypeItemD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %128) #10
  br label %763

763:                                              ; preds = %762, %703
  %.pn398.pn.pn = phi { ptr, i32 } [ %.pn398.pn, %762 ], [ %704, %703 ]
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %128) #10
  br label %764

764:                                              ; preds = %763, %702
  %.pn398.pn.pn.pn = phi { ptr, i32 } [ %.pn398.pn.pn, %763 ], [ %.pn389, %702 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  br label %765

765:                                              ; preds = %764, %673
  %.pn398.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn398.pn.pn.pn, %764 ], [ %674, %673 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #10
  br label %987

766:                                              ; preds = %652, %756, %647
  %767 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  %768 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  br i1 %768, label %647, label %._crit_edge3772

._crit_edge3870:                                  ; preds = %891, %._crit_edge3772
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #10
  %769 = getelementptr inbounds i8, ptr %1, i64 352
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %149) #10
  %770 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %769) #10
  store ptr %770, ptr %149, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %150) #10
  %771 = call ptr @_ZNKSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %769) #10
  store ptr %771, ptr %150, align 8
  %772 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull align 8 dereferenceable(8) %150) #10
  br i1 %772, label %.lr.ph3872, label %._crit_edge3873

.lr.ph3872:                                       ; preds = %._crit_edge3870
  %773 = getelementptr inbounds i8, ptr %152, i64 8
  %774 = getelementptr inbounds i8, ptr %153, i64 8
  br label %894

775:                                              ; preds = %.lr.ph3869, %891
  %776 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %136) #10
  %777 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %776)
  %778 = load i8, ptr %777, align 1, !tbaa !14
  %779 = icmp eq i8 %778, 32
  br i1 %779, label %891, label %780

780:                                              ; preds = %775
  %781 = getelementptr inbounds i8, ptr %776, i64 8
  %782 = load i8, ptr %781, align 8, !tbaa !34, !range !63, !noundef !64
  %783 = trunc nuw i8 %782 to i1
  br i1 %783, label %784, label %891

784:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %138) #10
  %785 = getelementptr inbounds i8, ptr %776, i64 56
  invoke void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %138, ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(240) %785, i32 noundef 1, i1 noundef zeroext false)
          to label %786 unwind label %793

786:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %139) #10
  %787 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %788 unwind label %795

788:                                              ; preds = %786
  %789 = extractvalue { ptr, i64 } %787, 0
  store ptr %789, ptr %139, align 8
  %790 = extractvalue { ptr, i64 } %787, 1
  store i64 %790, ptr %641, align 8
  %791 = call noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %139)
  br i1 %791, label %792, label %797

792:                                              ; preds = %788
  call void @__assert_fail(ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.5, i32 noundef 2030, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

793:                                              ; preds = %784
  %794 = landingpad { ptr, i32 }
          cleanup
  br label %890

795:                                              ; preds = %786
  %796 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %139) #10
  br label %889

797:                                              ; preds = %788
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %139) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %140) #10
  %798 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %799 unwind label %806

799:                                              ; preds = %797
  %800 = extractvalue { ptr, i64 } %798, 0
  store ptr %800, ptr %140, align 8
  %801 = extractvalue { ptr, i64 } %798, 1
  store i64 %801, ptr %642, align 8
  %802 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %140)
  %803 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %802, ptr noundef nonnull @.str.6)
          to label %804 unwind label %806

804:                                              ; preds = %799
  br i1 %803, label %808, label %805

805:                                              ; preds = %804
  call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.5, i32 noundef 2031, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

806:                                              ; preds = %799, %797
  %807 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %140) #10
  br label %889

808:                                              ; preds = %804
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %140) #10
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %141) #10
  invoke void @_ZN3HIR9ValueItemC2Ev(ptr noundef nonnull align 8 dereferenceable(368) %141)
          to label %.lr.ph3866 unwind label %810

.loopexit505:                                     ; preds = %842, %..loopexit_crit_edge
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(8) %776)
  %809 = getelementptr inbounds i8, ptr %776, i64 16
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %147, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %809)
          to label %880 unwind label %882

810:                                              ; preds = %808
  %811 = landingpad { ptr, i32 }
          cleanup
  br label %888

.lr.ph3866:                                       ; preds = %808
  %812 = getelementptr inbounds i8, ptr %776, i64 144
  %813 = call noundef i32 @_ZNK3AST17PathBinding_Value3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %812)
  switch i32 %813, label %820 [
    i32 0, label %819
    i32 5, label %.preheader
  ]

.preheader:                                       ; preds = %.lr.ph3866
  %814 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST17PathBinding_Value10as_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %812)
  %815 = getelementptr inbounds i8, ptr %814, i64 8
  %816 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %852 unwind label %.split3776.split

817:                                              ; preds = %836, %834, %832, %830, %828, %826, %823, %820
  %818 = landingpad { ptr, i32 }
          cleanup
  br label %887

819:                                              ; preds = %.lr.ph3866
  call void @__assert_fail(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.5, i32 noundef 2034, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

820:                                              ; preds = %.lr.ph3866
  %821 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %822 unwind label %817

822:                                              ; preds = %820
  br i1 %821, label %823, label %838

823:                                              ; preds = %822
  %824 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %825 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %824, ptr noundef nonnull @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %826 unwind label %817

826:                                              ; preds = %823
  %827 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %825, ptr noundef nonnull @.str.55)
          to label %828 unwind label %817

828:                                              ; preds = %826
  %829 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %827, ptr noundef nonnull align 8 dereferenceable(8) %776)
          to label %830 unwind label %817

830:                                              ; preds = %828
  %831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %829, ptr noundef nonnull @.str.51)
          to label %832 unwind label %817

832:                                              ; preds = %830
  %833 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %831, ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %834 unwind label %817

834:                                              ; preds = %832
  %835 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %833, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %836 unwind label %817

836:                                              ; preds = %834
  %837 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %835, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %838 unwind label %817

838:                                              ; preds = %836, %822
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %142) #10
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %839 unwind label %843

839:                                              ; preds = %838
  store i8 0, ptr %645, align 8, !tbaa !67
  store i32 0, ptr %646, align 4, !tbaa !69
  invoke void @_ZN3HIR9ValueItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ValueItem") align 8 %142, ptr noundef nonnull %143)
          to label %840 unwind label %845

840:                                              ; preds = %839
  %841 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZN3HIR9ValueItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(368) %141, ptr noundef nonnull align 8 dereferenceable(368) %142)
          to label %842 unwind label %847

842:                                              ; preds = %840
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %142) #10
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #10
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %142) #10
  br label %.loopexit505

843:                                              ; preds = %838
  %844 = landingpad { ptr, i32 }
          cleanup
  br label %850

845:                                              ; preds = %839
  %846 = landingpad { ptr, i32 }
          cleanup
  br label %849

847:                                              ; preds = %840
  %848 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %142) #10
  br label %849

849:                                              ; preds = %847, %845
  %.pn381 = phi { ptr, i32 } [ %848, %847 ], [ %846, %845 ]
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %143) #10
  br label %850

850:                                              ; preds = %849, %843
  %.pn381.pn = phi { ptr, i32 } [ %.pn381, %849 ], [ %844, %843 ]
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %142) #10
  br label %887

.split3776.split:                                 ; preds = %868, %866, %864, %862, %860, %858, %856, %853, %.preheader
  %851 = landingpad { ptr, i32 }
          cleanup
  br label %887

852:                                              ; preds = %.preheader
  br i1 %816, label %853, label %870

853:                                              ; preds = %852
  %854 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %855 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %854, ptr noundef nonnull @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %856 unwind label %.split3776.split

856:                                              ; preds = %853
  %857 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %855, ptr noundef nonnull @.str.55)
          to label %858 unwind label %.split3776.split

858:                                              ; preds = %856
  %859 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %857, ptr noundef nonnull align 8 dereferenceable(8) %776)
          to label %860 unwind label %.split3776.split

860:                                              ; preds = %858
  %861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %859, ptr noundef nonnull @.str.51)
          to label %862 unwind label %.split3776.split

862:                                              ; preds = %860
  %863 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %861, ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %864 unwind label %.split3776.split

864:                                              ; preds = %862
  %865 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %863, ptr noundef nonnull @.str.52)
          to label %866 unwind label %.split3776.split

866:                                              ; preds = %864
  %867 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %865, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %868 unwind label %.split3776.split

868:                                              ; preds = %866
  %869 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %867, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %870 unwind label %.split3776.split

870:                                              ; preds = %868, %852
  call void @llvm.lifetime.start.p0(i64 368, ptr nonnull %144) #10
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull align 8 dereferenceable(8) %138)
          to label %871 unwind label %.split3779.split

871:                                              ; preds = %870
  store i8 1, ptr %643, align 8, !tbaa !67
  %872 = load i32, ptr %815, align 8, !tbaa !70
  store i32 %872, ptr %644, align 4, !tbaa !69
  invoke void @_ZN3HIR9ValueItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::ValueItem") align 8 %144, ptr noundef nonnull %145)
          to label %873 unwind label %.split3782.split

873:                                              ; preds = %871
  %874 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZN3HIR9ValueItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(368) %141, ptr noundef nonnull align 8 dereferenceable(368) %144)
          to label %..loopexit_crit_edge unwind label %.split3785.split

..loopexit_crit_edge:                             ; preds = %873
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %144) #10
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %145) #10
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %144) #10
  br label %.loopexit505

.split3779.split:                                 ; preds = %870
  %875 = landingpad { ptr, i32 }
          cleanup
  br label %879

.split3782.split:                                 ; preds = %871
  %876 = landingpad { ptr, i32 }
          cleanup
  br label %878

.split3785.split:                                 ; preds = %873
  %877 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %144) #10
  br label %878

878:                                              ; preds = %.split3785.split, %.split3782.split
  %.pn377 = phi { ptr, i32 } [ %877, %.split3785.split ], [ %876, %.split3782.split ]
  call void @_ZN3HIR9ValueItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %145) #10
  br label %879

879:                                              ; preds = %878, %.split3779.split
  %.pn377.pn = phi { ptr, i32 } [ %.pn377, %878 ], [ %875, %.split3779.split ]
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %144) #10
  br label %887

880:                                              ; preds = %.loopexit505
  call void @_ZN3HIR9ValueItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(368) %148, ptr noundef nonnull align 8 dereferenceable(368) %141) #10
  invoke void @_Z17_add_mod_val_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9ValueItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %146, ptr noundef nonnull %147, ptr noundef nonnull %148)
          to label %881 unwind label %884

881:                                              ; preds = %880
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %148) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #10
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %141) #10
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %141) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %138) #10
  br label %891

882:                                              ; preds = %.loopexit505
  %883 = landingpad { ptr, i32 }
          cleanup
  br label %886

884:                                              ; preds = %880
  %885 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %148) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #10
  br label %886

886:                                              ; preds = %884, %882
  %.pn375 = phi { ptr, i32 } [ %885, %884 ], [ %883, %882 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #10
  br label %887

887:                                              ; preds = %817, %850, %879, %.split3776.split, %886
  %.pn381.pn.pn.pn = phi { ptr, i32 } [ %.pn375, %886 ], [ %.pn381.pn, %850 ], [ %818, %817 ], [ %.pn377.pn, %879 ], [ %851, %.split3776.split ]
  call void @_ZN3HIR9ValueItemD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %141) #10
  br label %888

888:                                              ; preds = %887, %810
  %.pn381.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn381.pn.pn.pn, %887 ], [ %811, %810 ]
  call void @llvm.lifetime.end.p0(i64 368, ptr nonnull %141) #10
  br label %889

889:                                              ; preds = %888, %806, %795
  %.pn381.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn381.pn.pn.pn.pn, %888 ], [ %807, %806 ], [ %796, %795 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #10
  br label %890

890:                                              ; preds = %889, %793
  %.pn381.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn381.pn.pn.pn.pn.pn, %889 ], [ %794, %793 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %138) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %137) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %136) #10
  br label %987

891:                                              ; preds = %780, %881, %775
  %892 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %136) #10
  %893 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef nonnull align 8 dereferenceable(8) %137) #10
  br i1 %893, label %775, label %._crit_edge3870

._crit_edge3873:                                  ; preds = %982, %._crit_edge3870
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #10
  ret void

894:                                              ; preds = %.lr.ph3872, %982
  %895 = call noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %149) #10
  %896 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %895)
  %897 = load i8, ptr %896, align 1, !tbaa !14
  %898 = icmp eq i8 %897, 32
  br i1 %898, label %982, label %899

899:                                              ; preds = %894
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %151) #10
  %900 = getelementptr inbounds i8, ptr %895, i64 56
  invoke void @_Z19LowerHIR_SimplePathRK4SpanRKN3AST4PathE17FromAST_PathClassb(ptr dead_on_unwind nonnull writable sret(%"struct.HIR::SimplePath") align 8 %151, ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(240) %900, i32 noundef 2, i1 noundef zeroext false)
          to label %901 unwind label %912

901:                                              ; preds = %899
  %902 = getelementptr inbounds i8, ptr %895, i64 8
  %903 = load i8, ptr %902, align 8, !tbaa !34, !range !63, !noundef !64
  %904 = trunc nuw i8 %903 to i1
  br i1 %904, label %905, label %963

905:                                              ; preds = %901
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %152) #10
  %906 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %907 unwind label %914

907:                                              ; preds = %905
  %908 = extractvalue { ptr, i64 } %906, 0
  store ptr %908, ptr %152, align 8
  %909 = extractvalue { ptr, i64 } %906, 1
  store i64 %909, ptr %773, align 8
  %910 = call noundef zeroext i1 @_ZNKSt4spanIK8RcStringE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %152)
  br i1 %910, label %911, label %916

911:                                              ; preds = %907
  call void @__assert_fail(ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.5, i32 noundef 2055, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

912:                                              ; preds = %899
  %913 = landingpad { ptr, i32 }
          cleanup
  br label %986

914:                                              ; preds = %905
  %915 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #10
  br label %985

916:                                              ; preds = %907
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %152) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %153) #10
  %917 = invoke { ptr, i64 } @_ZNK3HIR10SimplePath10componentsEv(ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %918 unwind label %925

918:                                              ; preds = %916
  %919 = extractvalue { ptr, i64 } %917, 0
  store ptr %919, ptr %153, align 8
  %920 = extractvalue { ptr, i64 } %917, 1
  store i64 %920, ptr %774, align 8
  %921 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %153)
  %922 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %921, ptr noundef nonnull @.str.6)
          to label %923 unwind label %925

923:                                              ; preds = %918
  br i1 %922, label %927, label %924

924:                                              ; preds = %923
  call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.5, i32 noundef 2056, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE) #11
  unreachable

925:                                              ; preds = %918, %916
  %926 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #10
  br label %985

927:                                              ; preds = %923
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #10
  %928 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %929 unwind label %945

929:                                              ; preds = %927
  br i1 %928, label %930, label %947

930:                                              ; preds = %929
  %931 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %931, ptr noundef nonnull @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %933 unwind label %945

933:                                              ; preds = %930
  %934 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %932, ptr noundef nonnull @.str.56)
          to label %935 unwind label %945

935:                                              ; preds = %933
  %936 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %934, ptr noundef nonnull align 8 dereferenceable(8) %895)
          to label %937 unwind label %945

937:                                              ; preds = %935
  %938 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %936, ptr noundef nonnull @.str.51)
          to label %939 unwind label %945

939:                                              ; preds = %937
  %940 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %938, ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %941 unwind label %945

941:                                              ; preds = %939
  %942 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %940, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %943 unwind label %945

943:                                              ; preds = %941
  %944 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %942, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %947 unwind label %945

945:                                              ; preds = %979, %977, %975, %973, %971, %969, %966, %963, %943, %941, %939, %937, %935, %933, %930, %927
  %946 = landingpad { ptr, i32 }
          cleanup
  br label %985

947:                                              ; preds = %943, %929
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %154) #10
  invoke void @_ZN3HIR10SimplePathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %948 unwind label %953

948:                                              ; preds = %947
  invoke void @_ZN3HIR9MacroItem11make_ImportENS0_11Data_ImportE(ptr dead_on_unwind nonnull writable sret(%"class.HIR::MacroItem") align 8 %154, ptr noundef nonnull %155)
          to label %949 unwind label %955

949:                                              ; preds = %948
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #10
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull align 8 dereferenceable(8) %895)
  %950 = getelementptr inbounds i8, ptr %895, i64 16
  invoke void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Publicity") align 8 %157, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(36) %950)
          to label %951 unwind label %957

951:                                              ; preds = %949
  call void @_ZN3HIR9MacroItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(56) %158, ptr noundef nonnull align 8 dereferenceable(56) %154) #10
  invoke void @_Z17_add_mod_mac_itemRN3HIR6ModuleE8RcStringNS_9PublicityENS_9MacroItemE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull %156, ptr noundef nonnull %157, ptr noundef nonnull %158)
          to label %952 unwind label %959

952:                                              ; preds = %951
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %158) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #10
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %154) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %154) #10
  br label %981

953:                                              ; preds = %947
  %954 = landingpad { ptr, i32 }
          cleanup
  br label %962

955:                                              ; preds = %948
  %956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9MacroItem11Data_ImportD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #10
  br label %962

957:                                              ; preds = %949
  %958 = landingpad { ptr, i32 }
          cleanup
  br label %961

959:                                              ; preds = %951
  %960 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %158) #10
  call void @_ZN3HIR9PublicityD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %157) #10
  br label %961

961:                                              ; preds = %959, %957
  %.pn = phi { ptr, i32 } [ %960, %959 ], [ %958, %957 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #10
  call void @_ZN3HIR9MacroItemD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %154) #10
  br label %962

962:                                              ; preds = %961, %955, %953
  %.pn.pn = phi { ptr, i32 } [ %.pn, %961 ], [ %956, %955 ], [ %954, %953 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %154) #10
  br label %985

963:                                              ; preds = %901
  %964 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %965 unwind label %945

965:                                              ; preds = %963
  br i1 %964, label %966, label %981

966:                                              ; preds = %965
  %967 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %968 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %967, ptr noundef nonnull @__func__._Z15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EE)
          to label %969 unwind label %945

969:                                              ; preds = %966
  %970 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %968, ptr noundef nonnull @.str.57)
          to label %971 unwind label %945

971:                                              ; preds = %969
  %972 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %970, ptr noundef nonnull align 8 dereferenceable(8) %895)
          to label %973 unwind label %945

973:                                              ; preds = %971
  %974 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %972, ptr noundef nonnull @.str.51)
          to label %975 unwind label %945

975:                                              ; preds = %973
  %976 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(8) %974, ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %977 unwind label %945

977:                                              ; preds = %975
  %978 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %976, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %979 unwind label %945

979:                                              ; preds = %977
  %980 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %978, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %981 unwind label %945

981:                                              ; preds = %965, %979, %952
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %151) #10
  br label %982

982:                                              ; preds = %894, %981
  %983 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringN3AST6Module8IndexEntEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %149) #10
  %984 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringN3AST6Module8IndexEntEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull align 8 dereferenceable(8) %150) #10
  br i1 %984, label %894, label %._crit_edge3873

985:                                              ; preds = %962, %945, %925, %914
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %962 ], [ %946, %945 ], [ %926, %925 ], [ %915, %914 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #10
  br label %986

986:                                              ; preds = %985, %912
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %985 ], [ %913, %912 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %151) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %150) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #10
  br label %987

987:                                              ; preds = %986, %890, %765
  %.pn398.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn398.pn.pn.pn.pn, %765 ], [ %.pn381.pn.pn.pn.pn.pn.pn, %890 ], [ %.pn.pn.pn.pn, %986 ]
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #10
  br label %988

988:                                              ; preds = %987, %636, %571, %263, %203
  %.pn498.pn.pn = phi { ptr, i32 } [ %.pn498.pn, %203 ], [ %.pn491.pn.pn.pn, %263 ], [ %.pn414.pn.pn.pn, %571 ], [ %.pn410.pn.pn, %636 ], [ %.pn398.pn.pn.pn.pn.pn, %987 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  br label %989

989:                                              ; preds = %988, %172
  %.pn498.pn.pn.pn = phi { ptr, i32 } [ %.pn498.pn.pn, %988 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @_ZN3HIR6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %0) #10
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #10
  br label %990

990:                                              ; preds = %989, %170
  %.pn498.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn498.pn.pn.pn, %989 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #10
  resume { ptr, i32 } %.pn498.pn.pn.pn.pn

991:                                              ; preds = %420, %356
  unreachable
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3HIR8ItemPath15get_simple_pathEv(ptr dead_on_unwind noalias writable sret(%"struct.HIR::SimplePath") align 8, ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3AST12AbsolutePathESaIS1_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_cxxneIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_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(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST12AbsolutePathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

; 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 nounwind uwtable
declare dso_local void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_8ItemPathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK3AST4Item7tag_strEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #5 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3AST4PathESaIS1_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_cxxneIPKN3AST4PathESt6vectorIS2_SaIS2_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(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST4PathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3AST11ExternBlock4LinkESaIS2_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_cxxneIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_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(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3HIR13ExternLibraryESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 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 #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11ExternBlock4LinkESt6vectorIS3_SaIS3_EEEppEv(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(472) ptr @_ZNK3AST4Item7as_ImplEv(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(448) ptr @_ZNK3AST4Item10as_NegImplEv(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(32) ptr @_ZNK3AST4Item6as_UseEv(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 @_ZNK3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS3_10SimplePathESaIS6_EEENK3$_6clERKNS_10VisibilityE"(ptr dead_on_unwind noalias writable sret(%"class.HIR::Publicity") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36)) local_unnamed_addr #7 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 @_ZN3HIR8TypeItemC2ENS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef) unnamed_addr #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFv8RcStringN3HIR6StructEEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleENS1_8ItemPathESt6vectorINS1_10SimplePathESaISC_EEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR4EnumC2EOS0_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ15LowerHIR_ModuleRKN3AST6ModuleEN3HIR8ItemPathESt6vectorINS8_10SimplePathESaISB_EEE3$_5vEEOT_"(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 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 #5 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 ptr @_ZNKSt13unordered_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 @_ZNKSt13unordered_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 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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(296) ptr @_ZNKSt8__detail20_Node_const_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 @_ZNKSt4spanIK8RcStringE4backEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

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

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 noundef nonnull align 8 dereferenceable(408) ptr @_ZN3HIR8TypeItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #5 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(368) ptr @_ZN3HIR9ValueItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(368), ptr noundef nonnull align 8 dereferenceable(368)) local_unnamed_addr #5 align 2

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

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

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

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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "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 = { mustprogress 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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{i64 0, i64 8, !5, i64 8, i64 8, !5, i64 16, i64 8, !5, i64 24, i64 8, !5, i64 32, i64 8, !5, i64 40, i64 8, !5, i64 48, i64 8, !5}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !19, i64 8}
!16 = !{!"_ZTSN3HIR8TypeItem11Data_ImportE", !17, i64 0, !19, i64 8, !10, i64 12}
!17 = !{!"_ZTSN3HIR10SimplePathE", !18, i64 0}
!18 = !{!"_ZTS10ThinVectorI8RcStringE", !6, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!16, !10, i64 12}
!21 = !{!22, !19, i64 0}
!22 = !{!"_ZTSN3HIR13TraitMarkingsE", !19, i64 0, !19, i64 1, !19, i64 2, !23, i64 8}
!23 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !24, i64 0}
!24 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !25, i64 0}
!25 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !26, i64 0, !28, i64 8}
!26 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !27, i64 0}
!27 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}
!28 = !{!"_ZTSSt15_Rb_tree_header", !29, i64 0, !31, i64 32}
!29 = !{!"_ZTSSt18_Rb_tree_node_base", !30, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!30 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!31 = !{!"long", !7, i64 0}
!32 = !{!22, !19, i64 1}
!33 = !{!22, !19, i64 2}
!34 = !{!35, !19, i64 8}
!35 = !{!"_ZTSSt4pairIK8RcStringN3AST6Module8IndexEntEE", !36, i64 0, !37, i64 8}
!36 = !{!"_ZTS8RcString", !6, i64 0}
!37 = !{!"_ZTSN3AST6Module8IndexEntE", !19, i64 0, !38, i64 8, !45, i64 48}
!38 = !{!"_ZTSN3AST10VisibilityE", !39, i64 0, !42, i64 16, !44, i64 32}
!39 = !{!"_ZTSSt10shared_ptrIN3AST4PathEE", !40, i64 0}
!40 = !{!"_ZTSSt12__shared_ptrIN3AST4PathELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !41, i64 8}
!41 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!42 = !{!"_ZTSSt10shared_ptrIN3AST12AbsolutePathEE", !43, i64 0}
!43 = !{!"_ZTSSt12__shared_ptrIN3AST12AbsolutePathELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !41, i64 8}
!44 = !{!"_ZTSN3AST10Visibility2TyE", !7, i64 0}
!45 = !{!"_ZTSN3AST4PathE", !46, i64 8, !48, i64 56}
!46 = !{!"_ZTSN3AST4Path5ClassE", !47, i64 0, !7, i64 8}
!47 = !{!"_ZTSN3AST4Path5Class3TagE", !7, i64 0}
!48 = !{!"_ZTSN3AST4Path8BindingsE", !49, i64 0, !57, i64 64, !60, i64 128}
!49 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_ValueEEE", !50, i64 0, !55, i64 32}
!50 = !{!"_ZTSN3AST12AbsolutePathE", !36, i64 0, !51, i64 8}
!51 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !52, i64 0}
!52 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!55 = !{!"_ZTSN3AST17PathBinding_ValueE", !56, i64 0, !7, i64 8}
!56 = !{!"_ZTSN3AST17PathBinding_Value3TagE", !7, i64 0}
!57 = !{!"_ZTSN3AST11PathBindingINS_16PathBinding_TypeEEE", !50, i64 0, !58, i64 32}
!58 = !{!"_ZTSN3AST16PathBinding_TypeE", !59, i64 0, !7, i64 8}
!59 = !{!"_ZTSN3AST16PathBinding_Type3TagE", !7, i64 0}
!60 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_MacroEEE", !50, i64 0, !61, i64 32}
!61 = !{!"_ZTSN3AST17PathBinding_MacroE", !62, i64 0, !7, i64 8}
!62 = !{!"_ZTSN3AST17PathBinding_Macro3TagE", !7, i64 0}
!63 = !{i8 0, i8 2}
!64 = !{}
!65 = !{!66, !10, i64 8}
!66 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}
!67 = !{!68, !19, i64 8}
!68 = !{!"_ZTSN3HIR9ValueItem11Data_ImportE", !17, i64 0, !19, i64 8, !10, i64 12}
!69 = !{!68, !10, i64 12}
!70 = !{!71, !10, i64 8}
!71 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass