; LLVM IR from thepowersgang/mrustc :: src/trans/enumerate.ll (Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)

; 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 }
%struct.Span = type { ptr }
%"class.HIR::TypeRef" = 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" }
%"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.296, %class.ThinVector.297, %class.ThinVector.298 }
%class.ThinVector.296 = type { ptr }
%class.ThinVector.297 = type { ptr }
%class.ThinVector.298 = type { 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.300" }
%"struct.std::_Head_base.300" = type { ptr }
%class.TransList = type { %"class.std::vector.5", %"class.std::map", %"class.std::map.13", %"class.std::map.18", %"class.std::map.23", %"class.std::set", %"class.std::set", %"class.std::set.33", %"class.std::set", %"class.std::set", %"class.std::set.39", %"class.std::vector.44", %"class.std::vector.49", %"class.std::vector.54" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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 }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.13" = type { %"class.std::_Rb_tree.14" }
%"class.std::_Rb_tree.14" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.18" = type { %"class.std::_Rb_tree.19" }
%"class.std::_Rb_tree.19" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.23" = type { %"class.std::_Rb_tree.24" }
%"class.std::_Rb_tree.24" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, Trans_Params>, std::_Select1st<std::pair<const HIR::Path, Trans_Params>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, Trans_Params>, std::_Select1st<std::pair<const HIR::Path, Trans_Params>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set.33" = type { %"class.std::_Rb_tree.34" }
%"class.std::_Rb_tree.34" = type { %"struct.std::_Rb_tree<HIR::GenericPath, HIR::GenericPath, std::_Identity<HIR::GenericPath>, std::less<HIR::GenericPath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::GenericPath, HIR::GenericPath, std::_Identity<HIR::GenericPath>, std::less<HIR::GenericPath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set" = type { %"class.std::_Rb_tree.28" }
%"class.std::_Rb_tree.28" = type { %"struct.std::_Rb_tree<HIR::TypeRef, HIR::TypeRef, std::_Identity<HIR::TypeRef>, std::less<HIR::TypeRef>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::TypeRef, HIR::TypeRef, std::_Identity<HIR::TypeRef>, std::less<HIR::TypeRef>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set.39" = type { %"class.std::_Rb_tree.40" }
%"class.std::_Rb_tree.40" = type { %"struct.std::_Rb_tree<HIR::Path, HIR::Path, std::_Identity<HIR::Path>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, HIR::Path, std::_Identity<HIR::Path>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.44" = type { %"struct.std::_Vector_base.45" }
%"struct.std::_Vector_base.45" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.49" = type { %"struct.std::_Vector_base.50" }
%"struct.std::_Vector_base.50" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_iterator.372" = type { ptr }
%"class.MIR::EnumCachePtr" = type { ptr }
%"struct.(anonymous namespace)::EnumState" = type { ptr, %class.StaticTraitResolve, %class.TransList, ptr, %"class.std::deque", %"class.std::vector.83", %"class.std::set.85", %"class.std::unordered_map" }
%class.StaticTraitResolve = type { ptr, %struct.TraitResolveCommon, i32, %"class.std::map.69", %"class.std::map.69", %"class.std::map.69", %"class.std::map.74" }
%struct.TraitResolveCommon = type { ptr, ptr, ptr, %"class.std::map.59", %class.RangeVecMap, %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath" }
%"class.std::map.59" = type { %"class.std::_Rb_tree.60" }
%"class.std::_Rb_tree.60" = type { %"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>, std::_Select1st<std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>, std::_Select1st<std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.RangeVecMap = type <{ %"class.std::vector.64", [8 x i8] }>
%"class.std::vector.64" = type { %"struct.std::_Vector_base.65" }
%"struct.std::_Vector_base.65" = type { %"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.69" = type { %"class.std::_Rb_tree.70" }
%"class.std::_Rb_tree.70" = type { %"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, bool>, std::_Select1st<std::pair<const HIR::TypeRef, bool>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, bool>, std::_Select1st<std::pair<const HIR::TypeRef, bool>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.74" = type { %"class.std::_Rb_tree.75" }
%"class.std::_Rb_tree.75" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl" }
%"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl" = type { %"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl" }
%"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl" = type { %"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set.85" = type { %"class.std::_Rb_tree.86" }
%"class.std::_Rb_tree.86" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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.__gnu_cxx::__normal_iterator.403" = type { ptr }
%struct.MonomorphState = type { %class.MonomorphiserPP, %"class.HIR::TypeRef", ptr, ptr, %"struct.HIR::PathParams" }
%class.MonomorphiserPP = type { %class.Monomorphiser }
%class.Monomorphiser = type { ptr, ptr, %"class.HIR::ItemPath", %"class.std::vector.301" }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::vector.301" = type { %"struct.std::_Vector_base.302" }
%"struct.std::_Vector_base.302" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.StaticTraitResolve::ValuePtr" = type { i32, %"union.StaticTraitResolve::ValuePtr::DataUnion" }
%"union.StaticTraitResolve::ValuePtr::DataUnion" = type { %"struct.StaticTraitResolve::ValuePtr::Data_EnumConstructor" }
%"struct.StaticTraitResolve::ValuePtr::Data_EnumConstructor" = type { ptr, i64 }
%"struct.std::_Rb_tree_iterator.404" = type { ptr }
%"struct.std::pair.409" = type { %"class.HIR::Path", ptr }
%"struct.std::pair.407" = type <{ %"struct.std::_Rb_tree_iterator.372", i8, [7 x i8] }>
%"struct.std::pair.411" = type <{ %"struct.std::_Rb_tree_iterator.383", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator.383" = type { ptr }
%struct.MonomorphStatePtr = type { %class.MonomorphiserPP, ptr, ptr, ptr, ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base.474" }
%"struct.std::__detail::_Node_iterator_base.474" = type { 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.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.__gnu_cxx::__normal_iterator.494" = type { ptr }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.531" = type { ptr }
%"struct.std::pair.373" = type { %"class.HIR::Path", %"class.std::unique_ptr.375" }
%"class.std::unique_ptr.375" = type { %"struct.std::__uniq_ptr_data.376" }
%"struct.std::__uniq_ptr_data.376" = type { %"class.std::__uniq_ptr_impl.377" }
%"class.std::__uniq_ptr_impl.377" = type { %"class.std::tuple.378" }
%"class.std::tuple.378" = type { %"struct.std::_Tuple_impl.379" }
%"struct.std::_Tuple_impl.379" = type { %"struct.std::_Head_base.382" }
%"struct.std::_Head_base.382" = type { ptr }
%struct.TransList_Function = type <{ ptr, ptr, %struct.Trans_Params, %struct.CachedFunction, i8, [7 x i8] }>
%struct.Trans_Params = type { %class.MonomorphiserPP, %struct.Span, ptr, %"struct.HIR::PathParams", %"struct.HIR::PathParams", %"class.HIR::TypeRef" }
%struct.CachedFunction = type { %"class.HIR::TypeRef", %"class.std::vector.281", %"class.MIR::FunctionPointer" }
%"class.std::vector.281" = type { %"struct.std::_Vector_base.282" }
%"struct.std::_Vector_base.282" = 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.MIR::FunctionPointer" = type { ptr }
%"class.HIR::Function" = type { i8, %"struct.HIR::Linkage", i32, %"class.HIR::TypeRef", %class.RcString, i8, i8, %"class.HIR::GenericParams", %"class.std::vector.281", 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.HIR::GenericParams" = type { %"class.std::vector.261", %"class.std::vector.266", %"class.std::vector.271", %"class.std::vector.276" }
%"class.std::vector.261" = type { %"struct.std::_Vector_base.262" }
%"struct.std::_Vector_base.262" = 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.266" = type { %"struct.std::_Vector_base.267" }
%"struct.std::_Vector_base.267" = 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.271" = type { %"struct.std::_Vector_base.272" }
%"struct.std::_Vector_base.272" = 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.276" = type { %"struct.std::_Vector_base.277" }
%"struct.std::_Vector_base.277" = 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::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.286", %"class.std::vector.286", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.286" = type { %"struct.std::_Vector_base.287" }
%"struct.std::_Vector_base.287" = 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.HIR::ExprStatePtr" = type { ptr }
%"struct.HIR::Function::Markings" = type { %"class.std::vector.291", i8, i32 }
%"class.std::vector.291" = type { %"struct.std::_Vector_base.292" }
%"struct.std::_Vector_base.292" = 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 }
%"class.MIR::Function" = type { %"class.std::vector.286", %"class.std::vector.394", %"class.std::vector.398", %"class.MIR::EnumCachePtr" }
%"class.std::vector.394" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::vector.398" = type { %"struct.std::_Vector_base.399" }
%"struct.std::_Vector_base.399" = type { %"struct.std::_Vector_base<MIR::BasicBlock, std::allocator<MIR::BasicBlock>>::_Vector_impl" }
%"struct.std::_Vector_base<MIR::BasicBlock, std::allocator<MIR::BasicBlock>>::_Vector_impl" = type { %"struct.std::_Vector_base<MIR::BasicBlock, std::allocator<MIR::BasicBlock>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MIR::BasicBlock, std::allocator<MIR::BasicBlock>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.405" = type { %"class.HIR::Path", %struct.Trans_Params }
%"class.HIR::Trait" = type { %"class.HIR::GenericParams", %"struct.HIR::LifetimeRef", %"class.std::vector.414", i8, %"class.std::unordered_map.419", %"class.std::unordered_map.433", %"class.std::unordered_multimap", %"class.std::unordered_map.460", i32, %"class.std::vector.414", %"struct.HIR::SimplePath" }
%"struct.HIR::LifetimeRef" = type { i32 }
%"class.std::unordered_map.419" = type { %"class.std::_Hashtable.420" }
%"class.std::_Hashtable.420" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.433" = type { %"class.std::_Hashtable.434" }
%"class.std::_Hashtable.434" = 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.447" }
%"class.std::_Hashtable.447" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.460" = type { %"class.std::_Hashtable.461" }
%"class.std::_Hashtable.461" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.414" = type { %"struct.std::_Vector_base.415" }
%"struct.std::_Vector_base.415" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TraitPath, std::allocator<HIR::TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.475" = type { %class.RcString, %"struct.std::pair.477" }
%"struct.std::pair.477" = type { i32, %"class.HIR::GenericPath" }
%"struct.std::pair.495" = type <{ %"class.HIR::TypeRef", i8, [7 x i8] }>
%"struct.HIR::TypeData_Path" = type { %"class.HIR::Path", %"class.HIR::TypePathBinding", %"class.std::unique_ptr" }
%"class.HIR::TypePathBinding" = type { i32, %"union.HIR::TypePathBinding::DataUnion" }
%"union.HIR::TypePathBinding::DataUnion" = type { ptr }
%"struct.HIR::TraitMarkings" = type { i8, i8, i8, %"class.std::map.526" }
%"class.std::map.526" = type { %"class.std::_Rb_tree.527" }
%"class.std::_Rb_tree.527" = 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" }

@__dso_handle = external hidden global i8
@_ZN12_GLOBAL__N_113rcstring_dropE = external hidden global %class.RcString, align 8
@g_debug_indent_level = external global i32, align 4
@__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList = external hidden unnamed_addr constant [24 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [78 x i8], align 1
@__PRETTY_FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList = external hidden unnamed_addr constant [64 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue = external hidden global %class.RcString, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue = external hidden global i64, align 8
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp = external hidden global %struct.Span, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp = external hidden global i64, align 8
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone = external hidden global %class.RcString, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone = external hidden global i64, align 8
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item = external hidden global %class.RcString, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item = external hidden global i64, align 8
@.str.12 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [13 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef) #1 align 2

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #3

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nounwind
declare void @__cxa_guard_abort(ptr) #0

; Function Attrs: nounwind
declare void @__cxa_guard_release(ptr) #0

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_19EnumStateC2ERKN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(1224), ptr noundef nonnull align 8 dereferenceable(944)) unnamed_addr #1 align 2

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

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

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

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

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

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

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

declare void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #8

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

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

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

declare void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::Path") align 8, ptr noundef nonnull align 8 dereferenceable(88)) #8

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

; Function Attrs: mustprogress uwtable
declare hidden void @_Z26Trans_Enumerate_CommonPostRN12_GLOBAL__N_19EnumStateE(ptr dead_on_unwind noalias writable sret(%class.TransList) align 8, ptr noundef nonnull align 8 dereferenceable(1224)) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_19EnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(1224)) unnamed_addr #7 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 #4 align 2

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

declare void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare hidden void @_Z33Trans_Enumerate_FillFrom_PathMonoRN12_GLOBAL__N_19EnumStateEN3HIR4PathE(ptr noundef nonnull align 8 dereferenceable(1224), ptr noundef) #1

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList(ptr noundef nonnull align 8 dereferenceable(944) %0, ptr noundef nonnull align 8 dereferenceable(576) %1) #1 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %7 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.MIR::EnumCachePtr", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %15 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.MIR::EnumCachePtr", align 8
  %20 = alloca %"struct.(anonymous namespace)::EnumState", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.403", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.403", align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca %"class.HIR::Path", align 8
  %27 = alloca %struct.MonomorphState, align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"class.StaticTraitResolve::ValuePtr", align 8
  %30 = alloca %struct.Span, align 8
  %31 = alloca ptr, align 8
  %32 = alloca i8, align 1
  %33 = alloca ptr, align 8
  %34 = alloca i8, align 1
  %35 = alloca ptr, align 8
  %36 = alloca %"class.HIR::Path", align 8
  %37 = alloca %class.TransList, align 8
  %38 = alloca ptr, align 8
  %39 = alloca %"struct.std::_Rb_tree_iterator.404", align 8
  %40 = alloca %"struct.std::_Rb_tree_iterator.404", align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.HIR::Path", align 8
  %45 = alloca %"class.HIR::TypeRef", align 8
  %46 = alloca %class.RcString, align 8
  %47 = alloca %"struct.HIR::PathParams", align 8
  %48 = alloca %"struct.std::pair.409", align 8
  %49 = alloca ptr, align 8
  %50 = alloca %"struct.std::pair.407", align 8
  %51 = alloca %"struct.std::pair.409", align 8
  %52 = alloca %"class.HIR::Path", align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"struct.std::pair.411", align 8
  %55 = alloca %"struct.HIR::SimplePath", align 8
  %56 = alloca ptr, align 8
  %57 = alloca %struct.MonomorphStatePtr, align 8
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %61 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %62 = alloca ptr, align 8
  %63 = alloca %"class.HIR::GenericPath", align 8
  %64 = alloca %"class.HIR::Path", align 8
  %65 = alloca %"class.HIR::TypeRef", align 8
  %66 = alloca %"class.HIR::GenericPath", align 8
  %67 = alloca %class.RcString, align 8
  %68 = alloca %"struct.HIR::PathParams", align 8
  %69 = alloca %"struct.std::pair.409", align 8
  %70 = alloca ptr, align 8
  %71 = alloca %"struct.std::pair.407", align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca %"class.HIR::GenericPath", align 8
  %75 = alloca %"class.HIR::Path", align 8
  %76 = alloca %"class.HIR::TypeRef", align 8
  %77 = alloca %"class.HIR::GenericPath", align 8
  %78 = alloca %class.RcString, align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %81 = alloca %"struct.HIR::PathParams", align 8
  %82 = alloca %"struct.std::pair.409", align 8
  %83 = alloca ptr, align 8
  %84 = alloca %"struct.std::pair.407", align 8
  %85 = alloca ptr, align 8
  %86 = alloca %"class.__gnu_cxx::__normal_iterator.494", align 8
  %87 = alloca %"class.__gnu_cxx::__normal_iterator.494", align 8
  %88 = alloca ptr, align 8
  %89 = alloca %struct.Span, align 8
  %90 = alloca %"class.HIR::Path", align 8
  %91 = alloca %"class.HIR::TypeRef", align 8
  %92 = alloca %class.RcString, align 8
  %93 = alloca %"struct.HIR::PathParams", align 8
  %94 = alloca %"struct.std::pair.409", align 8
  %95 = alloca ptr, align 8
  %96 = alloca %"struct.std::pair.407", align 8
  %97 = alloca %"class.HIR::Path", align 8
  %98 = alloca %"class.HIR::TypeRef", align 8
  %99 = alloca %"class.HIR::GenericPath", align 8
  %100 = alloca %"struct.HIR::SimplePath", align 8
  %101 = alloca %class.RcString, align 8
  %102 = alloca %"struct.HIR::PathParams", align 8
  %103 = alloca %"struct.std::pair.409", align 8
  %104 = alloca ptr, align 8
  %105 = alloca %"struct.std::pair.407", align 8
  %106 = alloca ptr, align 8
  %107 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %108 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %109 = alloca ptr, align 8
  %110 = alloca %"class.HIR::Path", align 8
  %111 = alloca %"class.HIR::TypeRef", align 8
  %112 = alloca %"class.HIR::GenericPath", align 8
  %113 = alloca %"struct.HIR::SimplePath", align 8
  %114 = alloca %struct.Span, align 8
  %115 = alloca %class.RcString, align 8
  %116 = alloca %"struct.HIR::PathParams", align 8
  %117 = alloca %"struct.std::pair.409", align 8
  %118 = alloca ptr, align 8
  %119 = alloca %"struct.std::pair.407", align 8
  %120 = alloca ptr, align 8
  %121 = alloca %"struct.std::_Rb_tree_const_iterator.531", align 8
  %122 = alloca %"struct.std::_Rb_tree_const_iterator.531", align 8
  %123 = alloca ptr, align 8
  %124 = alloca %"struct.std::pair.409", align 8
  %125 = alloca %"class.HIR::Path", align 8
  %126 = alloca ptr, align 8
  %127 = alloca %"struct.std::pair.407", align 8
  %128 = alloca ptr, align 8
  %129 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %130 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %131 = alloca ptr, align 8
  %132 = alloca %"class.HIR::Path", align 8
  %133 = alloca %"class.HIR::TypeRef", align 8
  %134 = alloca %"class.HIR::GenericPath", align 8
  %135 = alloca %"struct.HIR::SimplePath", align 8
  %136 = alloca %struct.Span, align 8
  %137 = alloca %class.RcString, align 8
  %138 = alloca %"struct.HIR::PathParams", align 8
  %139 = alloca %"struct.std::pair.409", align 8
  %140 = alloca ptr, align 8
  %141 = alloca %"struct.std::pair.407", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #0
  %142 = load ptr, ptr %4, align 8, !tbaa !5
  %143 = getelementptr inbounds %class.TransList, ptr %142, i32 0, i32 1
  store ptr %143, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #0
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %144) #0
  %146 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.372", ptr %6, i32 0, i32 0
  store ptr %145, ptr %146, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #0
  %147 = load ptr, ptr %5, align 8, !tbaa !5
  %148 = call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %147) #0
  %149 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.372", ptr %7, i32 0, i32 0
  store ptr %148, ptr %149, align 8
  br label %150

150:                                              ; preds = %178, %2
  %151 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #0
  br i1 %151, label %153, label %152

152:                                              ; preds = %150
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #0
  br label %180

153:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #0
  %154 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #0
  store ptr %154, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #0
  %155 = load ptr, ptr %8, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.std::pair.373", ptr %155, i32 0, i32 1
  %157 = call noundef ptr @_ZNKSt10unique_ptrI18TransList_FunctionSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %156) #0
  %158 = getelementptr inbounds %struct.TransList_Function, ptr %157, i32 0, i32 1
  %159 = load ptr, ptr %158, align 8, !tbaa !9
  store ptr %159, ptr %9, align 8, !tbaa !5
  %160 = load ptr, ptr %9, align 8, !tbaa !5
  %161 = getelementptr inbounds %"class.HIR::Function", ptr %160, i32 0, i32 11
  %162 = getelementptr inbounds %"class.HIR::ExprPtr", ptr %161, i32 0, i32 3
  %163 = call noundef zeroext i1 @_ZNK3MIR15FunctionPointercvbEv(ptr noundef nonnull align 8 dereferenceable(8) %162)
  br i1 %163, label %164, label %177

164:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #0
  call void @_ZN3MIR12EnumCachePtrC2EPKNS_9EnumCacheE(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef null)
  %165 = load ptr, ptr %9, align 8, !tbaa !5
  %166 = getelementptr inbounds %"class.HIR::Function", ptr %165, i32 0, i32 11
  %167 = getelementptr inbounds %"class.HIR::ExprPtr", ptr %166, i32 0, i32 3
  %168 = invoke noundef ptr @_ZNK3MIR15FunctionPointerptEv(ptr noundef nonnull align 8 dereferenceable(8) %167)
          to label %169 unwind label %173

169:                                              ; preds = %164
  %170 = getelementptr inbounds %"class.MIR::Function", ptr %168, i32 0, i32 3
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIR12EnumCachePtraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %172 unwind label %173

172:                                              ; preds = %169
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #0
  br label %177

173:                                              ; preds = %169, %164
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %11, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %12, align 4
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #0
  br label %1391

177:                                              ; preds = %172, %153
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #0
  br label %178

178:                                              ; preds = %177
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #0
  br label %150

180:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #0
  %181 = load ptr, ptr %4, align 8, !tbaa !5
  %182 = getelementptr inbounds %class.TransList, ptr %181, i32 0, i32 1
  store ptr %182, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #0
  %183 = load ptr, ptr %13, align 8, !tbaa !5
  %184 = call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %183) #0
  %185 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.372", ptr %14, i32 0, i32 0
  store ptr %184, ptr %185, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #0
  %186 = load ptr, ptr %13, align 8, !tbaa !5
  %187 = call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %186) #0
  %188 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.372", ptr %15, i32 0, i32 0
  store ptr %187, ptr %188, align 8
  br label %189

189:                                              ; preds = %250, %180
  %190 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #0
  br i1 %190, label %192, label %191

191:                                              ; preds = %189
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #0
  br label %252

192:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #0
  %193 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #0
  store ptr %193, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #0
  %194 = load ptr, ptr %16, align 8, !tbaa !5
  %195 = getelementptr inbounds %"struct.std::pair.373", ptr %194, i32 0, i32 1
  %196 = call noundef ptr @_ZNKSt10unique_ptrI18TransList_FunctionSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %195) #0
  %197 = getelementptr inbounds %struct.TransList_Function, ptr %196, i32 0, i32 1
  %198 = load ptr, ptr %197, align 8, !tbaa !9
  store ptr %198, ptr %17, align 8, !tbaa !5
  %199 = load ptr, ptr %17, align 8, !tbaa !5
  %200 = getelementptr inbounds %"class.HIR::Function", ptr %199, i32 0, i32 11
  %201 = getelementptr inbounds %"class.HIR::ExprPtr", ptr %200, i32 0, i32 3
  %202 = call noundef zeroext i1 @_ZNK3MIR15FunctionPointercvbEv(ptr noundef nonnull align 8 dereferenceable(8) %201)
  br i1 %202, label %203, label %249

203:                                              ; preds = %192
  %204 = load ptr, ptr %17, align 8, !tbaa !5
  %205 = getelementptr inbounds %"class.HIR::Function", ptr %204, i32 0, i32 11
  %206 = getelementptr inbounds %"class.HIR::ExprPtr", ptr %205, i32 0, i32 3
  %207 = call noundef ptr @_ZNK3MIR15FunctionPointerptEv(ptr noundef nonnull align 8 dereferenceable(8) %206)
  %208 = getelementptr inbounds %"class.MIR::Function", ptr %207, i32 0, i32 3
  %209 = call noundef zeroext i1 @_ZN3MIR12EnumCachePtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %208)
  br i1 %209, label %249, label %210

210:                                              ; preds = %203
  br label %211

211:                                              ; preds = %210
  %212 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %212, label %213, label %221

213:                                              ; preds = %211
  %214 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %214, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
  %216 = load ptr, ptr %16, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.std::pair.373", ptr %216, i32 0, i32 0
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull align 8 dereferenceable(88) %217)
  %219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef @_ZSt3decRSt8ios_base)
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %219, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %221

221:                                              ; preds = %213, %211
  br label %222

222:                                              ; preds = %221
  br label %223

223:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #0
  %224 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #11
  invoke void @_ZN3MIR9EnumCacheC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %224)
          to label %225 unwind label %240

225:                                              ; preds = %223
  store ptr %224, ptr %18, align 8, !tbaa !5
  %226 = load ptr, ptr %18, align 8, !tbaa !5
  %227 = load ptr, ptr %17, align 8, !tbaa !5
  %228 = getelementptr inbounds %"class.HIR::Function", ptr %227, i32 0, i32 11
  %229 = getelementptr inbounds %"class.HIR::ExprPtr", ptr %228, i32 0, i32 3
  %230 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNK3MIR15FunctionPointerdeEv(ptr noundef nonnull align 8 dereferenceable(8) %229)
  call void @_Z28Trans_Enumerate_FillFrom_MIRRN3MIR9EnumCacheERKNS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(48) %226, ptr noundef nonnull align 8 dereferenceable(96) %230)
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #0
  %231 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN3MIR12EnumCachePtrC2EPKNS_9EnumCacheE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef %231)
  %232 = load ptr, ptr %17, align 8, !tbaa !5
  %233 = getelementptr inbounds %"class.HIR::Function", ptr %232, i32 0, i32 11
  %234 = getelementptr inbounds %"class.HIR::ExprPtr", ptr %233, i32 0, i32 3
  %235 = invoke noundef ptr @_ZNK3MIR15FunctionPointerptEv(ptr noundef nonnull align 8 dereferenceable(8) %234)
          to label %236 unwind label %244

236:                                              ; preds = %225
  %237 = getelementptr inbounds %"class.MIR::Function", ptr %235, i32 0, i32 3
  %238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIR12EnumCachePtraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %237, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %239 unwind label %244

239:                                              ; preds = %236
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #0
  br label %249

240:                                              ; preds = %223
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %11, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %12, align 4
  call void @_ZdlPvm(ptr noundef %224, i64 noundef 48) #12
  br label %248

244:                                              ; preds = %236, %225
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %11, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %12, align 4
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #0
  br label %248

248:                                              ; preds = %244, %240
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #0
  br label %1391

249:                                              ; preds = %239, %203, %192
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #0
  br label %250

250:                                              ; preds = %249
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #0
  br label %189

252:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 1224, ptr %20) #0
  %253 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN12_GLOBAL__N_19EnumStateC2ERKN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(1224) %20, ptr noundef nonnull align 8 dereferenceable(944) %253)
  %254 = load ptr, ptr %4, align 8, !tbaa !5
  %255 = getelementptr inbounds %"struct.(anonymous namespace)::EnumState", ptr %20, i32 0, i32 3
  store ptr %254, ptr %255, align 8, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #0
  %256 = load ptr, ptr %4, align 8, !tbaa !5
  %257 = getelementptr inbounds %class.TransList, ptr %256, i32 0, i32 0
  store ptr %257, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #0
  %258 = load ptr, ptr %21, align 8, !tbaa !5
  %259 = call ptr @_ZNSt6vectorIN3HIR4PathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %258) #0
  %260 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.403", ptr %22, i32 0, i32 0
  store ptr %259, ptr %260, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #0
  %261 = load ptr, ptr %21, align 8, !tbaa !5
  %262 = call ptr @_ZNSt6vectorIN3HIR4PathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %261) #0
  %263 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.403", ptr %23, i32 0, i32 0
  store ptr %262, ptr %263, align 8
  br label %264

264:                                              ; preds = %363, %252
  %265 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3HIR4PathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #0
  br i1 %265, label %267, label %266

266:                                              ; preds = %264
  store i32 8, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #0
  br label %374

267:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #0
  %268 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3HIR4PathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #0
  store ptr %268, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr %26) #0
  %269 = load ptr, ptr %25, align 8, !tbaa !5
  invoke void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::Path") align 8 %26, ptr noundef nonnull align 8 dereferenceable(88) %269)
          to label %270 unwind label %285

270:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 144, ptr %27) #0
  invoke void @_ZN14MonomorphStateC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %27)
          to label %271 unwind label %289

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #0
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #0
  %272 = getelementptr inbounds %"struct.(anonymous namespace)::EnumState", ptr %20, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #0
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %273 unwind label %293

273:                                              ; preds = %271
  invoke void @_ZNK18StaticTraitResolve9get_valueERK4SpanRKN3HIR4PathER14MonomorphStatebPPKNS3_13GenericParamsE(ptr dead_on_unwind writable sret(%"class.StaticTraitResolve::ValuePtr") align 8 %29, ptr noundef nonnull align 8 dereferenceable(424) %272, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(88) %26, ptr noundef nonnull align 8 dereferenceable(144) %27, i1 noundef zeroext true, ptr noundef null)
          to label %274 unwind label %297

274:                                              ; preds = %273
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #0
  store ptr %29, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #0
  %275 = load ptr, ptr %28, align 8, !tbaa !5
  %276 = invoke noundef ptr @_ZNK18StaticTraitResolve8ValuePtr12opt_FunctionEv(ptr noundef nonnull align 8 dereferenceable(24) %275)
          to label %277 unwind label %302

277:                                              ; preds = %274
  store ptr %276, ptr %31, align 8, !tbaa !5
  %278 = load ptr, ptr %31, align 8, !tbaa !5
  %279 = icmp ne ptr %278, null
  br i1 %279, label %280, label %360

280:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #0
  store i8 1, ptr %32, align 1, !tbaa !123
  br label %281

281:                                              ; preds = %358, %280
  %282 = load i8, ptr %32, align 1, !tbaa !123, !range !124, !noundef !125
  %283 = trunc i8 %282 to i1
  br i1 %283, label %306, label %284

284:                                              ; preds = %281
  store i32 10, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #0
  br label %359

285:                                              ; preds = %267
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %11, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %12, align 4
  br label %373

289:                                              ; preds = %270
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %11, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %12, align 4
  br label %372

293:                                              ; preds = %271
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %11, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %12, align 4
  br label %301

297:                                              ; preds = %273
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %11, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %12, align 4
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #0
  br label %301

301:                                              ; preds = %297, %293
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #0
  br label %371

302:                                              ; preds = %274
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %11, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %12, align 4
  br label %365

306:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #0
  %307 = getelementptr inbounds %"class.HIR::Path", ptr %26, i32 0, i32 0
  store ptr %307, ptr %33, align 8, !tbaa !5
  br label %308

308:                                              ; preds = %355, %306
  %309 = load i8, ptr %32, align 1, !tbaa !123, !range !124, !noundef !125
  %310 = trunc i8 %309 to i1
  br i1 %310, label %312, label %311

311:                                              ; preds = %308
  store i32 13, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #0
  br label %357

312:                                              ; preds = %308
  %313 = load ptr, ptr %33, align 8, !tbaa !5
  %314 = invoke noundef i32 @_ZNK3HIR4Path4Data3tagEv(ptr noundef nonnull align 8 dereferenceable(88) %313)
          to label %315 unwind label %316

315:                                              ; preds = %312
  switch i32 %314, label %321 [
    i32 0, label %320
    i32 1, label %322
  ]

316:                                              ; preds = %312
  %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
  br label %356

320:                                              ; preds = %315
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.7, i32 noundef 665, ptr noundef @__PRETTY_FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList) #13
  unreachable

321:                                              ; preds = %315
  br label %354

322:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #0
  store i8 1, ptr %34, align 1, !tbaa !123
  br label %323

323:                                              ; preds = %352, %322
  %324 = load i8, ptr %34, align 1, !tbaa !123, !range !124, !noundef !125
  %325 = trunc i8 %324 to i1
  br i1 %325, label %327, label %326

326:                                              ; preds = %323
  store i32 17, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #0
  br label %353

327:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #0
  %328 = load ptr, ptr %33, align 8, !tbaa !5
  %329 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR4Path4Data10as_GenericEv(ptr noundef nonnull align 8 dereferenceable(88) %328)
          to label %330 unwind label %336

330:                                              ; preds = %327
  store ptr %329, ptr %35, align 8, !tbaa !5
  br label %331

331:                                              ; preds = %350, %330
  %332 = load ptr, ptr %35, align 8, !tbaa !5
  %333 = load i8, ptr %34, align 1, !tbaa !123, !range !124, !noundef !125
  %334 = trunc i8 %333 to i1
  br i1 %334, label %340, label %335

335:                                              ; preds = %331
  store i32 20, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #0
  br label %351

336:                                              ; preds = %340, %327
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %11, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #0
  br label %356

340:                                              ; preds = %331
  %341 = load ptr, ptr %35, align 8, !tbaa !5
  %342 = getelementptr inbounds %"class.HIR::GenericPath", ptr %341, i32 0, i32 1
  %343 = getelementptr inbounds %"struct.HIR::PathParams", ptr %342, i32 0, i32 0
  %344 = load ptr, ptr %31, align 8, !tbaa !5
  %345 = load ptr, ptr %344, align 8, !tbaa !5
  %346 = getelementptr inbounds %"class.HIR::Function", ptr %345, i32 0, i32 7
  %347 = getelementptr inbounds %"class.HIR::GenericParams", ptr %346, i32 0, i32 1
  %348 = call noundef i64 @_ZNKSt6vectorIN3HIR11LifetimeDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %347) #0
  invoke void @_ZN10ThinVectorIN3HIR11LifetimeRefEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(8) %343, i64 noundef %348)
          to label %349 unwind label %336

349:                                              ; preds = %340
  br label %350

350:                                              ; preds = %349
  store i8 0, ptr %34, align 1, !tbaa !123
  br label %331, !llvm.loop !126

351:                                              ; preds = %335
  br label %352

352:                                              ; preds = %351
  store i8 0, ptr %34, align 1, !tbaa !123
  br label %323, !llvm.loop !128

353:                                              ; preds = %326
  br label %354

354:                                              ; preds = %353, %321
  br label %355

355:                                              ; preds = %354
  store i8 0, ptr %32, align 1, !tbaa !123
  br label %308, !llvm.loop !129

356:                                              ; preds = %336, %316
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #0
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #0
  br label %365

357:                                              ; preds = %311
  br label %358

358:                                              ; preds = %357
  store i8 0, ptr %32, align 1, !tbaa !123
  br label %281, !llvm.loop !130

359:                                              ; preds = %284
  br label %361

360:                                              ; preds = %277
  br label %361

361:                                              ; preds = %360, %359
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #0
  call void @_ZN3HIR4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(88) %36, ptr noundef nonnull align 8 dereferenceable(88) %26) #0
  invoke void @_Z33Trans_Enumerate_FillFrom_PathMonoRN12_GLOBAL__N_19EnumStateEN3HIR4PathE(ptr noundef nonnull align 8 dereferenceable(1224) %20, ptr noundef %36)
          to label %362 unwind label %366

362:                                              ; preds = %361
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #0
  call void @_ZN18StaticTraitResolve8ValuePtrD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #0
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #0
  call void @_ZN14MonomorphStateD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %27) #0
  call void @llvm.lifetime.end.p0(i64 144, ptr %27) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %26) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %26) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #0
  br label %363

363:                                              ; preds = %362
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3HIR4PathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #0
  br label %264

365:                                              ; preds = %356, %302
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #0
  br label %370

366:                                              ; preds = %361
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %11, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %12, align 4
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #0
  br label %370

370:                                              ; preds = %366, %365
  call void @_ZN18StaticTraitResolve8ValuePtrD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #0
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #0
  br label %371

371:                                              ; preds = %370, %301
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #0
  call void @_ZN14MonomorphStateD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %27) #0
  br label %372

372:                                              ; preds = %371, %289
  call void @llvm.lifetime.end.p0(i64 144, ptr %27) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %26) #0
  br label %373

373:                                              ; preds = %372, %285
  call void @llvm.lifetime.end.p0(i64 88, ptr %26) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #0
  br label %1390

374:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 576, ptr %37) #0
  invoke void @_Z26Trans_Enumerate_CommonPostRN12_GLOBAL__N_19EnumStateE(ptr dead_on_unwind writable sret(%class.TransList) align 8 %37, ptr noundef nonnull align 8 dereferenceable(1224) %20)
          to label %375 unwind label %395

375:                                              ; preds = %374
  %376 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue acquire, align 8
  %377 = icmp eq i8 %376, 0
  br i1 %377, label %378, label %384, !prof !131

378:                                              ; preds = %375
  %379 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue) #0
  %380 = icmp ne i32 %379, 0
  br i1 %380, label %381, label %384

381:                                              ; preds = %378
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind writable sret(%class.RcString) align 8 @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue, ptr noundef @.str.8)
          to label %382 unwind label %399

382:                                              ; preds = %381
  %383 = call i32 @__cxa_atexit(ptr @_ZN8RcStringD1Ev, ptr @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue) #0
  br label %384

384:                                              ; preds = %382, %378, %375
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #0
  %385 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 4
  store ptr %385, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #0
  %386 = load ptr, ptr %38, align 8, !tbaa !5
  %387 = call ptr @_ZNSt3mapIN3HIR4PathE12Trans_ParamsSt4lessIS1_ESaISt4pairIKS1_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %386) #0
  %388 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.404", ptr %39, i32 0, i32 0
  store ptr %387, ptr %388, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #0
  %389 = load ptr, ptr %38, align 8, !tbaa !5
  %390 = call ptr @_ZNSt3mapIN3HIR4PathE12Trans_ParamsSt4lessIS1_ESaISt4pairIKS1_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %389) #0
  %391 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.404", ptr %40, i32 0, i32 0
  store ptr %390, ptr %391, align 8
  br label %392

392:                                              ; preds = %849, %384
  %393 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEES8_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #0
  br i1 %393, label %403, label %394

394:                                              ; preds = %392
  store i32 23, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #0
  br label %858

395:                                              ; preds = %374
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %11, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %12, align 4
  br label %1389

399:                                              ; preds = %381
  %400 = landingpad { ptr, i32 }
          cleanup
  %401 = extractvalue { ptr, i32 } %400, 0
  store ptr %401, ptr %11, align 8
  %402 = extractvalue { ptr, i32 } %400, 1
  store i32 %402, ptr %12, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue) #0
  br label %1388

403:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #0
  %404 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #0
  store ptr %404, ptr %41, align 8, !tbaa !5
  %405 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp acquire, align 8
  %406 = icmp eq i8 %405, 0
  br i1 %406, label %407, label %413, !prof !131

407:                                              ; preds = %403
  %408 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp) #0
  %409 = icmp ne i32 %408, 0
  br i1 %409, label %410, label %413

410:                                              ; preds = %407
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp)
          to label %411 unwind label %446

411:                                              ; preds = %410
  %412 = call i32 @__cxa_atexit(ptr @_ZN4SpanD1Ev, ptr @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp) #0
  br label %413

413:                                              ; preds = %411, %407, %403
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #0
  %414 = load ptr, ptr %41, align 8, !tbaa !5
  %415 = getelementptr inbounds %"struct.std::pair.405", ptr %414, i32 0, i32 0
  %416 = getelementptr inbounds %"class.HIR::Path", ptr %415, i32 0, i32 0
  %417 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %416)
          to label %418 unwind label %450

418:                                              ; preds = %413
  %419 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %417, i32 0, i32 1
  store ptr %419, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #0
  %420 = load ptr, ptr %41, align 8, !tbaa !5
  %421 = getelementptr inbounds %"struct.std::pair.405", ptr %420, i32 0, i32 0
  %422 = getelementptr inbounds %"class.HIR::Path", ptr %421, i32 0, i32 0
  %423 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %422)
          to label %424 unwind label %454

424:                                              ; preds = %418
  %425 = getelementptr inbounds %"struct.HIR::Path::Data::Data_UfcsKnown", ptr %423, i32 0, i32 0
  store ptr %425, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 88, ptr %44) #0
  %426 = load ptr, ptr %43, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %45, ptr noundef nonnull align 8 dereferenceable(8) %426)
          to label %427 unwind label %458

427:                                              ; preds = %424
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue)
          to label %428 unwind label %462

428:                                              ; preds = %427
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %47)
          to label %429 unwind label %466

429:                                              ; preds = %428
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %44, ptr noundef %45, ptr noundef %46, ptr noundef %47)
          to label %430 unwind label %470

430:                                              ; preds = %429
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #0
  br label %431

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

433:                                              ; preds = %431
  br i1 %432, label %434, label %480

434:                                              ; preds = %433
  %435 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %435, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %437 unwind label %476

437:                                              ; preds = %434
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef @.str.9)
          to label %439 unwind label %476

439:                                              ; preds = %437
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %438, ptr noundef nonnull align 8 dereferenceable(88) %44)
          to label %441 unwind label %476

441:                                              ; preds = %439
  %442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %440, ptr noundef @_ZSt3decRSt8ios_base)
          to label %443 unwind label %476

443:                                              ; preds = %441
  %444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %445 unwind label %476

445:                                              ; preds = %443
  br label %480

446:                                              ; preds = %410
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %11, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %12, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp) #0
  br label %857

450:                                              ; preds = %413
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %11, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %12, align 4
  br label %856

454:                                              ; preds = %418
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %11, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %12, align 4
  br label %855

458:                                              ; preds = %424
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %11, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %12, align 4
  br label %854

462:                                              ; preds = %427
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %11, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %12, align 4
  br label %475

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

470:                                              ; preds = %429
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %11, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %12, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #0
  br label %474

474:                                              ; preds = %470, %466
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #0
  br label %475

475:                                              ; preds = %474, %462
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #0
  br label %854

476:                                              ; preds = %505, %503, %499, %497, %494, %491, %443, %441, %439, %437, %434, %431
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %11, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %12, align 4
  br label %853

480:                                              ; preds = %445, %433
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481
  %483 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %48) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #0
  store ptr null, ptr %49, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %48, ptr noundef nonnull align 8 dereferenceable(88) %44, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %484 unwind label %508

484:                                              ; preds = %482
  %485 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %483, ptr noundef nonnull align 8 dereferenceable(96) %48)
          to label %486 unwind label %512

486:                                              ; preds = %484
  %487 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 0
  %488 = extractvalue { ptr, i8 } %485, 0
  store ptr %488, ptr %487, align 8
  %489 = getelementptr inbounds { ptr, i8 }, ptr %50, i32 0, i32 1
  %490 = extractvalue { ptr, i8 } %485, 1
  store i8 %490, ptr %489, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %48) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %48) #0
  br label %491

491:                                              ; preds = %486
  %492 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %493 unwind label %476

493:                                              ; preds = %491
  br i1 %492, label %494, label %517

494:                                              ; preds = %493
  %495 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %495, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %497 unwind label %476

497:                                              ; preds = %494
  %498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %496, ptr noundef @.str.9)
          to label %499 unwind label %476

499:                                              ; preds = %497
  %500 = load ptr, ptr %41, align 8, !tbaa !5
  %501 = getelementptr inbounds %"struct.std::pair.405", ptr %500, i32 0, i32 0
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef nonnull align 8 dereferenceable(88) %501)
          to label %503 unwind label %476

503:                                              ; preds = %499
  %504 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef @_ZSt3decRSt8ios_base)
          to label %505 unwind label %476

505:                                              ; preds = %503
  %506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %507 unwind label %476

507:                                              ; preds = %505
  br label %517

508:                                              ; preds = %482
  %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 %516

512:                                              ; preds = %484
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %11, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %48) #0
  br label %516

516:                                              ; preds = %512, %508
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %48) #0
  br label %853

517:                                              ; preds = %507, %493
  br label %518

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518
  %520 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 96, ptr %51) #0
  call void @llvm.lifetime.start.p0(i64 88, ptr %52) #0
  %521 = load ptr, ptr %41, align 8, !tbaa !5
  %522 = getelementptr inbounds %"struct.std::pair.405", ptr %521, i32 0, i32 0
  invoke void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::Path") align 8 %52, ptr noundef nonnull align 8 dereferenceable(88) %522)
          to label %523 unwind label %537

523:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #0
  store ptr null, ptr %53, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %51, ptr noundef nonnull align 8 dereferenceable(88) %52, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %524 unwind label %541

524:                                              ; preds = %523
  %525 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI16TransList_StaticSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %520, ptr noundef nonnull align 8 dereferenceable(96) %51)
          to label %526 unwind label %545

526:                                              ; preds = %524
  %527 = getelementptr inbounds { ptr, i8 }, ptr %54, i32 0, i32 0
  %528 = extractvalue { ptr, i8 } %525, 0
  store ptr %528, ptr %527, align 8
  %529 = getelementptr inbounds { ptr, i8 }, ptr %54, i32 0, i32 1
  %530 = extractvalue { ptr, i8 } %525, 1
  store i8 %530, ptr %529, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %51) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %52) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %52) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %51) #0
  %531 = load ptr, ptr %42, align 8, !tbaa !5
  %532 = getelementptr inbounds %"class.HIR::GenericPath", ptr %531, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #0
  invoke void @_ZN3HIR10SimplePathC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %533 unwind label %551

533:                                              ; preds = %526
  %534 = invoke noundef zeroext i1 @_ZNK3HIR10SimplePatheqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %532, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %535 unwind label %555

535:                                              ; preds = %533
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #0
  br i1 %534, label %536, label %560

536:                                              ; preds = %535
  store i32 24, ptr %24, align 4
  br label %843

537:                                              ; preds = %519
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %11, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %12, align 4
  br label %550

541:                                              ; preds = %523
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %11, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %12, align 4
  br label %549

545:                                              ; preds = %524
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %11, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %51) #0
  br label %549

549:                                              ; preds = %545, %541
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %52) #0
  br label %550

550:                                              ; preds = %549, %537
  call void @llvm.lifetime.end.p0(i64 88, ptr %52) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %51) #0
  br label %853

551:                                              ; preds = %526
  %552 = landingpad { ptr, i32 }
          cleanup
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %11, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %12, align 4
  br label %559

555:                                              ; preds = %533
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %11, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %12, align 4
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #0
  br label %559

559:                                              ; preds = %555, %551
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #0
  br label %853

560:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #0
  %561 = load ptr, ptr %3, align 8, !tbaa !5
  %562 = load ptr, ptr %42, align 8, !tbaa !5
  %563 = getelementptr inbounds %"class.HIR::GenericPath", ptr %562, i32 0, i32 0
  %564 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %561, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(8) %563)
          to label %565 unwind label %578

565:                                              ; preds = %560
  store ptr %564, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 128, ptr %57) #0
  %566 = load ptr, ptr %43, align 8, !tbaa !5
  %567 = load ptr, ptr %42, align 8, !tbaa !5
  %568 = getelementptr inbounds %"class.HIR::GenericPath", ptr %567, i32 0, i32 1
  invoke void @_ZN17MonomorphStatePtrC2EPKN3HIR7TypeRefEPKNS0_10PathParamsES6_S6_S6_(ptr noundef nonnull align 8 dereferenceable(128) %57, ptr noundef %566, ptr noundef %568, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %569 unwind label %582

569:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #0
  store i32 0, ptr %58, align 4, !tbaa !32
  br label %570

570:                                              ; preds = %839, %569
  %571 = load i32, ptr %58, align 4, !tbaa !32
  %572 = zext i32 %571 to i64
  %573 = load ptr, ptr %56, align 8, !tbaa !5
  %574 = getelementptr inbounds %"class.HIR::Trait", ptr %573, i32 0, i32 6
  %575 = call noundef i64 @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %574) #0
  %576 = icmp ult i64 %572, %575
  br i1 %576, label %586, label %577

577:                                              ; preds = %570
  store i32 29, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #0
  br label %842

578:                                              ; preds = %560
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %11, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %12, align 4
  br label %852

582:                                              ; preds = %565
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %11, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %12, align 4
  br label %851

586:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #0
  %587 = load ptr, ptr %56, align 8, !tbaa !5
  %588 = getelementptr inbounds %"class.HIR::Trait", ptr %587, i32 0, i32 6
  store ptr %588, ptr %59, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #0
  %589 = load ptr, ptr %59, align 8, !tbaa !5
  %590 = call ptr @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %589) #0
  %591 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %60, i32 0, i32 0
  %592 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.474", ptr %591, i32 0, i32 0
  store ptr %590, ptr %592, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #0
  %593 = load ptr, ptr %59, align 8, !tbaa !5
  %594 = call ptr @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %593) #0
  %595 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %61, i32 0, i32 0
  %596 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.474", ptr %595, i32 0, i32 0
  store ptr %594, ptr %596, align 8
  br label %597

597:                                              ; preds = %831, %586
  %598 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #0
  br i1 %598, label %600, label %599

599:                                              ; preds = %597
  store i32 32, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #0
  br label %838

600:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #0
  %601 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #0
  store ptr %601, ptr %62, align 8, !tbaa !5
  %602 = load ptr, ptr %62, align 8, !tbaa !5
  %603 = getelementptr inbounds %"struct.std::pair.475", ptr %602, i32 0, i32 1
  %604 = getelementptr inbounds %"struct.std::pair.477", ptr %603, i32 0, i32 0
  %605 = load i32, ptr %604, align 8, !tbaa !134
  %606 = load i32, ptr %58, align 4, !tbaa !32
  %607 = add i32 3, %606
  %608 = icmp ne i32 %605, %607
  br i1 %608, label %609, label %610

609:                                              ; preds = %600
  store i32 33, ptr %24, align 4
  br label %828

610:                                              ; preds = %600
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #0
  %611 = load ptr, ptr %62, align 8, !tbaa !5
  %612 = getelementptr inbounds %"struct.std::pair.475", ptr %611, i32 0, i32 1
  %613 = getelementptr inbounds %"struct.std::pair.477", ptr %612, i32 0, i32 1
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8 %63, ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(32) %613, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %614 unwind label %638

614:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 88, ptr %64) #0
  %615 = load ptr, ptr %43, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %65, ptr noundef nonnull align 8 dereferenceable(8) %615)
          to label %616 unwind label %642

616:                                              ; preds = %614
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %617 unwind label %646

617:                                              ; preds = %616
  %618 = load ptr, ptr %62, align 8, !tbaa !5
  %619 = getelementptr inbounds %"struct.std::pair.475", ptr %618, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %619)
          to label %620 unwind label %650

620:                                              ; preds = %617
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %68)
          to label %621 unwind label %654

621:                                              ; preds = %620
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %64, ptr noundef %65, ptr noundef %66, ptr noundef %67, ptr noundef %68)
          to label %622 unwind label %658

622:                                              ; preds = %621
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #0
  br label %623

623:                                              ; preds = %622
  %624 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %625 unwind label %665

625:                                              ; preds = %623
  br i1 %624, label %626, label %669

626:                                              ; preds = %625
  %627 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %627, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %629 unwind label %665

629:                                              ; preds = %626
  %630 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %628, ptr noundef @.str.9)
          to label %631 unwind label %665

631:                                              ; preds = %629
  %632 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %630, ptr noundef nonnull align 8 dereferenceable(88) %64)
          to label %633 unwind label %665

633:                                              ; preds = %631
  %634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %632, ptr noundef @_ZSt3decRSt8ios_base)
          to label %635 unwind label %665

635:                                              ; preds = %633
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %634, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %637 unwind label %665

637:                                              ; preds = %635
  br label %669

638:                                              ; preds = %610
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %11, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %12, align 4
  br label %837

642:                                              ; preds = %614
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %11, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %12, align 4
  br label %836

646:                                              ; preds = %616
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %11, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %12, align 4
  br label %664

650:                                              ; preds = %617
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %11, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %12, align 4
  br label %663

654:                                              ; preds = %620
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %11, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %12, align 4
  br label %662

658:                                              ; preds = %621
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %11, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %12, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #0
  br label %662

662:                                              ; preds = %658, %654
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #0
  br label %663

663:                                              ; preds = %662, %650
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #0
  br label %664

664:                                              ; preds = %663, %646
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #0
  br label %836

665:                                              ; preds = %635, %633, %631, %629, %626, %623
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %11, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %12, align 4
  br label %835

669:                                              ; preds = %637, %625
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670
  %672 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %69) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #0
  store ptr null, ptr %70, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %69, ptr noundef nonnull align 8 dereferenceable(88) %64, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %673 unwind label %742

673:                                              ; preds = %671
  %674 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %672, ptr noundef nonnull align 8 dereferenceable(96) %69)
          to label %675 unwind label %746

675:                                              ; preds = %673
  %676 = getelementptr inbounds { ptr, i8 }, ptr %71, i32 0, i32 0
  %677 = extractvalue { ptr, i8 } %674, 0
  store ptr %677, ptr %676, align 8
  %678 = getelementptr inbounds { ptr, i8 }, ptr %71, i32 0, i32 1
  %679 = extractvalue { ptr, i8 } %674, 1
  store i8 %679, ptr %678, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %69) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %69) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #0
  %680 = getelementptr inbounds %"struct.(anonymous namespace)::EnumState", ptr %20, i32 0, i32 1
  %681 = getelementptr inbounds i8, ptr %680, i64 8
  %682 = getelementptr inbounds %struct.TraitResolveCommon, ptr %681, i32 0, i32 0
  %683 = load ptr, ptr %682, align 8, !tbaa !139
  %684 = load ptr, ptr %62, align 8, !tbaa !5
  %685 = getelementptr inbounds %"struct.std::pair.475", ptr %684, i32 0, i32 1
  %686 = getelementptr inbounds %"struct.std::pair.477", ptr %685, i32 0, i32 1
  %687 = getelementptr inbounds %"class.HIR::GenericPath", ptr %686, i32 0, i32 0
  %688 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %683, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(8) %687)
          to label %689 unwind label %751

689:                                              ; preds = %675
  store ptr %688, ptr %72, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #0
  %690 = load ptr, ptr %72, align 8, !tbaa !5
  %691 = getelementptr inbounds %"class.HIR::Trait", ptr %690, i32 0, i32 5
  %692 = load ptr, ptr %62, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.std::pair.475", ptr %692, i32 0, i32 0
  %694 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZNKSt13unordered_mapI8RcStringN3HIR14TraitValueItemESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE2atERS8_(ptr noundef nonnull align 8 dereferenceable(56) %691, ptr noundef nonnull align 8 dereferenceable(8) %693)
          to label %695 unwind label %755

695:                                              ; preds = %689
  store ptr %694, ptr %73, align 8, !tbaa !5
  %696 = load ptr, ptr %73, align 8, !tbaa !5
  %697 = invoke noundef zeroext i1 @_ZNK3HIR14TraitValueItem11is_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %696)
          to label %698 unwind label %755

698:                                              ; preds = %695
  br i1 %697, label %699, label %827

699:                                              ; preds = %698
  %700 = load ptr, ptr %73, align 8, !tbaa !5
  %701 = invoke noundef nonnull align 8 dereferenceable(352) ptr @_ZNK3HIR14TraitValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %700)
          to label %702 unwind label %755

702:                                              ; preds = %699
  %703 = getelementptr inbounds %"class.HIR::Function", ptr %701, i32 0, i32 2
  %704 = load i32, ptr %703, align 8, !tbaa !140
  %705 = icmp eq i32 %704, 1
  br i1 %705, label %706, label %827

706:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #0
  %707 = load ptr, ptr %62, align 8, !tbaa !5
  %708 = getelementptr inbounds %"struct.std::pair.475", ptr %707, i32 0, i32 1
  %709 = getelementptr inbounds %"struct.std::pair.477", ptr %708, i32 0, i32 1
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8 %74, ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(32) %709, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %710 unwind label %759

710:                                              ; preds = %706
  %711 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %712 unwind label %763

712:                                              ; preds = %710
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #0
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #0
  call void @llvm.lifetime.start.p0(i64 88, ptr %75) #0
  %713 = load ptr, ptr %43, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %76, ptr noundef nonnull align 8 dereferenceable(8) %713)
          to label %714 unwind label %768

714:                                              ; preds = %712
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %715 unwind label %772

715:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #0
  call void @llvm.lifetime.start.p0(i64 376, ptr %80) #0
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %80)
          to label %716 unwind label %776

716:                                              ; preds = %715
  %717 = load ptr, ptr %62, align 8, !tbaa !5
  %718 = getelementptr inbounds %"struct.std::pair.475", ptr %717, i32 0, i32 0
  %719 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE8RcStringEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %80, ptr noundef nonnull align 8 dereferenceable(8) %718)
          to label %720 unwind label %780

720:                                              ; preds = %716
  %721 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA5_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %719, ptr noundef nonnull align 1 dereferenceable(5) @.str.10)
          to label %722 unwind label %780

722:                                              ; preds = %720
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(112) %721)
          to label %723 unwind label %780

723:                                              ; preds = %722
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.RcString) align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %724 unwind label %784

724:                                              ; preds = %723
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %81)
          to label %725 unwind label %788

725:                                              ; preds = %724
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %75, ptr noundef %76, ptr noundef %77, ptr noundef %78, ptr noundef %81)
          to label %726 unwind label %792

726:                                              ; preds = %725
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %81) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #0
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %80) #0
  call void @llvm.lifetime.end.p0(i64 376, ptr %80) #0
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #0
  br label %727

727:                                              ; preds = %726
  %728 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %729 unwind label %801

729:                                              ; preds = %727
  br i1 %728, label %730, label %805

730:                                              ; preds = %729
  %731 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %732 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %731, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %733 unwind label %801

733:                                              ; preds = %730
  %734 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %732, ptr noundef @.str.9)
          to label %735 unwind label %801

735:                                              ; preds = %733
  %736 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef nonnull align 8 dereferenceable(88) %75)
          to label %737 unwind label %801

737:                                              ; preds = %735
  %738 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %736, ptr noundef @_ZSt3decRSt8ios_base)
          to label %739 unwind label %801

739:                                              ; preds = %737
  %740 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %738, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %741 unwind label %801

741:                                              ; preds = %739
  br label %805

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

746:                                              ; preds = %673
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %11, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %69) #0
  br label %750

750:                                              ; preds = %746, %742
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %69) #0
  br label %835

751:                                              ; preds = %675
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %11, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %12, align 4
  br label %834

755:                                              ; preds = %699, %695, %689
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %11, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %12, align 4
  br label %833

759:                                              ; preds = %706
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %11, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %12, align 4
  br label %767

763:                                              ; preds = %710
  %764 = landingpad { ptr, i32 }
          cleanup
  %765 = extractvalue { ptr, i32 } %764, 0
  store ptr %765, ptr %11, align 8
  %766 = extractvalue { ptr, i32 } %764, 1
  store i32 %766, ptr %12, align 4
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #0
  br label %767

767:                                              ; preds = %763, %759
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #0
  br label %833

768:                                              ; preds = %712
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %11, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %12, align 4
  br label %826

772:                                              ; preds = %714
  %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
  br label %800

776:                                              ; preds = %715
  %777 = landingpad { ptr, i32 }
          cleanup
  %778 = extractvalue { ptr, i32 } %777, 0
  store ptr %778, ptr %11, align 8
  %779 = extractvalue { ptr, i32 } %777, 1
  store i32 %779, ptr %12, align 4
  br label %799

780:                                              ; preds = %722, %720, %716
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %11, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %12, align 4
  br label %798

784:                                              ; preds = %723
  %785 = landingpad { ptr, i32 }
          cleanup
  %786 = extractvalue { ptr, i32 } %785, 0
  store ptr %786, ptr %11, align 8
  %787 = extractvalue { ptr, i32 } %785, 1
  store i32 %787, ptr %12, align 4
  br label %797

788:                                              ; preds = %724
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %11, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %12, align 4
  br label %796

792:                                              ; preds = %725
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %11, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %12, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %81) #0
  br label %796

796:                                              ; preds = %792, %788
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #0
  br label %797

797:                                              ; preds = %796, %784
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #0
  br label %798

798:                                              ; preds = %797, %780
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %80) #0
  br label %799

799:                                              ; preds = %798, %776
  call void @llvm.lifetime.end.p0(i64 376, ptr %80) #0
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #0
  br label %800

800:                                              ; preds = %799, %772
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #0
  br label %826

801:                                              ; preds = %739, %737, %735, %733, %730, %727
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %11, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %12, align 4
  br label %825

805:                                              ; preds = %741, %729
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  %808 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %82) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #0
  store ptr null, ptr %83, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %82, ptr noundef nonnull align 8 dereferenceable(88) %75, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %809 unwind label %816

809:                                              ; preds = %807
  %810 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %808, ptr noundef nonnull align 8 dereferenceable(96) %82)
          to label %811 unwind label %820

811:                                              ; preds = %809
  %812 = getelementptr inbounds { ptr, i8 }, ptr %84, i32 0, i32 0
  %813 = extractvalue { ptr, i8 } %810, 0
  store ptr %813, ptr %812, align 8
  %814 = getelementptr inbounds { ptr, i8 }, ptr %84, i32 0, i32 1
  %815 = extractvalue { ptr, i8 } %810, 1
  store i8 %815, ptr %814, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %82) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %82) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %75) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %75) #0
  br label %827

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

820:                                              ; preds = %809
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %11, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %82) #0
  br label %824

824:                                              ; preds = %820, %816
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %82) #0
  br label %825

825:                                              ; preds = %824, %801
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %75) #0
  br label %826

826:                                              ; preds = %825, %800, %768
  call void @llvm.lifetime.end.p0(i64 88, ptr %75) #0
  br label %833

827:                                              ; preds = %811, %702, %698
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %64) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %64) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #0
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #0
  store i32 0, ptr %24, align 4
  br label %828

828:                                              ; preds = %827, %609
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #0
  %829 = load i32, ptr %24, align 4
  switch i32 %829, label %1396 [
    i32 0, label %830
    i32 33, label %831
  ]

830:                                              ; preds = %828
  br label %831

831:                                              ; preds = %830, %828
  %832 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #0
  br label %597

833:                                              ; preds = %826, %767, %755
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #0
  br label %834

834:                                              ; preds = %833, %751
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #0
  br label %835

835:                                              ; preds = %834, %750, %665
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %64) #0
  br label %836

836:                                              ; preds = %835, %664, %642
  call void @llvm.lifetime.end.p0(i64 88, ptr %64) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #0
  br label %837

837:                                              ; preds = %836, %638
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #0
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #0
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %57) #0
  br label %851

838:                                              ; preds = %599
  br label %839

839:                                              ; preds = %838
  %840 = load i32, ptr %58, align 4, !tbaa !32
  %841 = add i32 %840, 1
  store i32 %841, ptr %58, align 4, !tbaa !32
  br label %570, !llvm.loop !177

842:                                              ; preds = %577
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %57) #0
  call void @llvm.lifetime.end.p0(i64 128, ptr %57) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #0
  store i32 0, ptr %24, align 4
  br label %843

843:                                              ; preds = %842, %536
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %44) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #0
  %844 = load i32, ptr %24, align 4
  switch i32 %844, label %846 [
    i32 0, label %845
  ]

845:                                              ; preds = %843
  store i32 0, ptr %24, align 4
  br label %846

846:                                              ; preds = %845, %843
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #0
  %847 = load i32, ptr %24, align 4
  switch i32 %847, label %1396 [
    i32 0, label %848
    i32 24, label %849
  ]

848:                                              ; preds = %846
  br label %849

849:                                              ; preds = %848, %846
  %850 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #0
  br label %392

851:                                              ; preds = %837, %582
  call void @llvm.lifetime.end.p0(i64 128, ptr %57) #0
  br label %852

852:                                              ; preds = %851, %578
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #0
  br label %853

853:                                              ; preds = %852, %559, %550, %516, %476
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #0
  br label %854

854:                                              ; preds = %853, %475, %458
  call void @llvm.lifetime.end.p0(i64 88, ptr %44) #0
  br label %855

855:                                              ; preds = %854, %454
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #0
  br label %856

856:                                              ; preds = %855, %450
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #0
  br label %857

857:                                              ; preds = %856, %446
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #0
  br label %1388

858:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #0
  %859 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 13
  store ptr %859, ptr %85, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #0
  %860 = load ptr, ptr %85, align 8, !tbaa !5
  %861 = call ptr @_ZNSt6vectorISt4pairIN3HIR7TypeRefEbESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %860) #0
  %862 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.494", ptr %86, i32 0, i32 0
  store ptr %861, ptr %862, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #0
  %863 = load ptr, ptr %85, align 8, !tbaa !5
  %864 = call ptr @_ZNSt6vectorISt4pairIN3HIR7TypeRefEbESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %863) #0
  %865 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.494", ptr %87, i32 0, i32 0
  store ptr %864, ptr %865, align 8
  br label %866

866:                                              ; preds = %1078, %858
  %867 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %87) #0
  br i1 %867, label %869, label %868

868:                                              ; preds = %866
  store i32 38, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #0
  br label %1084

869:                                              ; preds = %866
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #0
  %870 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #0
  store ptr %870, ptr %88, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #0
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89)
          to label %871 unwind label %877

871:                                              ; preds = %869
  %872 = load ptr, ptr %88, align 8, !tbaa !5
  %873 = getelementptr inbounds %"struct.std::pair.495", ptr %872, i32 0, i32 1
  %874 = load i8, ptr %873, align 8, !tbaa !178, !range !124, !noundef !125
  %875 = trunc i8 %874 to i1
  br i1 %875, label %876, label %881

876:                                              ; preds = %871
  store i32 39, ptr %24, align 4
  br label %1072

877:                                              ; preds = %869
  %878 = landingpad { ptr, i32 }
          cleanup
  %879 = extractvalue { ptr, i32 } %878, 0
  store ptr %879, ptr %11, align 8
  %880 = extractvalue { ptr, i32 } %878, 1
  store i32 %880, ptr %12, align 4
  br label %1083

881:                                              ; preds = %871
  %882 = load ptr, ptr %88, align 8, !tbaa !5
  %883 = getelementptr inbounds %"struct.std::pair.495", ptr %882, i32 0, i32 0
  %884 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %883)
          to label %885 unwind label %896

885:                                              ; preds = %881
  %886 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData14is_TraitObjectEv(ptr noundef nonnull align 8 dereferenceable(184) %884)
          to label %887 unwind label %896

887:                                              ; preds = %885
  br i1 %886, label %895, label %888

888:                                              ; preds = %887
  %889 = load ptr, ptr %88, align 8, !tbaa !5
  %890 = getelementptr inbounds %"struct.std::pair.495", ptr %889, i32 0, i32 0
  %891 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %890)
          to label %892 unwind label %896

892:                                              ; preds = %888
  %893 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData8is_SliceEv(ptr noundef nonnull align 8 dereferenceable(184) %891)
          to label %894 unwind label %896

894:                                              ; preds = %892
  br i1 %893, label %895, label %900

895:                                              ; preds = %894, %887
  store i32 39, ptr %24, align 4
  br label %1072

896:                                              ; preds = %900, %892, %888, %885, %881
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %11, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %12, align 4
  br label %1082

900:                                              ; preds = %894
  %901 = getelementptr inbounds %"struct.(anonymous namespace)::EnumState", ptr %20, i32 0, i32 1
  %902 = load ptr, ptr %88, align 8, !tbaa !5
  %903 = getelementptr inbounds %"struct.std::pair.495", ptr %902, i32 0, i32 0
  %904 = invoke noundef zeroext i1 @_ZNK18StaticTraitResolve20type_needs_drop_glueERK4SpanRKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(424) %901, ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %903)
          to label %905 unwind label %896

905:                                              ; preds = %900
  br i1 %904, label %907, label %906

906:                                              ; preds = %905
  store i32 39, ptr %24, align 4
  br label %1072

907:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 88, ptr %90) #0
  %908 = load ptr, ptr %88, align 8, !tbaa !5
  %909 = getelementptr inbounds %"struct.std::pair.495", ptr %908, i32 0, i32 0
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %91, ptr noundef nonnull align 8 dereferenceable(8) %909)
          to label %910 unwind label %929

910:                                              ; preds = %907
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue)
          to label %911 unwind label %933

911:                                              ; preds = %910
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %93)
          to label %912 unwind label %937

912:                                              ; preds = %911
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %90, ptr noundef %91, ptr noundef %92, ptr noundef %93)
          to label %913 unwind label %941

913:                                              ; preds = %912
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #0
  br label %914

914:                                              ; preds = %913
  %915 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %916 unwind label %947

916:                                              ; preds = %914
  br i1 %915, label %917, label %951

917:                                              ; preds = %916
  %918 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %919 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %918, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %920 unwind label %947

920:                                              ; preds = %917
  %921 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %919, ptr noundef @.str.9)
          to label %922 unwind label %947

922:                                              ; preds = %920
  %923 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %921, ptr noundef nonnull align 8 dereferenceable(88) %90)
          to label %924 unwind label %947

924:                                              ; preds = %922
  %925 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %923, ptr noundef @_ZSt3decRSt8ios_base)
          to label %926 unwind label %947

926:                                              ; preds = %924
  %927 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %925, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %928 unwind label %947

928:                                              ; preds = %926
  br label %951

929:                                              ; preds = %907
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %11, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %12, align 4
  br label %1081

933:                                              ; preds = %910
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %11, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %12, align 4
  br label %946

937:                                              ; preds = %911
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %11, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %12, align 4
  br label %945

941:                                              ; preds = %912
  %942 = landingpad { ptr, i32 }
          cleanup
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %11, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %12, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #0
  br label %945

945:                                              ; preds = %941, %937
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #0
  br label %946

946:                                              ; preds = %945, %933
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #0
  br label %1081

947:                                              ; preds = %974, %972, %968, %965, %957, %926, %924, %922, %920, %917, %914
  %948 = landingpad { ptr, i32 }
          cleanup
  %949 = extractvalue { ptr, i32 } %948, 0
  store ptr %949, ptr %11, align 8
  %950 = extractvalue { ptr, i32 } %948, 1
  store i32 %950, ptr %12, align 4
  br label %1080

951:                                              ; preds = %928, %916
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952
  %954 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %94) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #0
  store ptr null, ptr %95, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %94, ptr noundef nonnull align 8 dereferenceable(88) %90, ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %955 unwind label %1008

955:                                              ; preds = %953
  %956 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %954, ptr noundef nonnull align 8 dereferenceable(96) %94)
          to label %957 unwind label %1012

957:                                              ; preds = %955
  %958 = getelementptr inbounds { ptr, i8 }, ptr %96, i32 0, i32 0
  %959 = extractvalue { ptr, i8 } %956, 0
  store ptr %959, ptr %958, align 8
  %960 = getelementptr inbounds { ptr, i8 }, ptr %96, i32 0, i32 1
  %961 = extractvalue { ptr, i8 } %956, 1
  store i8 %961, ptr %960, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %94) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %94) #0
  %962 = load ptr, ptr %88, align 8, !tbaa !5
  %963 = getelementptr inbounds %"struct.std::pair.495", ptr %962, i32 0, i32 0
  %964 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %963)
          to label %965 unwind label %947

965:                                              ; preds = %957
  %966 = invoke noundef zeroext i1 @_ZNK3HIR8TypeData7is_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %964)
          to label %967 unwind label %947

967:                                              ; preds = %965
  br i1 %966, label %968, label %1071

968:                                              ; preds = %967
  %969 = load ptr, ptr %88, align 8, !tbaa !5
  %970 = getelementptr inbounds %"struct.std::pair.495", ptr %969, i32 0, i32 0
  %971 = invoke noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %970)
          to label %972 unwind label %947

972:                                              ; preds = %968
  %973 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %971)
          to label %974 unwind label %947

974:                                              ; preds = %972
  %975 = getelementptr inbounds %"struct.HIR::TypeData_Path", ptr %973, i32 0, i32 1
  %976 = invoke noundef ptr @_ZNK3HIR15TypePathBinding18get_trait_markingsEv(ptr noundef nonnull align 8 dereferenceable(16) %975)
          to label %977 unwind label %947

977:                                              ; preds = %974
  %978 = getelementptr inbounds %"struct.HIR::TraitMarkings", ptr %976, i32 0, i32 1
  %979 = load i8, ptr %978, align 1, !tbaa !180, !range !124, !noundef !125
  %980 = trunc i8 %979 to i1
  br i1 %980, label %981, label %1071

981:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 88, ptr %97) #0
  %982 = load ptr, ptr %88, align 8, !tbaa !5
  %983 = getelementptr inbounds %"struct.std::pair.495", ptr %982, i32 0, i32 0
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %98, ptr noundef nonnull align 8 dereferenceable(8) %983)
          to label %984 unwind label %1017

984:                                              ; preds = %981
  %985 = getelementptr inbounds %"struct.(anonymous namespace)::EnumState", ptr %20, i32 0, i32 1
  %986 = getelementptr inbounds i8, ptr %985, i64 8
  %987 = getelementptr inbounds %struct.TraitResolveCommon, ptr %986, i32 0, i32 7
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %987)
          to label %988 unwind label %1021

988:                                              ; preds = %984
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef %100)
          to label %989 unwind label %1025

989:                                              ; preds = %988
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_113rcstring_dropE)
          to label %990 unwind label %1029

990:                                              ; preds = %989
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %102)
          to label %991 unwind label %1033

991:                                              ; preds = %990
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %97, ptr noundef %98, ptr noundef %99, ptr noundef %101, ptr noundef %102)
          to label %992 unwind label %1037

992:                                              ; preds = %991
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #0
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #0
  br label %993

993:                                              ; preds = %992
  %994 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %995 unwind label %1045

995:                                              ; preds = %993
  br i1 %994, label %996, label %1049

996:                                              ; preds = %995
  %997 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %998 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %997, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %999 unwind label %1045

999:                                              ; preds = %996
  %1000 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %998, ptr noundef @.str.9)
          to label %1001 unwind label %1045

1001:                                             ; preds = %999
  %1002 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1000, ptr noundef nonnull align 8 dereferenceable(88) %97)
          to label %1003 unwind label %1045

1003:                                             ; preds = %1001
  %1004 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1002, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1005 unwind label %1045

1005:                                             ; preds = %1003
  %1006 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1004, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1007 unwind label %1045

1007:                                             ; preds = %1005
  br label %1049

1008:                                             ; preds = %953
  %1009 = landingpad { ptr, i32 }
          cleanup
  %1010 = extractvalue { ptr, i32 } %1009, 0
  store ptr %1010, ptr %11, align 8
  %1011 = extractvalue { ptr, i32 } %1009, 1
  store i32 %1011, ptr %12, align 4
  br label %1016

1012:                                             ; preds = %955
  %1013 = landingpad { ptr, i32 }
          cleanup
  %1014 = extractvalue { ptr, i32 } %1013, 0
  store ptr %1014, ptr %11, align 8
  %1015 = extractvalue { ptr, i32 } %1013, 1
  store i32 %1015, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %94) #0
  br label %1016

1016:                                             ; preds = %1012, %1008
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %94) #0
  br label %1080

1017:                                             ; preds = %981
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %11, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %12, align 4
  br label %1070

1021:                                             ; preds = %984
  %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 %1044

1025:                                             ; preds = %988
  %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 %1043

1029:                                             ; preds = %989
  %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
  br label %1042

1033:                                             ; preds = %990
  %1034 = landingpad { ptr, i32 }
          cleanup
  %1035 = extractvalue { ptr, i32 } %1034, 0
  store ptr %1035, ptr %11, align 8
  %1036 = extractvalue { ptr, i32 } %1034, 1
  store i32 %1036, ptr %12, align 4
  br label %1041

1037:                                             ; preds = %991
  %1038 = landingpad { ptr, i32 }
          cleanup
  %1039 = extractvalue { ptr, i32 } %1038, 0
  store ptr %1039, ptr %11, align 8
  %1040 = extractvalue { ptr, i32 } %1038, 1
  store i32 %1040, ptr %12, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #0
  br label %1041

1041:                                             ; preds = %1037, %1033
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #0
  br label %1042

1042:                                             ; preds = %1041, %1029
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #0
  br label %1043

1043:                                             ; preds = %1042, %1025
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #0
  br label %1044

1044:                                             ; preds = %1043, %1021
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #0
  br label %1070

1045:                                             ; preds = %1005, %1003, %1001, %999, %996, %993
  %1046 = landingpad { ptr, i32 }
          cleanup
  %1047 = extractvalue { ptr, i32 } %1046, 0
  store ptr %1047, ptr %11, align 8
  %1048 = extractvalue { ptr, i32 } %1046, 1
  store i32 %1048, ptr %12, align 4
  br label %1069

1049:                                             ; preds = %1007, %995
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  %1052 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %103) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #0
  store ptr null, ptr %104, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %103, ptr noundef nonnull align 8 dereferenceable(88) %97, ptr noundef nonnull align 8 dereferenceable(8) %104)
          to label %1053 unwind label %1060

1053:                                             ; preds = %1051
  %1054 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %1052, ptr noundef nonnull align 8 dereferenceable(96) %103)
          to label %1055 unwind label %1064

1055:                                             ; preds = %1053
  %1056 = getelementptr inbounds { ptr, i8 }, ptr %105, i32 0, i32 0
  %1057 = extractvalue { ptr, i8 } %1054, 0
  store ptr %1057, ptr %1056, align 8
  %1058 = getelementptr inbounds { ptr, i8 }, ptr %105, i32 0, i32 1
  %1059 = extractvalue { ptr, i8 } %1054, 1
  store i8 %1059, ptr %1058, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %103) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %103) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %97) #0
  br label %1071

1060:                                             ; preds = %1051
  %1061 = landingpad { ptr, i32 }
          cleanup
  %1062 = extractvalue { ptr, i32 } %1061, 0
  store ptr %1062, ptr %11, align 8
  %1063 = extractvalue { ptr, i32 } %1061, 1
  store i32 %1063, ptr %12, align 4
  br label %1068

1064:                                             ; preds = %1053
  %1065 = landingpad { ptr, i32 }
          cleanup
  %1066 = extractvalue { ptr, i32 } %1065, 0
  store ptr %1066, ptr %11, align 8
  %1067 = extractvalue { ptr, i32 } %1065, 1
  store i32 %1067, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %103) #0
  br label %1068

1068:                                             ; preds = %1064, %1060
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %103) #0
  br label %1069

1069:                                             ; preds = %1068, %1045
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #0
  br label %1070

1070:                                             ; preds = %1069, %1044, %1017
  call void @llvm.lifetime.end.p0(i64 88, ptr %97) #0
  br label %1080

1071:                                             ; preds = %1055, %977, %967
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %90) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %90) #0
  store i32 0, ptr %24, align 4
  br label %1072

1072:                                             ; preds = %1071, %906, %895, %876
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #0
  %1073 = load i32, ptr %24, align 4
  switch i32 %1073, label %1075 [
    i32 0, label %1074
  ]

1074:                                             ; preds = %1072
  store i32 0, ptr %24, align 4
  br label %1075

1075:                                             ; preds = %1074, %1072
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #0
  %1076 = load i32, ptr %24, align 4
  switch i32 %1076, label %1396 [
    i32 0, label %1077
    i32 39, label %1078
  ]

1077:                                             ; preds = %1075
  br label %1078

1078:                                             ; preds = %1077, %1075
  %1079 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #0
  br label %866

1080:                                             ; preds = %1070, %1016, %947
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %90) #0
  br label %1081

1081:                                             ; preds = %1080, %946, %929
  call void @llvm.lifetime.end.p0(i64 88, ptr %90) #0
  br label %1082

1082:                                             ; preds = %1081, %896
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #0
  br label %1083

1083:                                             ; preds = %1082, %877
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #0
  br label %1388

1084:                                             ; preds = %868
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #0
  %1085 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 8
  store ptr %1085, ptr %106, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #0
  %1086 = load ptr, ptr %106, align 8, !tbaa !5
  %1087 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1086) #0
  %1088 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %107, i32 0, i32 0
  store ptr %1087, ptr %1088, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #0
  %1089 = load ptr, ptr %106, align 8, !tbaa !5
  %1090 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1089) #0
  %1091 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %108, i32 0, i32 0
  store ptr %1090, ptr %1091, align 8
  br label %1092

1092:                                             ; preds = %1184, %1084
  %1093 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEES4_(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(8) %108) #0
  br i1 %1093, label %1095, label %1094

1094:                                             ; preds = %1092
  store i32 44, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #0
  br label %1198

1095:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #0
  %1096 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %107) #0
  store ptr %1096, ptr %109, align 8, !tbaa !5
  %1097 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone acquire, align 8
  %1098 = icmp eq i8 %1097, 0
  br i1 %1098, label %1099, label %1105, !prof !131

1099:                                             ; preds = %1095
  %1100 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone) #0
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1105

1102:                                             ; preds = %1099
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind writable sret(%class.RcString) align 8 @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone, ptr noundef @.str.11)
          to label %1103 unwind label %1132

1103:                                             ; preds = %1102
  %1104 = call i32 @__cxa_atexit(ptr @_ZN8RcStringD1Ev, ptr @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone) #0
  br label %1105

1105:                                             ; preds = %1103, %1099, %1095
  call void @llvm.lifetime.start.p0(i64 88, ptr %110) #0
  %1106 = load ptr, ptr %109, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %111, ptr noundef nonnull align 8 dereferenceable(8) %1106)
          to label %1107 unwind label %1136

1107:                                             ; preds = %1105
  %1108 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #0
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %1109 unwind label %1140

1109:                                             ; preds = %1107
  %1110 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944) %1108, ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef @.str.11)
          to label %1111 unwind label %1144

1111:                                             ; preds = %1109
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(8) %1110)
          to label %1112 unwind label %1144

1112:                                             ; preds = %1111
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef %113)
          to label %1113 unwind label %1148

1113:                                             ; preds = %1112
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone)
          to label %1114 unwind label %1152

1114:                                             ; preds = %1113
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %116)
          to label %1115 unwind label %1156

1115:                                             ; preds = %1114
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %110, ptr noundef %111, ptr noundef %112, ptr noundef %115, ptr noundef %116)
          to label %1116 unwind label %1160

1116:                                             ; preds = %1115
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #0
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #0
  br label %1117

1117:                                             ; preds = %1116
  %1118 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1119 unwind label %1169

1119:                                             ; preds = %1117
  br i1 %1118, label %1120, label %1173

1120:                                             ; preds = %1119
  %1121 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %1122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1121, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %1123 unwind label %1169

1123:                                             ; preds = %1120
  %1124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1122, ptr noundef @.str.9)
          to label %1125 unwind label %1169

1125:                                             ; preds = %1123
  %1126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1124, ptr noundef nonnull align 8 dereferenceable(88) %110)
          to label %1127 unwind label %1169

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

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

1131:                                             ; preds = %1129
  br label %1173

1132:                                             ; preds = %1102
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %11, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %12, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone) #0
  br label %1197

1136:                                             ; preds = %1105
  %1137 = landingpad { ptr, i32 }
          cleanup
  %1138 = extractvalue { ptr, i32 } %1137, 0
  store ptr %1138, ptr %11, align 8
  %1139 = extractvalue { ptr, i32 } %1137, 1
  store i32 %1139, ptr %12, align 4
  br label %1196

1140:                                             ; preds = %1107
  %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 %1168

1144:                                             ; preds = %1111, %1109
  %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 %1167

1148:                                             ; preds = %1112
  %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 %1166

1152:                                             ; preds = %1113
  %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
  br label %1165

1156:                                             ; preds = %1114
  %1157 = landingpad { ptr, i32 }
          cleanup
  %1158 = extractvalue { ptr, i32 } %1157, 0
  store ptr %1158, ptr %11, align 8
  %1159 = extractvalue { ptr, i32 } %1157, 1
  store i32 %1159, ptr %12, align 4
  br label %1164

1160:                                             ; preds = %1115
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %11, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %12, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #0
  br label %1164

1164:                                             ; preds = %1160, %1156
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #0
  br label %1165

1165:                                             ; preds = %1164, %1152
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #0
  br label %1166

1166:                                             ; preds = %1165, %1148
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #0
  br label %1167

1167:                                             ; preds = %1166, %1144
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #0
  br label %1168

1168:                                             ; preds = %1167, %1140
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #0
  br label %1196

1169:                                             ; preds = %1129, %1127, %1125, %1123, %1120, %1117
  %1170 = landingpad { ptr, i32 }
          cleanup
  %1171 = extractvalue { ptr, i32 } %1170, 0
  store ptr %1171, ptr %11, align 8
  %1172 = extractvalue { ptr, i32 } %1170, 1
  store i32 %1172, ptr %12, align 4
  br label %1195

1173:                                             ; preds = %1131, %1119
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174
  %1176 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %117) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #0
  store ptr null, ptr %118, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %117, ptr noundef nonnull align 8 dereferenceable(88) %110, ptr noundef nonnull align 8 dereferenceable(8) %118)
          to label %1177 unwind label %1186

1177:                                             ; preds = %1175
  %1178 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %1176, ptr noundef nonnull align 8 dereferenceable(96) %117)
          to label %1179 unwind label %1190

1179:                                             ; preds = %1177
  %1180 = getelementptr inbounds { ptr, i8 }, ptr %119, i32 0, i32 0
  %1181 = extractvalue { ptr, i8 } %1178, 0
  store ptr %1181, ptr %1180, align 8
  %1182 = getelementptr inbounds { ptr, i8 }, ptr %119, i32 0, i32 1
  %1183 = extractvalue { ptr, i8 } %1178, 1
  store i8 %1183, ptr %1182, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %117) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %117) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %110) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %110) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #0
  br label %1184

1184:                                             ; preds = %1179
  %1185 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %107) #0
  br label %1092

1186:                                             ; preds = %1175
  %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 = %1177
  %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 @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %117) #0
  br label %1194

1194:                                             ; preds = %1190, %1186
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %117) #0
  br label %1195

1195:                                             ; preds = %1194, %1169
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %110) #0
  br label %1196

1196:                                             ; preds = %1195, %1168, %1136
  call void @llvm.lifetime.end.p0(i64 88, ptr %110) #0
  br label %1197

1197:                                             ; preds = %1196, %1132
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #0
  br label %1388

1198:                                             ; preds = %1094
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #0
  %1199 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 10
  store ptr %1199, ptr %120, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #0
  %1200 = load ptr, ptr %120, align 8, !tbaa !5
  %1201 = call ptr @_ZNKSt3setIN3HIR4PathESt4lessIS1_ESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1200) #0
  %1202 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.531", ptr %121, i32 0, i32 0
  store ptr %1201, ptr %1202, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #0
  %1203 = load ptr, ptr %120, align 8, !tbaa !5
  %1204 = call ptr @_ZNKSt3setIN3HIR4PathESt4lessIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1203) #0
  %1205 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.531", ptr %122, i32 0, i32 0
  store ptr %1204, ptr %1205, align 8
  br label %1206

1206:                                             ; preds = %1244, %1198
  %1207 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR4PathEES4_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %122) #0
  br i1 %1207, label %1209, label %1208

1208:                                             ; preds = %1206
  store i32 48, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #0
  br label %1261

1209:                                             ; preds = %1206
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #0
  %1210 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt23_Rb_tree_const_iteratorIN3HIR4PathEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %121) #0
  store ptr %1210, ptr %123, align 8, !tbaa !5
  br label %1211

1211:                                             ; preds = %1209
  %1212 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1213 unwind label %1227

1213:                                             ; preds = %1211
  br i1 %1212, label %1214, label %1231

1214:                                             ; preds = %1213
  %1215 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %1216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1215, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %1217 unwind label %1227

1217:                                             ; preds = %1214
  %1218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1216, ptr noundef @.str.9)
          to label %1219 unwind label %1227

1219:                                             ; preds = %1217
  %1220 = load ptr, ptr %123, align 8, !tbaa !5
  %1221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1218, ptr noundef nonnull align 8 dereferenceable(88) %1220)
          to label %1222 unwind label %1227

1222:                                             ; preds = %1219
  %1223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1221, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1224 unwind label %1227

1224:                                             ; preds = %1222
  %1225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1223, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1226 unwind label %1227

1226:                                             ; preds = %1224
  br label %1231

1227:                                             ; preds = %1224, %1222, %1219, %1217, %1214, %1211
  %1228 = landingpad { ptr, i32 }
          cleanup
  %1229 = extractvalue { ptr, i32 } %1228, 0
  store ptr %1229, ptr %11, align 8
  %1230 = extractvalue { ptr, i32 } %1228, 1
  store i32 %1230, ptr %12, align 4
  br label %1260

1231:                                             ; preds = %1226, %1213
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

1233:                                             ; preds = %1232
  %1234 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %124) #0
  call void @llvm.lifetime.start.p0(i64 88, ptr %125) #0
  %1235 = load ptr, ptr %123, align 8, !tbaa !5
  invoke void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::Path") align 8 %125, ptr noundef nonnull align 8 dereferenceable(88) %1235)
          to label %1236 unwind label %1246

1236:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #0
  store ptr null, ptr %126, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %124, ptr noundef nonnull align 8 dereferenceable(88) %125, ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %1237 unwind label %1250

1237:                                             ; preds = %1236
  %1238 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %1234, ptr noundef nonnull align 8 dereferenceable(96) %124)
          to label %1239 unwind label %1254

1239:                                             ; preds = %1237
  %1240 = getelementptr inbounds { ptr, i8 }, ptr %127, i32 0, i32 0
  %1241 = extractvalue { ptr, i8 } %1238, 0
  store ptr %1241, ptr %1240, align 8
  %1242 = getelementptr inbounds { ptr, i8 }, ptr %127, i32 0, i32 1
  %1243 = extractvalue { ptr, i8 } %1238, 1
  store i8 %1243, ptr %1242, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %124) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %125) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %125) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %124) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #0
  br label %1244

1244:                                             ; preds = %1239
  %1245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN3HIR4PathEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %121) #0
  br label %1206

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

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

1254:                                             ; preds = %1237
  %1255 = landingpad { ptr, i32 }
          cleanup
  %1256 = extractvalue { ptr, i32 } %1255, 0
  store ptr %1256, ptr %11, align 8
  %1257 = extractvalue { ptr, i32 } %1255, 1
  store i32 %1257, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %124) #0
  br label %1258

1258:                                             ; preds = %1254, %1250
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %125) #0
  br label %1259

1259:                                             ; preds = %1258, %1246
  call void @llvm.lifetime.end.p0(i64 88, ptr %125) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %124) #0
  br label %1260

1260:                                             ; preds = %1259, %1227
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #0
  br label %1388

1261:                                             ; preds = %1208
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #0
  %1262 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 9
  store ptr %1262, ptr %128, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #0
  %1263 = load ptr, ptr %128, align 8, !tbaa !5
  %1264 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1263) #0
  %1265 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %129, i32 0, i32 0
  store ptr %1264, ptr %1265, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #0
  %1266 = load ptr, ptr %128, align 8, !tbaa !5
  %1267 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1266) #0
  %1268 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %130, i32 0, i32 0
  store ptr %1267, ptr %1268, align 8
  br label %1269

1269:                                             ; preds = %1361, %1261
  %1270 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEES4_(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %130) #0
  br i1 %1270, label %1272, label %1271

1271:                                             ; preds = %1269
  store i32 52, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #0
  br label %1375

1272:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #0
  %1273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %129) #0
  store ptr %1273, ptr %131, align 8, !tbaa !5
  %1274 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item acquire, align 8
  %1275 = icmp eq i8 %1274, 0
  br i1 %1275, label %1276, label %1282, !prof !131

1276:                                             ; preds = %1272
  %1277 = call i32 @__cxa_guard_acquire(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item) #0
  %1278 = icmp ne i32 %1277, 0
  br i1 %1278, label %1279, label %1282

1279:                                             ; preds = %1276
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind writable sret(%class.RcString) align 8 @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item, ptr noundef @.str.12)
          to label %1280 unwind label %1309

1280:                                             ; preds = %1279
  %1281 = call i32 @__cxa_atexit(ptr @_ZN8RcStringD1Ev, ptr @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item, ptr @__dso_handle) #0
  call void @__cxa_guard_release(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item) #0
  br label %1282

1282:                                             ; preds = %1280, %1276, %1272
  call void @llvm.lifetime.start.p0(i64 88, ptr %132) #0
  %1283 = load ptr, ptr %131, align 8, !tbaa !5
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8 %133, ptr noundef nonnull align 8 dereferenceable(8) %1283)
          to label %1284 unwind label %1313

1284:                                             ; preds = %1282
  %1285 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #0
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1286 unwind label %1317

1286:                                             ; preds = %1284
  %1287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944) %1285, ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef @.str.13)
          to label %1288 unwind label %1321

1288:                                             ; preds = %1286
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 8 dereferenceable(8) %1287)
          to label %1289 unwind label %1321

1289:                                             ; preds = %1288
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef %135)
          to label %1290 unwind label %1325

1290:                                             ; preds = %1289
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item)
          to label %1291 unwind label %1329

1291:                                             ; preds = %1290
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %138)
          to label %1292 unwind label %1333

1292:                                             ; preds = %1291
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %132, ptr noundef %133, ptr noundef %134, ptr noundef %137, ptr noundef %138)
          to label %1293 unwind label %1337

1293:                                             ; preds = %1292
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %138) #0
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #0
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #0
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #0
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #0
  br label %1294

1294:                                             ; preds = %1293
  %1295 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1296 unwind label %1346

1296:                                             ; preds = %1294
  br i1 %1295, label %1297, label %1350

1297:                                             ; preds = %1296
  %1298 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !32
  %1299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1298, ptr noundef @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %1300 unwind label %1346

1300:                                             ; preds = %1297
  %1301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1299, ptr noundef @.str.9)
          to label %1302 unwind label %1346

1302:                                             ; preds = %1300
  %1303 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1301, ptr noundef nonnull align 8 dereferenceable(88) %132)
          to label %1304 unwind label %1346

1304:                                             ; preds = %1302
  %1305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1303, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1306 unwind label %1346

1306:                                             ; preds = %1304
  %1307 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1305, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1308 unwind label %1346

1308:                                             ; preds = %1306
  br label %1350

1309:                                             ; preds = %1279
  %1310 = landingpad { ptr, i32 }
          cleanup
  %1311 = extractvalue { ptr, i32 } %1310, 0
  store ptr %1311, ptr %11, align 8
  %1312 = extractvalue { ptr, i32 } %1310, 1
  store i32 %1312, ptr %12, align 4
  call void @__cxa_guard_abort(ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item) #0
  br label %1374

1313:                                             ; preds = %1282
  %1314 = landingpad { ptr, i32 }
          cleanup
  %1315 = extractvalue { ptr, i32 } %1314, 0
  store ptr %1315, ptr %11, align 8
  %1316 = extractvalue { ptr, i32 } %1314, 1
  store i32 %1316, ptr %12, align 4
  br label %1373

1317:                                             ; preds = %1284
  %1318 = landingpad { ptr, i32 }
          cleanup
  %1319 = extractvalue { ptr, i32 } %1318, 0
  store ptr %1319, ptr %11, align 8
  %1320 = extractvalue { ptr, i32 } %1318, 1
  store i32 %1320, ptr %12, align 4
  br label %1345

1321:                                             ; preds = %1288, %1286
  %1322 = landingpad { ptr, i32 }
          cleanup
  %1323 = extractvalue { ptr, i32 } %1322, 0
  store ptr %1323, ptr %11, align 8
  %1324 = extractvalue { ptr, i32 } %1322, 1
  store i32 %1324, ptr %12, align 4
  br label %1344

1325:                                             ; preds = %1289
  %1326 = landingpad { ptr, i32 }
          cleanup
  %1327 = extractvalue { ptr, i32 } %1326, 0
  store ptr %1327, ptr %11, align 8
  %1328 = extractvalue { ptr, i32 } %1326, 1
  store i32 %1328, ptr %12, align 4
  br label %1343

1329:                                             ; preds = %1290
  %1330 = landingpad { ptr, i32 }
          cleanup
  %1331 = extractvalue { ptr, i32 } %1330, 0
  store ptr %1331, ptr %11, align 8
  %1332 = extractvalue { ptr, i32 } %1330, 1
  store i32 %1332, ptr %12, align 4
  br label %1342

1333:                                             ; preds = %1291
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %11, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %12, align 4
  br label %1341

1337:                                             ; preds = %1292
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %11, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %12, align 4
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %138) #0
  br label %1341

1341:                                             ; preds = %1337, %1333
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #0
  br label %1342

1342:                                             ; preds = %1341, %1329
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #0
  br label %1343

1343:                                             ; preds = %1342, %1325
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #0
  br label %1344

1344:                                             ; preds = %1343, %1321
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #0
  br label %1345

1345:                                             ; preds = %1344, %1317
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #0
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #0
  br label %1373

1346:                                             ; preds = %1306, %1304, %1302, %1300, %1297, %1294
  %1347 = landingpad { ptr, i32 }
          cleanup
  %1348 = extractvalue { ptr, i32 } %1347, 0
  store ptr %1348, ptr %11, align 8
  %1349 = extractvalue { ptr, i32 } %1347, 1
  store i32 %1349, ptr %12, align 4
  br label %1372

1350:                                             ; preds = %1308, %1296
  br label %1351

1351:                                             ; preds = %1350
  br label %1352

1352:                                             ; preds = %1351
  %1353 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %139) #0
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #0
  store ptr null, ptr %140, align 8, !tbaa !132
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.409") align 8 %139, ptr noundef nonnull align 8 dereferenceable(88) %132, ptr noundef nonnull align 8 dereferenceable(8) %140)
          to label %1354 unwind label %1363

1354:                                             ; preds = %1352
  %1355 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %1353, ptr noundef nonnull align 8 dereferenceable(96) %139)
          to label %1356 unwind label %1367

1356:                                             ; preds = %1354
  %1357 = getelementptr inbounds { ptr, i8 }, ptr %141, i32 0, i32 0
  %1358 = extractvalue { ptr, i8 } %1355, 0
  store ptr %1358, ptr %1357, align 8
  %1359 = getelementptr inbounds { ptr, i8 }, ptr %141, i32 0, i32 1
  %1360 = extractvalue { ptr, i8 } %1355, 1
  store i8 %1360, ptr %1359, align 8
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %139) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %139) #0
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %132) #0
  call void @llvm.lifetime.end.p0(i64 88, ptr %132) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #0
  br label %1361

1361:                                             ; preds = %1356
  %1362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %129) #0
  br label %1269

1363:                                             ; preds = %1352
  %1364 = landingpad { ptr, i32 }
          cleanup
  %1365 = extractvalue { ptr, i32 } %1364, 0
  store ptr %1365, ptr %11, align 8
  %1366 = extractvalue { ptr, i32 } %1364, 1
  store i32 %1366, ptr %12, align 4
  br label %1371

1367:                                             ; preds = %1354
  %1368 = landingpad { ptr, i32 }
          cleanup
  %1369 = extractvalue { ptr, i32 } %1368, 0
  store ptr %1369, ptr %11, align 8
  %1370 = extractvalue { ptr, i32 } %1368, 1
  store i32 %1370, ptr %12, align 4
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %139) #0
  br label %1371

1371:                                             ; preds = %1367, %1363
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #0
  call void @llvm.lifetime.end.p0(i64 96, ptr %139) #0
  br label %1372

1372:                                             ; preds = %1371, %1346
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %132) #0
  br label %1373

1373:                                             ; preds = %1372, %1345, %1313
  call void @llvm.lifetime.end.p0(i64 88, ptr %132) #0
  br label %1374

1374:                                             ; preds = %1373, %1309
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #0
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #0
  br label %1388

1375:                                             ; preds = %1271
  %1376 = load ptr, ptr %4, align 8, !tbaa !5
  %1377 = getelementptr inbounds %class.TransList, ptr %1376, i32 0, i32 1
  %1378 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 1
  invoke void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI18TransList_FunctionSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48) %1377, ptr noundef nonnull align 8 dereferenceable(48) %1378)
          to label %1379 unwind label %1384

1379:                                             ; preds = %1375
  %1380 = load ptr, ptr %4, align 8, !tbaa !5
  %1381 = getelementptr inbounds %class.TransList, ptr %1380, i32 0, i32 2
  %1382 = getelementptr inbounds %class.TransList, ptr %37, i32 0, i32 2
  invoke void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI16TransList_StaticSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48) %1381, ptr noundef nonnull align 8 dereferenceable(48) %1382)
          to label %1383 unwind label %1384

1383:                                             ; preds = %1379
  call void @_ZN9TransListD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %37) #0
  call void @llvm.lifetime.end.p0(i64 576, ptr %37) #0
  call void @_ZN12_GLOBAL__N_19EnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(1224) %20) #0
  call void @llvm.lifetime.end.p0(i64 1224, ptr %20) #0
  ret void

1384:                                             ; preds = %1379, %1375
  %1385 = landingpad { ptr, i32 }
          cleanup
  %1386 = extractvalue { ptr, i32 } %1385, 0
  store ptr %1386, ptr %11, align 8
  %1387 = extractvalue { ptr, i32 } %1385, 1
  store i32 %1387, ptr %12, align 4
  br label %1388

1388:                                             ; preds = %1384, %1374, %1260, %1197, %1083, %857, %399
  call void @_ZN9TransListD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %37) #0
  br label %1389

1389:                                             ; preds = %1388, %395
  call void @llvm.lifetime.end.p0(i64 576, ptr %37) #0
  br label %1390

1390:                                             ; preds = %1389, %373
  call void @_ZN12_GLOBAL__N_19EnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(1224) %20) #0
  call void @llvm.lifetime.end.p0(i64 1224, ptr %20) #0
  br label %1391

1391:                                             ; preds = %1390, %248, %173
  %1392 = load ptr, ptr %11, align 8
  %1393 = load i32, ptr %12, align 4
  %1394 = insertvalue { ptr, i32 } poison, ptr %1392, 0
  %1395 = insertvalue { ptr, i32 } %1394, i32 %1393, 1
  resume { ptr, i32 } %1395

1396:                                             ; preds = %1075, %846, %828
  unreachable
}

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

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

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

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

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() #8

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(88)) #8

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z28Trans_Enumerate_FillFrom_MIRRN3MIR9EnumCacheERKNS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(96)) #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(96) ptr @_ZNK3MIR15FunctionPointerdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

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

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

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

declare void @_ZNK18StaticTraitResolve9get_valueERK4SpanRKN3HIR4PathER14MonomorphStatebPPKNS3_13GenericParamsE(ptr dead_on_unwind writable sret(%"class.StaticTraitResolve::ValuePtr") align 8, ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(144), i1 noundef zeroext, ptr noundef) #8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #8

declare void @_ZN3HIR4PathC1ENS_7TypeRefE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef, ptr noundef, ptr noundef) unnamed_addr #8

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.409") align 8, ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(8)) #1

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

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

declare noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #8

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

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

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

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

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

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

declare void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #8

declare void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef, ptr noundef, ptr noundef, ptr noundef) unnamed_addr #8

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 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)) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA5_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(5)) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE8RcStringEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #1 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)) #1 align 2

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

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

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

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZNK18StaticTraitResolve20type_needs_drop_glueERK4SpanRKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #8

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

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

declare noundef ptr @_ZNK3HIR15TypePathBinding18get_trait_markingsEv(ptr noundef nonnull align 8 dereferenceable(16)) #8

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI18TransList_FunctionSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI16TransList_StaticSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #1

declare void @_ZN3MIR12EnumCachePtrD1Ev(ptr)

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

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 8}
!10 = !{!"_ZTS18TransList_Function", !6, i64 0, !6, i64 8, !11, i64 16, !25, i64 184, !31, i64 224}
!11 = !{!"_ZTS12Trans_Params", !12, i64 0, !19, i64 96, !6, i64 104, !20, i64 112, !20, i64 136, !24, i64 160}
!12 = !{!"_ZTS15MonomorphiserPP", !13, i64 0}
!13 = !{!"_ZTS13Monomorphiser", !6, i64 8, !14, i64 16, !15, i64 72}
!14 = !{!"_ZTSN3HIR8ItemPathE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48}
!15 = !{!"_ZTSSt6vectorIPKN3HIR13GenericParamsESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTS4Span", !6, i64 0}
!20 = !{!"_ZTSN3HIR10PathParamsE", !21, i64 0, !22, i64 8, !23, i64 16}
!21 = !{!"_ZTS10ThinVectorIN3HIR11LifetimeRefEE", !6, i64 0}
!22 = !{!"_ZTS10ThinVectorIN3HIR7TypeRefEE", !6, i64 0}
!23 = !{!"_ZTS10ThinVectorIN3HIR12ConstGenericEE", !6, i64 0}
!24 = !{!"_ZTSN3HIR7TypeRefE", !6, i64 0}
!25 = !{!"_ZTS14CachedFunction", !24, i64 0, !26, i64 8, !30, i64 32}
!26 = !{!"_ZTSSt6vectorISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!"_ZTSN3MIR15FunctionPointerE", !6, i64 0}
!31 = !{!"bool", !7, i64 0}
!32 = !{!33, !33, i64 0}
!33 = !{!"int", !7, i64 0}
!34 = !{!35, !6, i64 1008}
!35 = !{!"_ZTSN12_GLOBAL__N_19EnumStateE", !6, i64 0, !36, i64 8, !64, i64 432, !6, i64 1008, !106, i64 1016, !111, i64 1096, !115, i64 1120, !118, i64 1168}
!36 = !{!"_ZTS18StaticTraitResolve", !37, i64 8, !55, i64 224, !56, i64 232, !56, i64 280, !56, i64 328, !59, i64 376}
!37 = !{!"_ZTS18TraitResolveCommon", !6, i64 0, !6, i64 8, !6, i64 16, !38, i64 24, !47, i64 72, !53, i64 104, !53, i64 112, !53, i64 120, !53, i64 128, !53, i64 136, !53, i64 144, !53, i64 152, !53, i64 160, !53, i64 168, !53, i64 176, !53, i64 184, !53, i64 192, !53, i64 200, !53, i64 208}
!38 = !{!"_ZTSSt3mapIN3HIR7TypeRefEN18TraitResolveCommon14CachedEqualityESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !39, i64 0}
!39 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !40, i64 0}
!40 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !41, i64 0, !43, i64 8}
!41 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR7TypeRefEEE", !42, i64 0}
!42 = !{!"_ZTSSt4lessIN3HIR7TypeRefEE"}
!43 = !{!"_ZTSSt15_Rb_tree_header", !44, i64 0, !46, i64 32}
!44 = !{!"_ZTSSt18_Rb_tree_node_base", !45, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!45 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!46 = !{!"long", !7, i64 0}
!47 = !{!"_ZTS11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE", !48, i64 0, !52, i64 24}
!48 = !{!"_ZTSSt6vectorISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!52 = !{!"_ZTSN18TraitResolveCommon14CachedBoundCmpE"}
!53 = !{!"_ZTSN3HIR10SimplePathE", !54, i64 0}
!54 = !{!"_ZTS10ThinVectorI8RcStringE", !6, i64 0}
!55 = !{!"_ZTS12MetadataType", !7, i64 0}
!56 = !{!"_ZTSSt3mapIN3HIR7TypeRefEbSt4lessIS1_ESaISt4pairIKS1_bEEE", !57, i64 0}
!57 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_bESt10_Select1stIS4_ESt4lessIS1_ESaIS4_EE", !58, i64 0}
!58 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_bESt10_Select1stIS4_ESt4lessIS1_ESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !41, i64 0, !43, i64 8}
!59 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR7TypeRefESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !60, i64 0}
!60 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3HIR7TypeRefEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !61, i64 0}
!61 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3HIR7TypeRefEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !62, i64 0, !43, i64 8}
!62 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !63, i64 0}
!63 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!64 = !{!"_ZTS9TransList", !65, i64 0, !69, i64 24, !74, i64 72, !77, i64 120, !80, i64 168, !83, i64 216, !83, i64 264, !86, i64 312, !83, i64 360, !83, i64 408, !91, i64 456, !94, i64 504, !98, i64 528, !102, i64 552}
!65 = !{!"_ZTSSt6vectorIN3HIR4PathESaIS1_EE", !66, i64 0}
!66 = !{!"_ZTSSt12_Vector_baseIN3HIR4PathESaIS1_EE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIN3HIR4PathESaIS1_EE12_Vector_implE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIN3HIR4PathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!69 = !{!"_ZTSSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE", !70, i64 0}
!70 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE", !71, i64 0}
!71 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE13_Rb_tree_implISD_Lb1EEE", !72, i64 0, !43, i64 8}
!72 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR4PathEEE", !73, i64 0}
!73 = !{!"_ZTSSt4lessIN3HIR4PathEE"}
!74 = !{!"_ZTSSt3mapIN3HIR4PathESt10unique_ptrI16TransList_StaticSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE", !75, i64 0}
!75 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI16TransList_StaticSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE", !76, i64 0}
!76 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI16TransList_StaticSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE13_Rb_tree_implISD_Lb1EEE", !72, i64 0, !43, i64 8}
!77 = !{!"_ZTSSt3mapIN3HIR4PathESt10unique_ptrI15TransList_ConstSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE", !78, i64 0}
!78 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI15TransList_ConstSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE", !79, i64 0}
!79 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI15TransList_ConstSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE13_Rb_tree_implISD_Lb1EEE", !72, i64 0, !43, i64 8}
!80 = !{!"_ZTSSt3mapIN3HIR4PathE12Trans_ParamsSt4lessIS1_ESaISt4pairIKS1_S2_EEE", !81, i64 0}
!81 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_12Trans_ParamsESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE", !82, i64 0}
!82 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_12Trans_ParamsESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !72, i64 0, !43, i64 8}
!83 = !{!"_ZTSSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE", !84, i64 0}
!84 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !85, i64 0}
!85 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !41, i64 0, !43, i64 8}
!86 = !{!"_ZTSSt3setIN3HIR11GenericPathESt4lessIS1_ESaIS1_EE", !87, i64 0}
!87 = !{!"_ZTSSt8_Rb_treeIN3HIR11GenericPathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !88, i64 0}
!88 = !{!"_ZTSNSt8_Rb_treeIN3HIR11GenericPathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !89, i64 0, !43, i64 8}
!89 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR11GenericPathEEE", !90, i64 0}
!90 = !{!"_ZTSSt4lessIN3HIR11GenericPathEE"}
!91 = !{!"_ZTSSt3setIN3HIR4PathESt4lessIS1_ESaIS1_EE", !92, i64 0}
!92 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !93, i64 0}
!93 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !72, i64 0, !43, i64 8}
!94 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE", !95, i64 0}
!95 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !97, i64 0}
!97 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!98 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE", !99, i64 0}
!99 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE", !100, i64 0}
!100 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !101, i64 0}
!101 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!102 = !{!"_ZTSSt6vectorISt4pairIN3HIR7TypeRefEbESaIS3_EE", !103, i64 0}
!103 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR7TypeRefEbESaIS3_EE", !104, i64 0}
!104 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7TypeRefEbESaIS3_EE12_Vector_implE", !105, i64 0}
!105 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7TypeRefEbESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!106 = !{!"_ZTSSt5dequeIP18TransList_FunctionSaIS1_EE", !107, i64 0}
!107 = !{!"_ZTSSt11_Deque_baseIP18TransList_FunctionSaIS1_EE", !108, i64 0}
!108 = !{!"_ZTSNSt11_Deque_baseIP18TransList_FunctionSaIS1_EE11_Deque_implE", !109, i64 0}
!109 = !{!"_ZTSNSt11_Deque_baseIP18TransList_FunctionSaIS1_EE16_Deque_impl_dataE", !6, i64 0, !46, i64 8, !110, i64 16, !110, i64 48}
!110 = !{!"_ZTSSt15_Deque_iteratorIP18TransList_FunctionRS1_PS1_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!111 = !{!"_ZTSSt6vectorIP18TransList_FunctionSaIS1_EE", !112, i64 0}
!112 = !{!"_ZTSSt12_Vector_baseIP18TransList_FunctionSaIS1_EE", !113, i64 0}
!113 = !{!"_ZTSNSt12_Vector_baseIP18TransList_FunctionSaIS1_EE12_Vector_implE", !114, i64 0}
!114 = !{!"_ZTSNSt12_Vector_baseIP18TransList_FunctionSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!115 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE", !116, i64 0}
!116 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !117, i64 0}
!117 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !62, i64 0, !43, i64 8}
!118 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN3HIR10SimplePathEPKNS7_8FunctionEESt4hashIS5_ESt8equal_toIS5_ESaIS6_IKS5_SC_EEE", !119, i64 0}
!119 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S6_IN3HIR10SimplePathEPKNS8_8FunctionEEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !46, i64 8, !120, i64 16, !46, i64 24, !121, i64 32, !6, i64 48}
!120 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!121 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !122, i64 0, !46, i64 8}
!122 = !{!"float", !7, i64 0}
!123 = !{!31, !31, i64 0}
!124 = !{i8 0, i8 2}
!125 = !{}
!126 = distinct !{!126, !127}
!127 = !{!"llvm.loop.mustprogress"}
!128 = distinct !{!128, !127}
!129 = distinct !{!129, !127}
!130 = distinct !{!130, !127}
!131 = !{!"branch_weights", i32 1, i32 1048575}
!132 = !{!133, !133, i64 0}
!133 = !{!"std::nullptr_t", !7, i64 0}
!134 = !{!135, !33, i64 8}
!135 = !{!"_ZTSSt4pairIK8RcStringS_IjN3HIR11GenericPathEEE", !136, i64 0, !137, i64 8}
!136 = !{!"_ZTS8RcString", !6, i64 0}
!137 = !{!"_ZTSSt4pairIjN3HIR11GenericPathEE", !33, i64 0, !138, i64 8}
!138 = !{!"_ZTSN3HIR11GenericPathE", !53, i64 0, !20, i64 8}
!139 = !{!37, !6, i64 0}
!140 = !{!141, !146, i64 80}
!141 = !{!"_ZTSN3HIR8FunctionE", !31, i64 0, !142, i64 8, !146, i64 80, !24, i64 88, !136, i64 96, !31, i64 104, !31, i64 105, !147, i64 112, !26, i64 208, !31, i64 232, !24, i64 240, !164, i64 248, !171, i64 320}
!142 = !{!"_ZTSN3HIR7LinkageE", !143, i64 0, !144, i64 8, !144, i64 40}
!143 = !{!"_ZTSN3HIR7Linkage4TypeE", !7, i64 0}
!144 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !145, i64 0, !46, i64 8, !7, i64 16}
!145 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!146 = !{!"_ZTSN3HIR8Function8ReceiverE", !7, i64 0}
!147 = !{!"_ZTSN3HIR13GenericParamsE", !148, i64 0, !152, i64 24, !156, i64 48, !160, i64 72}
!148 = !{!"_ZTSSt6vectorIN3HIR12TypeParamDefESaIS1_EE", !149, i64 0}
!149 = !{!"_ZTSSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE", !150, i64 0}
!150 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE12_Vector_implE", !151, i64 0}
!151 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!152 = !{!"_ZTSSt6vectorIN3HIR11LifetimeDefESaIS1_EE", !153, i64 0}
!153 = !{!"_ZTSSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE", !154, i64 0}
!154 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE12_Vector_implE", !155, i64 0}
!155 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!156 = !{!"_ZTSSt6vectorIN3HIR13ValueParamDefESaIS1_EE", !157, i64 0}
!157 = !{!"_ZTSSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE", !158, i64 0}
!158 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE12_Vector_implE", !159, i64 0}
!159 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!160 = !{!"_ZTSSt6vectorIN3HIR12GenericBoundESaIS1_EE", !161, i64 0}
!161 = !{!"_ZTSSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE", !162, i64 0}
!162 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE12_Vector_implE", !163, i64 0}
!163 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!164 = !{!"_ZTSN3HIR7ExprPtrE", !165, i64 0, !166, i64 8, !166, i64 32, !30, i64 56, !170, i64 64}
!165 = !{!"_ZTSN3HIR12ExprPtrInnerE", !6, i64 0}
!166 = !{!"_ZTSSt6vectorIN3HIR7TypeRefESaIS1_EE", !167, i64 0}
!167 = !{!"_ZTSSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE", !168, i64 0}
!168 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE12_Vector_implE", !169, i64 0}
!169 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!170 = !{!"_ZTSN3HIR12ExprStatePtrE", !6, i64 0}
!171 = !{!"_ZTSN3HIR8Function8MarkingsE", !172, i64 0, !31, i64 24, !176, i64 28}
!172 = !{!"_ZTSSt6vectorIjSaIjEE", !173, i64 0}
!173 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !174, i64 0}
!174 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !175, i64 0}
!175 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!176 = !{!"_ZTSN3HIR8Function8Markings6InlineE", !7, i64 0}
!177 = distinct !{!177, !127}
!178 = !{!179, !31, i64 8}
!179 = !{!"_ZTSSt4pairIN3HIR7TypeRefEbE", !24, i64 0, !31, i64 8}
!180 = !{!181, !31, i64 1}
!181 = !{!"_ZTSN3HIR13TraitMarkingsE", !31, i64 0, !31, i64 1, !31, i64 2, !182, i64 8}
!182 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !183, i64 0}
!183 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !184, i64 0}
!184 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !185, i64 0, !43, i64 8}
!185 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !186, i64 0}
!186 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}


; 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 }
%struct.Span = type { ptr }
%"class.HIR::TypeRef" = 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" }
%"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.296, %class.ThinVector.297, %class.ThinVector.298 }
%class.ThinVector.296 = type { ptr }
%class.ThinVector.297 = type { ptr }
%class.ThinVector.298 = type { 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.300" }
%"struct.std::_Head_base.300" = type { ptr }
%class.TransList = type { %"class.std::vector.5", %"class.std::map", %"class.std::map.13", %"class.std::map.18", %"class.std::map.23", %"class.std::set", %"class.std::set", %"class.std::set.33", %"class.std::set", %"class.std::set", %"class.std::set.39", %"class.std::vector.44", %"class.std::vector.49", %"class.std::vector.54" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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 }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Function>>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.13" = type { %"class.std::_Rb_tree.14" }
%"class.std::_Rb_tree.14" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Static>>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.18" = type { %"class.std::_Rb_tree.19" }
%"class.std::_Rb_tree.19" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>, std::_Select1st<std::pair<const HIR::Path, std::unique_ptr<TransList_Const>>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.23" = type { %"class.std::_Rb_tree.24" }
%"class.std::_Rb_tree.24" = type { %"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, Trans_Params>, std::_Select1st<std::pair<const HIR::Path, Trans_Params>>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, std::pair<const HIR::Path, Trans_Params>, std::_Select1st<std::pair<const HIR::Path, Trans_Params>>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set.33" = type { %"class.std::_Rb_tree.34" }
%"class.std::_Rb_tree.34" = type { %"struct.std::_Rb_tree<HIR::GenericPath, HIR::GenericPath, std::_Identity<HIR::GenericPath>, std::less<HIR::GenericPath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::GenericPath, HIR::GenericPath, std::_Identity<HIR::GenericPath>, std::less<HIR::GenericPath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set" = type { %"class.std::_Rb_tree.28" }
%"class.std::_Rb_tree.28" = type { %"struct.std::_Rb_tree<HIR::TypeRef, HIR::TypeRef, std::_Identity<HIR::TypeRef>, std::less<HIR::TypeRef>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::TypeRef, HIR::TypeRef, std::_Identity<HIR::TypeRef>, std::less<HIR::TypeRef>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set.39" = type { %"class.std::_Rb_tree.40" }
%"class.std::_Rb_tree.40" = type { %"struct.std::_Rb_tree<HIR::Path, HIR::Path, std::_Identity<HIR::Path>, std::less<HIR::Path>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::Path, HIR::Path, std::_Identity<HIR::Path>, std::less<HIR::Path>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.44" = type { %"struct.std::_Vector_base.45" }
%"struct.std::_Vector_base.45" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Static>, std::allocator<std::unique_ptr<HIR::Static>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.49" = type { %"struct.std::_Vector_base.50" }
%"struct.std::_Vector_base.50" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::Function>, std::allocator<std::unique_ptr<HIR::Function>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<HIR::TypeRef, bool>, std::allocator<std::pair<HIR::TypeRef, bool>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_iterator.372" = type { ptr }
%"class.MIR::EnumCachePtr" = type { ptr }
%"struct.(anonymous namespace)::EnumState" = type { ptr, %class.StaticTraitResolve, %class.TransList, ptr, %"class.std::deque", %"class.std::vector.83", %"class.std::set.85", %"class.std::unordered_map" }
%class.StaticTraitResolve = type { ptr, %struct.TraitResolveCommon, i32, %"class.std::map.69", %"class.std::map.69", %"class.std::map.69", %"class.std::map.74" }
%struct.TraitResolveCommon = type { ptr, ptr, ptr, %"class.std::map.59", %class.RangeVecMap, %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath", %"struct.HIR::SimplePath" }
%"class.std::map.59" = type { %"class.std::_Rb_tree.60" }
%"class.std::_Rb_tree.60" = type { %"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>, std::_Select1st<std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>, std::_Select1st<std::pair<const HIR::TypeRef, TraitResolveCommon::CachedEquality>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.RangeVecMap = type <{ %"class.std::vector.64", [8 x i8] }>
%"class.std::vector.64" = type { %"struct.std::_Vector_base.65" }
%"struct.std::_Vector_base.65" = type { %"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>, std::allocator<std::unique_ptr<std::pair<std::pair<HIR::TypeRef, HIR::GenericPath>, TraitResolveCommon::CachedBound>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.69" = type { %"class.std::_Rb_tree.70" }
%"class.std::_Rb_tree.70" = type { %"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, bool>, std::_Select1st<std::pair<const HIR::TypeRef, bool>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::TypeRef, std::pair<const HIR::TypeRef, bool>, std::_Select1st<std::pair<const HIR::TypeRef, bool>>, std::less<HIR::TypeRef>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.74" = type { %"class.std::_Rb_tree.75" }
%"class.std::_Rb_tree.75" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, HIR::TypeRef>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl" }
%"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl" = type { %"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<TransList_Function *, std::allocator<TransList_Function *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl" }
%"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl" = type { %"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TransList_Function *, std::allocator<TransList_Function *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::set.85" = type { %"class.std::_Rb_tree.86" }
%"class.std::_Rb_tree.86" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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.__gnu_cxx::__normal_iterator.403" = type { ptr }
%struct.MonomorphState = type { %class.MonomorphiserPP, %"class.HIR::TypeRef", ptr, ptr, %"struct.HIR::PathParams" }
%class.MonomorphiserPP = type { %class.Monomorphiser }
%class.Monomorphiser = type { ptr, ptr, %"class.HIR::ItemPath", %"class.std::vector.301" }
%"class.HIR::ItemPath" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.std::vector.301" = type { %"struct.std::_Vector_base.302" }
%"struct.std::_Vector_base.302" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::GenericParams *, std::allocator<const HIR::GenericParams *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.StaticTraitResolve::ValuePtr" = type { i32, %"union.StaticTraitResolve::ValuePtr::DataUnion" }
%"union.StaticTraitResolve::ValuePtr::DataUnion" = type { %"struct.StaticTraitResolve::ValuePtr::Data_EnumConstructor" }
%"struct.StaticTraitResolve::ValuePtr::Data_EnumConstructor" = type { ptr, i64 }
%"struct.std::_Rb_tree_iterator.404" = type { ptr }
%"struct.std::pair.409" = type { %"class.HIR::Path", ptr }
%struct.MonomorphStatePtr = type { %class.MonomorphiserPP, ptr, ptr, ptr, ptr }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base.474" }
%"struct.std::__detail::_Node_iterator_base.474" = type { 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.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.__gnu_cxx::__normal_iterator.494" = type { ptr }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.531" = type { ptr }

@__dso_handle = external hidden global i8
@_ZN12_GLOBAL__N_113rcstring_dropE = external hidden global %class.RcString, align 8
@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList = external hidden unnamed_addr constant [24 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [78 x i8], align 1
@__PRETTY_FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList = external hidden unnamed_addr constant [64 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue = external hidden global %class.RcString, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue = external hidden global i64, align 8
@.str.8 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp = external hidden global %struct.Span, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp = external hidden global i64, align 8
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone = external hidden global %class.RcString, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone = external hidden global i64, align 8
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item = external hidden global %class.RcString, align 8
@_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item = external hidden global i64, align 8
@.str.12 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [13 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: nofree nounwind
declare i32 @__cxa_guard_acquire(ptr) local_unnamed_addr #0

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nofree nounwind
declare void @__cxa_guard_abort(ptr) local_unnamed_addr #0

; Function Attrs: nofree nounwind
declare void @__cxa_guard_release(ptr) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_19EnumStateC2ERKN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(1224), ptr noundef nonnull align 8 dereferenceable(944)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6 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 noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #7

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

declare void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::TypeRef") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

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

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

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

declare void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind writable sret(%"class.HIR::Path") align 8, ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3HIR4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_Z26Trans_Enumerate_CommonPostRN12_GLOBAL__N_19EnumStateE(ptr dead_on_unwind noalias writable sret(%class.TransList) align 8, ptr noundef nonnull align 8 dereferenceable(1224)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_19EnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(1224)) unnamed_addr #6 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 nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_Z33Trans_Enumerate_FillFrom_PathMonoRN12_GLOBAL__N_19EnumStateEN3HIR4PathE(ptr noundef nonnull align 8 dereferenceable(1224), ptr noundef) local_unnamed_addr #1

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList(ptr noundef nonnull align 8 dereferenceable(944) %0, ptr noundef nonnull align 8 dereferenceable(576) %1) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %4 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %5 = alloca %"class.MIR::EnumCachePtr", align 8
  %6 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %7 = alloca %"struct.std::_Rb_tree_iterator.372", align 8
  %8 = alloca %"class.MIR::EnumCachePtr", align 8
  %9 = alloca %"struct.(anonymous namespace)::EnumState", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.403", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.403", align 8
  %12 = alloca %"class.HIR::Path", align 8
  %13 = alloca %struct.MonomorphState, align 8
  %14 = alloca %"class.StaticTraitResolve::ValuePtr", align 8
  %15 = alloca %struct.Span, align 8
  %16 = alloca %"class.HIR::Path", align 8
  %17 = alloca %class.TransList, align 8
  %18 = alloca %"struct.std::_Rb_tree_iterator.404", align 8
  %19 = alloca %"struct.std::_Rb_tree_iterator.404", align 8
  %20 = alloca %"class.HIR::Path", align 8
  %21 = alloca %"class.HIR::TypeRef", align 8
  %22 = alloca %class.RcString, align 8
  %23 = alloca %"struct.HIR::PathParams", align 8
  %24 = alloca %"struct.std::pair.409", align 8
  %25 = alloca ptr, align 8
  %26 = alloca %"struct.std::pair.409", align 8
  %27 = alloca %"class.HIR::Path", align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"struct.HIR::SimplePath", align 8
  %30 = alloca %struct.MonomorphStatePtr, align 8
  %31 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %32 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %33 = alloca %"class.HIR::GenericPath", align 8
  %34 = alloca %"class.HIR::Path", align 8
  %35 = alloca %"class.HIR::TypeRef", align 8
  %36 = alloca %"class.HIR::GenericPath", align 8
  %37 = alloca %class.RcString, align 8
  %38 = alloca %"struct.HIR::PathParams", align 8
  %39 = alloca %"struct.std::pair.409", align 8
  %40 = alloca ptr, align 8
  %41 = alloca %"class.HIR::GenericPath", align 8
  %42 = alloca %"class.HIR::Path", align 8
  %43 = alloca %"class.HIR::TypeRef", align 8
  %44 = alloca %"class.HIR::GenericPath", align 8
  %45 = alloca %class.RcString, align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %48 = alloca %"struct.HIR::PathParams", align 8
  %49 = alloca %"struct.std::pair.409", align 8
  %50 = alloca ptr, align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator.494", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator.494", align 8
  %53 = alloca %struct.Span, align 8
  %54 = alloca %"class.HIR::Path", align 8
  %55 = alloca %"class.HIR::TypeRef", align 8
  %56 = alloca %class.RcString, align 8
  %57 = alloca %"struct.HIR::PathParams", align 8
  %58 = alloca %"struct.std::pair.409", align 8
  %59 = alloca ptr, align 8
  %60 = alloca %"class.HIR::Path", align 8
  %61 = alloca %"class.HIR::TypeRef", align 8
  %62 = alloca %"class.HIR::GenericPath", align 8
  %63 = alloca %"struct.HIR::SimplePath", align 8
  %64 = alloca %class.RcString, align 8
  %65 = alloca %"struct.HIR::PathParams", align 8
  %66 = alloca %"struct.std::pair.409", align 8
  %67 = alloca ptr, align 8
  %68 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %69 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %70 = alloca %"class.HIR::Path", align 8
  %71 = alloca %"class.HIR::TypeRef", align 8
  %72 = alloca %"class.HIR::GenericPath", align 8
  %73 = alloca %"struct.HIR::SimplePath", align 8
  %74 = alloca %struct.Span, align 8
  %75 = alloca %class.RcString, align 8
  %76 = alloca %"struct.HIR::PathParams", align 8
  %77 = alloca %"struct.std::pair.409", align 8
  %78 = alloca ptr, align 8
  %79 = alloca %"struct.std::_Rb_tree_const_iterator.531", align 8
  %80 = alloca %"struct.std::_Rb_tree_const_iterator.531", align 8
  %81 = alloca %"struct.std::pair.409", align 8
  %82 = alloca %"class.HIR::Path", align 8
  %83 = alloca ptr, align 8
  %84 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %85 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %86 = alloca %"class.HIR::Path", align 8
  %87 = alloca %"class.HIR::TypeRef", align 8
  %88 = alloca %"class.HIR::GenericPath", align 8
  %89 = alloca %"struct.HIR::SimplePath", align 8
  %90 = alloca %struct.Span, align 8
  %91 = alloca %class.RcString, align 8
  %92 = alloca %"struct.HIR::PathParams", align 8
  %93 = alloca %"struct.std::pair.409", align 8
  %94 = alloca ptr, align 8
  %95 = getelementptr inbounds i8, ptr %1, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  %96 = tail call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %95) #10
  store ptr %96, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #10
  %97 = tail call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %95) #10
  store ptr %97, ptr %4, align 8
  %98 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4) #10
  br i1 %98, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %116, %2
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  %99 = call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %95) #10
  store ptr %99, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  %100 = call ptr @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %95) #10
  store ptr %100, ptr %7, align 8
  %101 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  br i1 %101, label %.lr.ph273, label %._crit_edge274

.lr.ph:                                           ; preds = %2, %116
  %102 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %3) #10
  %103 = getelementptr inbounds i8, ptr %102, i64 88
  %104 = call noundef ptr @_ZNKSt10unique_ptrI18TransList_FunctionSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %103) #10
  %105 = getelementptr inbounds i8, ptr %104, i64 8
  %106 = load ptr, ptr %105, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %106, i64 304
  %108 = call noundef zeroext i1 @_ZNK3MIR15FunctionPointercvbEv(ptr noundef nonnull align 8 dereferenceable(8) %107)
  br i1 %108, label %109, label %116

109:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  call void @_ZN3MIR12EnumCachePtrC2EPKNS_9EnumCacheE(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef null)
  %110 = invoke noundef ptr @_ZNK3MIR15FunctionPointerptEv(ptr noundef nonnull align 8 dereferenceable(8) %107)
          to label %111 unwind label %114

111:                                              ; preds = %109
  %112 = getelementptr inbounds i8, ptr %110, i64 88
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIR12EnumCachePtraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %5)
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  br label %116

114:                                              ; preds = %109
  %115 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  br label %743

116:                                              ; preds = %111, %.lr.ph
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %3) #10
  %118 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4) #10
  br i1 %118, label %.lr.ph, label %._crit_edge

._crit_edge274:                                   ; preds = %152, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.start.p0(i64 1224, ptr nonnull %9) #10
  call void @_ZN12_GLOBAL__N_19EnumStateC2ERKN3HIR5CrateE(ptr noundef nonnull align 8 dereferenceable(1224) %9, ptr noundef nonnull align 8 dereferenceable(944) %0)
  %119 = getelementptr inbounds i8, ptr %9, i64 1008
  store ptr %1, ptr %119, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  %120 = call ptr @_ZNSt6vectorIN3HIR4PathESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #10
  store ptr %120, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  %121 = call ptr @_ZNSt6vectorIN3HIR4PathESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #10
  store ptr %121, ptr %11, align 8
  %122 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3HIR4PathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  br i1 %122, label %.lr.ph307, label %._crit_edge308

.lr.ph307:                                        ; preds = %._crit_edge274
  %123 = getelementptr inbounds i8, ptr %9, i64 8
  br label %155

.lr.ph273:                                        ; preds = %._crit_edge, %152
  %124 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #10
  %125 = getelementptr inbounds i8, ptr %124, i64 88
  %126 = call noundef ptr @_ZNKSt10unique_ptrI18TransList_FunctionSt14default_deleteIS0_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  %127 = getelementptr inbounds i8, ptr %126, i64 8
  %128 = load ptr, ptr %127, align 8, !tbaa !5
  %129 = getelementptr inbounds i8, ptr %128, i64 304
  %130 = call noundef zeroext i1 @_ZNK3MIR15FunctionPointercvbEv(ptr noundef nonnull align 8 dereferenceable(8) %129)
  br i1 %130, label %131, label %152

131:                                              ; preds = %.lr.ph273
  %132 = call noundef ptr @_ZNK3MIR15FunctionPointerptEv(ptr noundef nonnull align 8 dereferenceable(8) %129)
  %133 = getelementptr inbounds i8, ptr %132, i64 88
  %134 = call noundef zeroext i1 @_ZN3MIR12EnumCachePtrcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %133)
  br i1 %134, label %152, label %135

135:                                              ; preds = %131
  %136 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %136, label %137, label %143

137:                                              ; preds = %135
  %138 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %139 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %138, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull align 8 dereferenceable(88) %124)
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %143

143:                                              ; preds = %137, %135
  %144 = call noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #11
  call void @_ZN3MIR9EnumCacheC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %144)
  %145 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNK3MIR15FunctionPointerdeEv(ptr noundef nonnull align 8 dereferenceable(8) %129)
  call void @_Z28Trans_Enumerate_FillFrom_MIRRN3MIR9EnumCacheERKNS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(48) %144, ptr noundef nonnull align 8 dereferenceable(96) %145)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  call void @_ZN3MIR12EnumCachePtrC2EPKNS_9EnumCacheE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull %144)
  %146 = invoke noundef ptr @_ZNK3MIR15FunctionPointerptEv(ptr noundef nonnull align 8 dereferenceable(8) %129)
          to label %147 unwind label %150

147:                                              ; preds = %143
  %148 = getelementptr inbounds i8, ptr %146, i64 88
  %149 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIR12EnumCachePtraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull align 8 dereferenceable(8) %8)
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  br label %152

150:                                              ; preds = %143
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3MIR12EnumCachePtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  br label %743

152:                                              ; preds = %147, %131, %.lr.ph273
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #10
  %154 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  br i1 %154, label %.lr.ph273, label %._crit_edge274

._crit_edge308:                                   ; preds = %174, %._crit_edge274
  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 576, ptr nonnull %17) #10
  invoke void @_Z26Trans_Enumerate_CommonPostRN12_GLOBAL__N_19EnumStateE(ptr dead_on_unwind nonnull writable sret(%class.TransList) align 8 %17, ptr noundef nonnull align 8 dereferenceable(1224) %9)
          to label %183 unwind label %206

155:                                              ; preds = %.lr.ph307, %174
  %156 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3HIR4PathESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %12) #10
  invoke void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Path") align 8 %12, ptr noundef nonnull align 8 dereferenceable(88) %156)
          to label %157 unwind label %162

157:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %13) #10
  invoke void @_ZN14MonomorphStateC2Ev(ptr noundef nonnull align 8 dereferenceable(144) %13)
          to label %158 unwind label %164

158:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15)
  invoke void @_ZNK18StaticTraitResolve9get_valueERK4SpanRKN3HIR4PathER14MonomorphStatebPPKNS3_13GenericParamsE(ptr dead_on_unwind nonnull writable sret(%"class.StaticTraitResolve::ValuePtr") align 8 %14, ptr noundef nonnull align 8 dereferenceable(424) %123, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(88) %12, ptr noundef nonnull align 8 dereferenceable(144) %13, i1 noundef zeroext true, ptr noundef null)
          to label %159 unwind label %166

159:                                              ; preds = %158
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  %160 = call noundef ptr @_ZNK18StaticTraitResolve8ValuePtr12opt_FunctionEv(ptr noundef nonnull align 8 dereferenceable(24) %14)
  %.not257 = icmp eq ptr %160, null
  br i1 %.not257, label %..loopexit269_crit_edge, label %.lr.ph279.split

.lr.ph279.split:                                  ; preds = %159
  %161 = call noundef i32 @_ZNK3HIR4Path4Data3tagEv(ptr noundef nonnull align 8 dereferenceable(88) %12)
  switch i32 %161, label %..loopexit269_crit_edge [
    i32 0, label %.split284
    i32 1, label %.preheader266.split
  ]

162:                                              ; preds = %155
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %182

164:                                              ; preds = %157
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %181

166:                                              ; preds = %158
  %167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  br label %180

.preheader266.split:                              ; preds = %.lr.ph279.split
  %168 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR4Path4Data10as_GenericEv(ptr noundef nonnull align 8 dereferenceable(88) %12)
  %169 = getelementptr inbounds i8, ptr %168, i64 8
  %170 = load ptr, ptr %160, align 8, !tbaa !122
  %171 = getelementptr inbounds i8, ptr %170, i64 136
  %172 = call noundef i64 @_ZNKSt6vectorIN3HIR11LifetimeDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %171) #10
  invoke void @_ZN10ThinVectorIN3HIR11LifetimeRefEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(8) %169, i64 noundef %172)
          to label %..loopexit269_crit_edge unwind label %.split.split.split, !llvm.loop !123

.split284:                                        ; preds = %.lr.ph279.split
  call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, i32 noundef 665, ptr noundef nonnull @__PRETTY_FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList) #12
  unreachable

.split.split.split:                               ; preds = %.preheader266.split
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %179

..loopexit269_crit_edge:                          ; preds = %.preheader266.split, %.lr.ph279.split, %159
  call void @_ZN3HIR4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %12) #10
  invoke void @_Z33Trans_Enumerate_FillFrom_PathMonoRN12_GLOBAL__N_19EnumStateEN3HIR4PathE(ptr noundef nonnull align 8 dereferenceable(1224) %9, ptr noundef nonnull %16)
          to label %174 unwind label %177

174:                                              ; preds = %..loopexit269_crit_edge
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #10
  call void @_ZN18StaticTraitResolve8ValuePtrD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #10
  call void @_ZN14MonomorphStateD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %13) #10
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %13) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #10
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3HIR4PathESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %176 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3HIR4PathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  br i1 %176, label %155, label %._crit_edge308

177:                                              ; preds = %..loopexit269_crit_edge
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #10
  br label %179

179:                                              ; preds = %177, %.split.split.split
  %.pn258 = phi { ptr, i32 } [ %173, %.split.split.split ], [ %178, %177 ]
  call void @_ZN18StaticTraitResolve8ValuePtrD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #10
  br label %180

180:                                              ; preds = %179, %166
  %.pn258.pn = phi { ptr, i32 } [ %.pn258, %179 ], [ %167, %166 ]
  call void @_ZN14MonomorphStateD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %13) #10
  br label %181

181:                                              ; preds = %180, %164
  %.pn258.pn.pn = phi { ptr, i32 } [ %.pn258.pn, %180 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %13) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #10
  br label %182

182:                                              ; preds = %181, %162
  %.pn258.pn.pn.pn = phi { ptr, i32 } [ %.pn258.pn.pn, %181 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 88, 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 %742

183:                                              ; preds = %._crit_edge308
  %184 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue acquire, align 8
  %185 = icmp eq i8 %184, 0
  br i1 %185, label %186, label %191, !prof !125

186:                                              ; preds = %183
  %187 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue) #10
  %.not = icmp eq i32 %187, 0
  br i1 %.not, label %191, label %188

188:                                              ; preds = %186
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue, ptr noundef nonnull @.str.8)
          to label %189 unwind label %208

189:                                              ; preds = %188
  %190 = call i32 @__cxa_atexit(ptr nonnull @_ZN8RcStringD1Ev, ptr nonnull @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue, ptr nonnull @__dso_handle) #10
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue) #10
  br label %191

191:                                              ; preds = %189, %186, %183
  %192 = getelementptr inbounds i8, ptr %17, i64 168
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #10
  %193 = call ptr @_ZNSt3mapIN3HIR4PathE12Trans_ParamsSt4lessIS1_ESaISt4pairIKS1_S2_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %192) #10
  store ptr %193, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  %194 = call ptr @_ZNSt3mapIN3HIR4PathE12Trans_ParamsSt4lessIS1_ESaISt4pairIKS1_S2_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %192) #10
  store ptr %194, ptr %19, align 8
  %195 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEES8_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  br i1 %195, label %.lr.ph316, label %._crit_edge317

.lr.ph316:                                        ; preds = %191
  %196 = getelementptr inbounds i8, ptr %17, i64 24
  %197 = getelementptr inbounds i8, ptr %17, i64 72
  %198 = getelementptr inbounds i8, ptr %9, i64 16
  br label %210

._crit_edge317:                                   ; preds = %443, %191
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  %199 = getelementptr inbounds i8, ptr %17, i64 552
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #10
  %200 = call ptr @_ZNSt6vectorISt4pairIN3HIR7TypeRefEbESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #10
  store ptr %200, ptr %51, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #10
  %201 = call ptr @_ZNSt6vectorISt4pairIN3HIR7TypeRefEbESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #10
  store ptr %201, ptr %52, align 8
  %202 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #10
  br i1 %202, label %.lr.ph319, label %._crit_edge320

.lr.ph319:                                        ; preds = %._crit_edge317
  %203 = getelementptr inbounds i8, ptr %9, i64 8
  %204 = getelementptr inbounds i8, ptr %17, i64 24
  %205 = getelementptr inbounds i8, ptr %9, i64 136
  br label %454

206:                                              ; preds = %._crit_edge308
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %741

208:                                              ; preds = %188
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_guard_abort(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue) #10
  br label %740

210:                                              ; preds = %.lr.ph316, %443
  %211 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  %212 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp acquire, align 8
  %213 = icmp eq i8 %212, 0
  br i1 %213, label %214, label %218, !prof !125

214:                                              ; preds = %210
  %215 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp) #10
  %.not218 = icmp eq i32 %215, 0
  br i1 %.not218, label %218, label %216

216:                                              ; preds = %214
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp)
  %217 = call i32 @__cxa_atexit(ptr nonnull @_ZN4SpanD1Ev, ptr nonnull @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr nonnull @__dso_handle) #10
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp) #10
  br label %218

218:                                              ; preds = %216, %214, %210
  %219 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %211)
  %220 = getelementptr inbounds i8, ptr %219, i64 8
  %221 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88) %211)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %20) #10
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %21, ptr noundef nonnull align 8 dereferenceable(8) %221)
          to label %222 unwind label %238

222:                                              ; preds = %218
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %223 unwind label %240

223:                                              ; preds = %222
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %20, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23)
          to label %224 unwind label %242

224:                                              ; preds = %223
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #10
  %225 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %226 unwind label %245

226:                                              ; preds = %224
  br i1 %225, label %227, label %247

227:                                              ; preds = %226
  %228 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %228, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %230 unwind label %245

230:                                              ; preds = %227
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef nonnull @.str.9)
          to label %232 unwind label %245

232:                                              ; preds = %230
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef nonnull align 8 dereferenceable(88) %20)
          to label %234 unwind label %245

234:                                              ; preds = %232
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %236 unwind label %245

236:                                              ; preds = %234
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %247 unwind label %245

238:                                              ; preds = %218
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %448

240:                                              ; preds = %222
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %244

242:                                              ; preds = %223
  %243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #10
  br label %244

244:                                              ; preds = %242, %240
  %.pn219 = phi { ptr, i32 } [ %243, %242 ], [ %241, %240 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #10
  br label %448

245:                                              ; preds = %262, %260, %258, %256, %253, %250, %236, %234, %232, %230, %227, %224
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %447

247:                                              ; preds = %236, %226
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %24) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  store ptr null, ptr %25, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %24, ptr noundef nonnull align 8 dereferenceable(88) %20, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %248 unwind label %264

248:                                              ; preds = %247
  %249 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %196, ptr noundef nonnull align 8 dereferenceable(96) %24)
          to label %250 unwind label %266

250:                                              ; preds = %248
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %24) #10
  %251 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %252 unwind label %245

252:                                              ; preds = %250
  br i1 %251, label %253, label %269

253:                                              ; preds = %252
  %254 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %254, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %256 unwind label %245

256:                                              ; preds = %253
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef nonnull @.str.9)
          to label %258 unwind label %245

258:                                              ; preds = %256
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull align 8 dereferenceable(88) %211)
          to label %260 unwind label %245

260:                                              ; preds = %258
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %259, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %262 unwind label %245

262:                                              ; preds = %260
  %263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %269 unwind label %245

264:                                              ; preds = %247
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %268

266:                                              ; preds = %248
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %24) #10
  br label %268

268:                                              ; preds = %266, %264
  %.pn221 = phi { ptr, i32 } [ %267, %266 ], [ %265, %264 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %24) #10
  br label %447

269:                                              ; preds = %262, %252
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %26) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %27) #10
  invoke void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Path") align 8 %27, ptr noundef nonnull align 8 dereferenceable(88) %211)
          to label %270 unwind label %277

270:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  store ptr null, ptr %28, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %26, ptr noundef nonnull align 8 dereferenceable(88) %27, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %271 unwind label %279

271:                                              ; preds = %270
  %272 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI16TransList_StaticSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %197, ptr noundef nonnull align 8 dereferenceable(96) %26)
          to label %273 unwind label %281

273:                                              ; preds = %271
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %26) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  invoke void @_ZN3HIR10SimplePathC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %274 unwind label %285

274:                                              ; preds = %273
  %275 = invoke noundef zeroext i1 @_ZNK3HIR10SimplePatheqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %276 unwind label %287

276:                                              ; preds = %274
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  br i1 %275, label %443, label %290

277:                                              ; preds = %269
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %284

279:                                              ; preds = %270
  %280 = landingpad { ptr, i32 }
          cleanup
  br label %283

281:                                              ; preds = %271
  %282 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %26) #10
  br label %283

283:                                              ; preds = %281, %279
  %.pn223 = phi { ptr, i32 } [ %282, %281 ], [ %280, %279 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #10
  br label %284

284:                                              ; preds = %283, %277
  %.pn223.pn = phi { ptr, i32 } [ %.pn223, %283 ], [ %278, %277 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %26) #10
  br label %447

285:                                              ; preds = %273
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %289

287:                                              ; preds = %274
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  br label %289

289:                                              ; preds = %287, %285
  %.pn226 = phi { ptr, i32 } [ %288, %287 ], [ %286, %285 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  br label %447

290:                                              ; preds = %276
  %291 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %0, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(8) %220)
          to label %292 unwind label %296

292:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %30) #10
  %293 = getelementptr inbounds i8, ptr %219, i64 16
  invoke void @_ZN17MonomorphStatePtrC2EPKN3HIR7TypeRefEPKNS0_10PathParamsES6_S6_S6_(ptr noundef nonnull align 8 dereferenceable(128) %30, ptr noundef nonnull %221, ptr noundef nonnull %293, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %.preheader unwind label %298

.preheader:                                       ; preds = %292
  %294 = getelementptr inbounds i8, ptr %291, i64 248
  %295 = call noundef i64 @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %294) #10
  %.not330 = icmp eq i64 %295, 0
  br i1 %.not330, label %._crit_edge314, label %.lr.ph313

._crit_edge314:                                   ; preds = %._crit_edge311, %.preheader
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %30) #10
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %30) #10
  br label %443

296:                                              ; preds = %290
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %447

298:                                              ; preds = %292
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %446

.lr.ph313:                                        ; preds = %.preheader, %._crit_edge311
  %.0178312 = phi i32 [ %304, %._crit_edge311 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #10
  %300 = call ptr @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %294) #10
  store ptr %300, ptr %31, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #10
  %301 = call ptr @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %294) #10
  store ptr %301, ptr %32, align 8
  %302 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  br i1 %302, label %.lr.ph310, label %._crit_edge311

.lr.ph310:                                        ; preds = %.lr.ph313
  %303 = add i32 %.0178312, 3
  br label %308

._crit_edge311:                                   ; preds = %437, %.lr.ph313
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  %304 = add i32 %.0178312, 1
  %305 = zext i32 %304 to i64
  %306 = call noundef i64 @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %294) #10
  %307 = icmp ugt i64 %306, %305
  br i1 %307, label %.lr.ph313, label %._crit_edge314, !llvm.loop !128

308:                                              ; preds = %.lr.ph310, %437
  %309 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  %310 = getelementptr inbounds i8, ptr %309, i64 8
  %311 = load i32, ptr %310, align 8, !tbaa !129
  %.not228 = icmp eq i32 %311, %303
  br i1 %.not228, label %312, label %437

312:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #10
  %313 = getelementptr inbounds i8, ptr %309, i64 16
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind nonnull writable sret(%"class.HIR::GenericPath") align 8 %33, ptr noundef nonnull align 8 dereferenceable(96) %30, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(32) %313, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %314 unwind label %332

314:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %34) #10
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %35, ptr noundef nonnull align 8 dereferenceable(8) %221)
          to label %315 unwind label %334

315:                                              ; preds = %314
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %316 unwind label %336

316:                                              ; preds = %315
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %309)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %38)
          to label %317 unwind label %338

317:                                              ; preds = %316
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %34, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %38)
          to label %318 unwind label %340

318:                                              ; preds = %317
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  %319 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %320 unwind label %344

320:                                              ; preds = %318
  br i1 %319, label %321, label %346

321:                                              ; preds = %320
  %322 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %322, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %324 unwind label %344

324:                                              ; preds = %321
  %325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %323, ptr noundef nonnull @.str.9)
          to label %326 unwind label %344

326:                                              ; preds = %324
  %327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %325, ptr noundef nonnull align 8 dereferenceable(88) %34)
          to label %328 unwind label %344

328:                                              ; preds = %326
  %329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %330 unwind label %344

330:                                              ; preds = %328
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %329, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %346 unwind label %344

332:                                              ; preds = %312
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %442

334:                                              ; preds = %314
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %441

336:                                              ; preds = %315
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %343

338:                                              ; preds = %316
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %342

340:                                              ; preds = %317
  %341 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #10
  br label %342

342:                                              ; preds = %340, %338
  %.pn229 = phi { ptr, i32 } [ %341, %340 ], [ %339, %338 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %343

343:                                              ; preds = %342, %336
  %.pn229.pn = phi { ptr, i32 } [ %.pn229, %342 ], [ %337, %336 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  br label %441

344:                                              ; preds = %330, %328, %326, %324, %321, %318
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %440

346:                                              ; preds = %330, %320
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %39) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #10
  store ptr null, ptr %40, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %39, ptr noundef nonnull align 8 dereferenceable(88) %34, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %347 unwind label %390

347:                                              ; preds = %346
  %348 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %196, ptr noundef nonnull align 8 dereferenceable(96) %39)
          to label %349 unwind label %392

349:                                              ; preds = %347
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %39) #10
  %350 = load ptr, ptr %198, align 8, !tbaa !134
  %351 = invoke noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944) %350, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(8) %313)
          to label %352 unwind label %395

352:                                              ; preds = %349
  %353 = getelementptr inbounds i8, ptr %351, i64 192
  %354 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZNKSt13unordered_mapI8RcStringN3HIR14TraitValueItemESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE2atERS8_(ptr noundef nonnull align 8 dereferenceable(56) %353, ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %355 unwind label %397

355:                                              ; preds = %352
  %356 = call noundef zeroext i1 @_ZNK3HIR14TraitValueItem11is_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %354)
  br i1 %356, label %357, label %436

357:                                              ; preds = %355
  %358 = call noundef nonnull align 8 dereferenceable(352) ptr @_ZNK3HIR14TraitValueItem11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(368) %354)
  %359 = getelementptr inbounds i8, ptr %358, i64 80
  %360 = load i32, ptr %359, align 8, !tbaa !135
  %361 = icmp eq i32 %360, 1
  br i1 %361, label %362, label %436

362:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #10
  invoke void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind nonnull writable sret(%"class.HIR::GenericPath") align 8 %41, ptr noundef nonnull align 8 dereferenceable(96) %30, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE2sp, ptr noundef nonnull align 8 dereferenceable(32) %313, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %363 unwind label %399

363:                                              ; preds = %362
  %364 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %365 unwind label %401

365:                                              ; preds = %363
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %42) #10
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %43, ptr noundef nonnull align 8 dereferenceable(8) %221)
          to label %366 unwind label %404

366:                                              ; preds = %365
  invoke void @_ZN3HIR11GenericPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %367 unwind label %406

367:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #10
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %47) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %47)
          to label %368 unwind label %408

368:                                              ; preds = %367
  %369 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE8RcStringEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %47, ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %370 unwind label %410

370:                                              ; preds = %368
  %371 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA5_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 1 dereferenceable(5) @.str.10)
          to label %372 unwind label %410

372:                                              ; preds = %370
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(112) %371)
          to label %373 unwind label %410

373:                                              ; preds = %372
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %374 unwind label %412

374:                                              ; preds = %373
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %375 unwind label %414

375:                                              ; preds = %374
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %42, ptr noundef nonnull %43, ptr noundef nonnull %44, ptr noundef nonnull %45, ptr noundef nonnull %48)
          to label %376 unwind label %416

376:                                              ; preds = %375
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %47) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #10
  %377 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %378 unwind label %423

378:                                              ; preds = %376
  br i1 %377, label %379, label %425

379:                                              ; preds = %378
  %380 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %380, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %382 unwind label %423

382:                                              ; preds = %379
  %383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %381, ptr noundef nonnull @.str.9)
          to label %384 unwind label %423

384:                                              ; preds = %382
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull align 8 dereferenceable(88) %42)
          to label %386 unwind label %423

386:                                              ; preds = %384
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %388 unwind label %423

388:                                              ; preds = %386
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %425 unwind label %423

390:                                              ; preds = %346
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %394

392:                                              ; preds = %347
  %393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %39) #10
  br label %394

394:                                              ; preds = %392, %390
  %.pn232 = phi { ptr, i32 } [ %393, %392 ], [ %391, %390 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %39) #10
  br label %440

395:                                              ; preds = %349
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %440

397:                                              ; preds = %352
  %398 = landingpad { ptr, i32 }
          cleanup
  br label %440

399:                                              ; preds = %362
  %400 = landingpad { ptr, i32 }
          cleanup
  br label %403

401:                                              ; preds = %363
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  br label %403

403:                                              ; preds = %401, %399
  %.pn234 = phi { ptr, i32 } [ %402, %401 ], [ %400, %399 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #10
  br label %440

404:                                              ; preds = %365
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %435

406:                                              ; preds = %366
  %407 = landingpad { ptr, i32 }
          cleanup
  br label %422

408:                                              ; preds = %367
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %421

410:                                              ; preds = %372, %370, %368
  %411 = landingpad { ptr, i32 }
          cleanup
  br label %420

412:                                              ; preds = %373
  %413 = landingpad { ptr, i32 }
          cleanup
  br label %419

414:                                              ; preds = %374
  %415 = landingpad { ptr, i32 }
          cleanup
  br label %418

416:                                              ; preds = %375
  %417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #10
  br label %418

418:                                              ; preds = %416, %414
  %.pn236 = phi { ptr, i32 } [ %417, %416 ], [ %415, %414 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  br label %419

419:                                              ; preds = %418, %412
  %.pn236.pn = phi { ptr, i32 } [ %.pn236, %418 ], [ %413, %412 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  br label %420

420:                                              ; preds = %419, %410
  %.pn236.pn.pn = phi { ptr, i32 } [ %.pn236.pn, %419 ], [ %411, %410 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %47) #10
  br label %421

421:                                              ; preds = %420, %408
  %.pn236.pn.pn.pn = phi { ptr, i32 } [ %.pn236.pn.pn, %420 ], [ %409, %408 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %422

422:                                              ; preds = %421, %406
  %.pn236.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn236.pn.pn.pn, %421 ], [ %407, %406 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #10
  br label %435

423:                                              ; preds = %388, %386, %384, %382, %379, %376
  %424 = landingpad { ptr, i32 }
          cleanup
  br label %434

425:                                              ; preds = %388, %378
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %49) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #10
  store ptr null, ptr %50, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %49, ptr noundef nonnull align 8 dereferenceable(88) %42, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %426 unwind label %429

426:                                              ; preds = %425
  %427 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %196, ptr noundef nonnull align 8 dereferenceable(96) %49)
          to label %428 unwind label %431

428:                                              ; preds = %426
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %49) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %42) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %42) #10
  br label %436

429:                                              ; preds = %425
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %433

431:                                              ; preds = %426
  %432 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %49) #10
  br label %433

433:                                              ; preds = %431, %429
  %.pn242 = phi { ptr, i32 } [ %432, %431 ], [ %430, %429 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %49) #10
  br label %434

434:                                              ; preds = %433, %423
  %.pn242.pn = phi { ptr, i32 } [ %.pn242, %433 ], [ %424, %423 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %42) #10
  br label %435

435:                                              ; preds = %434, %422, %404
  %.pn242.pn.pn = phi { ptr, i32 } [ %.pn242.pn, %434 ], [ %.pn236.pn.pn.pn.pn, %422 ], [ %405, %404 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %42) #10
  br label %440

436:                                              ; preds = %428, %357, %355
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %34) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %34) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #10
  br label %437

437:                                              ; preds = %308, %436
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  %439 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0EEESA_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  br i1 %439, label %308, label %._crit_edge311

440:                                              ; preds = %395, %435, %403, %397, %394, %344
  %.pn242.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn232, %394 ], [ %345, %344 ], [ %396, %395 ], [ %.pn242.pn.pn, %435 ], [ %.pn234, %403 ], [ %398, %397 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %34) #10
  br label %441

441:                                              ; preds = %440, %343, %334
  %.pn242.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn, %440 ], [ %.pn229.pn, %343 ], [ %335, %334 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %34) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  br label %442

442:                                              ; preds = %441, %332
  %.pn242.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn, %441 ], [ %333, %332 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @_ZN13MonomorphiserD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %30) #10
  br label %446

443:                                              ; preds = %276, %._crit_edge314
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #10
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10
  %445 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEES8_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  br i1 %445, label %210, label %._crit_edge317

446:                                              ; preds = %442, %298
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn, %442 ], [ %299, %298 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %30) #10
  br label %447

447:                                              ; preds = %296, %446, %289, %284, %268, %245
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn226, %289 ], [ %.pn223.pn, %284 ], [ %246, %245 ], [ %.pn221, %268 ], [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn, %446 ], [ %297, %296 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #10
  br label %448

448:                                              ; preds = %447, %244, %238
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %447 ], [ %.pn219, %244 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  br label %740

._crit_edge320:                                   ; preds = %562, %._crit_edge317
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #10
  %449 = getelementptr inbounds i8, ptr %17, i64 360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #10
  %450 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %449) #10
  store ptr %450, ptr %68, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #10
  %451 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %449) #10
  store ptr %451, ptr %69, align 8
  %452 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEES4_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  br i1 %452, label %.lr.ph322, label %._crit_edge323

.lr.ph322:                                        ; preds = %._crit_edge320
  %453 = getelementptr inbounds i8, ptr %17, i64 24
  br label %573

454:                                              ; preds = %.lr.ph319, %562
  %455 = call noundef nonnull align 8 dereferenceable(9) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #10
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53)
  %456 = getelementptr inbounds i8, ptr %455, i64 8
  %457 = load i8, ptr %456, align 8, !tbaa !172, !range !174, !noundef !175
  %458 = trunc nuw i8 %457 to i1
  br i1 %458, label %562, label %459

459:                                              ; preds = %454
  %460 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %455)
  %461 = call noundef zeroext i1 @_ZNK3HIR8TypeData14is_TraitObjectEv(ptr noundef nonnull align 8 dereferenceable(184) %460)
  br i1 %461, label %562, label %462

462:                                              ; preds = %459
  %463 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %455)
  %464 = call noundef zeroext i1 @_ZNK3HIR8TypeData8is_SliceEv(ptr noundef nonnull align 8 dereferenceable(184) %463)
  br i1 %464, label %562, label %467

465:                                              ; preds = %467
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %567

467:                                              ; preds = %462
  %468 = invoke noundef zeroext i1 @_ZNK18StaticTraitResolve20type_needs_drop_glueERK4SpanRKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(424) %203, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %455)
          to label %469 unwind label %465

469:                                              ; preds = %467
  br i1 %468, label %470, label %562

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %54) #10
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %55, ptr noundef nonnull align 8 dereferenceable(8) %455)
          to label %471 unwind label %487

471:                                              ; preds = %470
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE18rcstring_drop_glue)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %57)
          to label %472 unwind label %489

472:                                              ; preds = %471
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %54, ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull %57)
          to label %473 unwind label %491

473:                                              ; preds = %472
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  %474 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %475 unwind label %494

475:                                              ; preds = %473
  br i1 %474, label %476, label %496

476:                                              ; preds = %475
  %477 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %477, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %479 unwind label %494

479:                                              ; preds = %476
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %478, ptr noundef nonnull @.str.9)
          to label %481 unwind label %494

481:                                              ; preds = %479
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %480, ptr noundef nonnull align 8 dereferenceable(88) %54)
          to label %483 unwind label %494

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

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

487:                                              ; preds = %470
  %488 = landingpad { ptr, i32 }
          cleanup
  br label %566

489:                                              ; preds = %471
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %493

491:                                              ; preds = %472
  %492 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #10
  br label %493

493:                                              ; preds = %491, %489
  %.pn203 = phi { ptr, i32 } [ %492, %491 ], [ %490, %489 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  br label %566

494:                                              ; preds = %502, %485, %483, %481, %479, %476, %473
  %495 = landingpad { ptr, i32 }
          cleanup
  br label %565

496:                                              ; preds = %485, %475
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %58) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #10
  store ptr null, ptr %59, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %58, ptr noundef nonnull align 8 dereferenceable(88) %54, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %497 unwind label %530

497:                                              ; preds = %496
  %498 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %204, ptr noundef nonnull align 8 dereferenceable(96) %58)
          to label %499 unwind label %532

499:                                              ; preds = %497
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %58) #10
  %500 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %455)
  %501 = call noundef zeroext i1 @_ZNK3HIR8TypeData7is_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %500)
  br i1 %501, label %502, label %561

502:                                              ; preds = %499
  %503 = call noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8) %455)
  %504 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNK3HIR8TypeData7as_PathEv(ptr noundef nonnull align 8 dereferenceable(184) %503)
  %505 = getelementptr inbounds i8, ptr %504, i64 88
  %506 = invoke noundef ptr @_ZNK3HIR15TypePathBinding18get_trait_markingsEv(ptr noundef nonnull align 8 dereferenceable(16) %505)
          to label %507 unwind label %494

507:                                              ; preds = %502
  %508 = getelementptr inbounds i8, ptr %506, i64 1
  %509 = load i8, ptr %508, align 1, !tbaa !176, !range !174, !noundef !175
  %510 = trunc nuw i8 %509 to i1
  br i1 %510, label %511, label %561

511:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %60) #10
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %61, ptr noundef nonnull align 8 dereferenceable(8) %455)
          to label %512 unwind label %535

512:                                              ; preds = %511
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %205)
          to label %513 unwind label %537

513:                                              ; preds = %512
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull %63)
          to label %514 unwind label %539

514:                                              ; preds = %513
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_113rcstring_dropE)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %65)
          to label %515 unwind label %541

515:                                              ; preds = %514
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %60, ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull %64, ptr noundef nonnull %65)
          to label %516 unwind label %543

516:                                              ; preds = %515
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  %517 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %518 unwind label %548

518:                                              ; preds = %516
  br i1 %517, label %519, label %550

519:                                              ; preds = %518
  %520 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %520, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %522 unwind label %548

522:                                              ; preds = %519
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %521, ptr noundef nonnull @.str.9)
          to label %524 unwind label %548

524:                                              ; preds = %522
  %525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull align 8 dereferenceable(88) %60)
          to label %526 unwind label %548

526:                                              ; preds = %524
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %525, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %528 unwind label %548

528:                                              ; preds = %526
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %527, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %550 unwind label %548

530:                                              ; preds = %496
  %531 = landingpad { ptr, i32 }
          cleanup
  br label %534

532:                                              ; preds = %497
  %533 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %58) #10
  br label %534

534:                                              ; preds = %532, %530
  %.pn205 = phi { ptr, i32 } [ %533, %532 ], [ %531, %530 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %58) #10
  br label %565

535:                                              ; preds = %511
  %536 = landingpad { ptr, i32 }
          cleanup
  br label %560

537:                                              ; preds = %512
  %538 = landingpad { ptr, i32 }
          cleanup
  br label %547

539:                                              ; preds = %513
  %540 = landingpad { ptr, i32 }
          cleanup
  br label %546

541:                                              ; preds = %514
  %542 = landingpad { ptr, i32 }
          cleanup
  br label %545

543:                                              ; preds = %515
  %544 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #10
  br label %545

545:                                              ; preds = %543, %541
  %.pn207 = phi { ptr, i32 } [ %544, %543 ], [ %542, %541 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  br label %546

546:                                              ; preds = %545, %539
  %.pn207.pn = phi { ptr, i32 } [ %.pn207, %545 ], [ %540, %539 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  br label %547

547:                                              ; preds = %546, %537
  %.pn207.pn.pn = phi { ptr, i32 } [ %.pn207.pn, %546 ], [ %538, %537 ]
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  br label %560

548:                                              ; preds = %528, %526, %524, %522, %519, %516
  %549 = landingpad { ptr, i32 }
          cleanup
  br label %559

550:                                              ; preds = %528, %518
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %66) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #10
  store ptr null, ptr %67, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %66, ptr noundef nonnull align 8 dereferenceable(88) %60, ptr noundef nonnull align 8 dereferenceable(8) %67)
          to label %551 unwind label %554

551:                                              ; preds = %550
  %552 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %204, ptr noundef nonnull align 8 dereferenceable(96) %66)
          to label %553 unwind label %556

553:                                              ; preds = %551
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %66) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %60) #10
  br label %561

554:                                              ; preds = %550
  %555 = landingpad { ptr, i32 }
          cleanup
  br label %558

556:                                              ; preds = %551
  %557 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %66) #10
  br label %558

558:                                              ; preds = %556, %554
  %.pn211 = phi { ptr, i32 } [ %557, %556 ], [ %555, %554 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %66) #10
  br label %559

559:                                              ; preds = %558, %548
  %.pn211.pn = phi { ptr, i32 } [ %.pn211, %558 ], [ %549, %548 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #10
  br label %560

560:                                              ; preds = %559, %547, %535
  %.pn211.pn.pn = phi { ptr, i32 } [ %.pn211.pn, %559 ], [ %.pn207.pn.pn, %547 ], [ %536, %535 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %60) #10
  br label %565

561:                                              ; preds = %553, %507, %499
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %54) #10
  br label %562

562:                                              ; preds = %469, %459, %462, %454, %561
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #10
  %563 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #10
  %564 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #10
  br i1 %564, label %454, label %._crit_edge320

565:                                              ; preds = %560, %534, %494
  %.pn211.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn, %560 ], [ %495, %494 ], [ %.pn205, %534 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #10
  br label %566

566:                                              ; preds = %565, %493, %487
  %.pn211.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn.pn, %565 ], [ %.pn203, %493 ], [ %488, %487 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %54) #10
  br label %567

567:                                              ; preds = %566, %465
  %.pn211.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn.pn.pn, %566 ], [ %466, %465 ]
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #10
  br label %740

._crit_edge323:                                   ; preds = %623, %._crit_edge320
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #10
  %568 = getelementptr inbounds i8, ptr %17, i64 456
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #10
  %569 = call ptr @_ZNKSt3setIN3HIR4PathESt4lessIS1_ESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %568) #10
  store ptr %569, ptr %79, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #10
  %570 = call ptr @_ZNKSt3setIN3HIR4PathESt4lessIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %568) #10
  store ptr %570, ptr %80, align 8
  %571 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR4PathEES4_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  br i1 %571, label %.lr.ph325, label %._crit_edge326

.lr.ph325:                                        ; preds = %._crit_edge323
  %572 = getelementptr inbounds i8, ptr %17, i64 24
  br label %639

573:                                              ; preds = %.lr.ph322, %623
  %574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  %575 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone acquire, align 8
  %576 = icmp eq i8 %575, 0
  br i1 %576, label %577, label %582, !prof !125

577:                                              ; preds = %573
  %578 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone) #10
  %.not193 = icmp eq i32 %578, 0
  br i1 %.not193, label %582, label %579

579:                                              ; preds = %577
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone, ptr noundef nonnull @.str.11)
          to label %580 unwind label %603

580:                                              ; preds = %579
  %581 = call i32 @__cxa_atexit(ptr nonnull @_ZN8RcStringD1Ev, ptr nonnull @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone, ptr nonnull @__dso_handle) #10
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone) #10
  br label %582

582:                                              ; preds = %580, %577, %573
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %70) #10
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %71, ptr noundef nonnull align 8 dereferenceable(8) %574)
          to label %583 unwind label %605

583:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #10
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74)
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944) %0, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull @.str.11)
          to label %585 unwind label %607

585:                                              ; preds = %583
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %584)
          to label %586 unwind label %607

586:                                              ; preds = %585
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull %73)
          to label %587 unwind label %609

587:                                              ; preds = %586
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %76)
          to label %588 unwind label %611

588:                                              ; preds = %587
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %70, ptr noundef nonnull %71, ptr noundef nonnull %72, ptr noundef nonnull %75, ptr noundef nonnull %76)
          to label %589 unwind label %613

589:                                              ; preds = %588
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %76) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  %590 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %591 unwind label %618

591:                                              ; preds = %589
  br i1 %590, label %592, label %620

592:                                              ; preds = %591
  %593 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %593, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %595 unwind label %618

595:                                              ; preds = %592
  %596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %594, ptr noundef nonnull @.str.9)
          to label %597 unwind label %618

597:                                              ; preds = %595
  %598 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull align 8 dereferenceable(88) %70)
          to label %599 unwind label %618

599:                                              ; preds = %597
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %598, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %601 unwind label %618

601:                                              ; preds = %599
  %602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %600, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %620 unwind label %618

603:                                              ; preds = %579
  %604 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_guard_abort(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE14rcstring_clone) #10
  br label %633

605:                                              ; preds = %582
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %632

607:                                              ; preds = %585, %583
  %608 = landingpad { ptr, i32 }
          cleanup
  br label %617

609:                                              ; preds = %586
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %616

611:                                              ; preds = %587
  %612 = landingpad { ptr, i32 }
          cleanup
  br label %615

613:                                              ; preds = %588
  %614 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %76) #10
  br label %615

615:                                              ; preds = %613, %611
  %.pn194 = phi { ptr, i32 } [ %614, %613 ], [ %612, %611 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #10
  br label %616

616:                                              ; preds = %615, %609
  %.pn194.pn = phi { ptr, i32 } [ %.pn194, %615 ], [ %610, %609 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  br label %617

617:                                              ; preds = %616, %607
  %.pn194.pn.pn = phi { ptr, i32 } [ %.pn194.pn, %616 ], [ %608, %607 ]
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  br label %632

618:                                              ; preds = %601, %599, %597, %595, %592, %589
  %619 = landingpad { ptr, i32 }
          cleanup
  br label %631

620:                                              ; preds = %601, %591
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %77) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #10
  store ptr null, ptr %78, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %77, ptr noundef nonnull align 8 dereferenceable(88) %70, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %621 unwind label %626

621:                                              ; preds = %620
  %622 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %453, ptr noundef nonnull align 8 dereferenceable(96) %77)
          to label %623 unwind label %628

623:                                              ; preds = %621
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %77) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %77) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %70) #10
  %624 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  %625 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEES4_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  br i1 %625, label %573, label %._crit_edge323

626:                                              ; preds = %620
  %627 = landingpad { ptr, i32 }
          cleanup
  br label %630

628:                                              ; preds = %621
  %629 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %77) #10
  br label %630

630:                                              ; preds = %628, %626
  %.pn198 = phi { ptr, i32 } [ %629, %628 ], [ %627, %626 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %77) #10
  br label %631

631:                                              ; preds = %630, %618
  %.pn198.pn = phi { ptr, i32 } [ %.pn198, %630 ], [ %619, %618 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #10
  br label %632

632:                                              ; preds = %631, %617, %605
  %.pn198.pn.pn = phi { ptr, i32 } [ %.pn198.pn, %631 ], [ %.pn194.pn.pn, %617 ], [ %606, %605 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %70) #10
  br label %633

633:                                              ; preds = %632, %603
  %.pn198.pn.pn.pn = phi { ptr, i32 } [ %.pn198.pn.pn, %632 ], [ %604, %603 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #10
  br label %740

._crit_edge326:                                   ; preds = %660, %._crit_edge323
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #10
  %634 = getelementptr inbounds i8, ptr %17, i64 408
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #10
  %635 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %634) #10
  store ptr %635, ptr %84, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #10
  %636 = call ptr @_ZNKSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %634) #10
  store ptr %636, ptr %85, align 8
  %637 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEES4_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85) #10
  br i1 %637, label %.lr.ph328, label %._crit_edge329

.lr.ph328:                                        ; preds = %._crit_edge326
  %638 = getelementptr inbounds i8, ptr %17, i64 24
  br label %673

639:                                              ; preds = %.lr.ph325, %660
  %640 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt23_Rb_tree_const_iteratorIN3HIR4PathEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  %641 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %642 unwind label %654

642:                                              ; preds = %639
  br i1 %641, label %643, label %656

643:                                              ; preds = %642
  %644 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %644, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %646 unwind label %654

646:                                              ; preds = %643
  %647 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %645, ptr noundef nonnull @.str.9)
          to label %648 unwind label %654

648:                                              ; preds = %646
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %647, ptr noundef nonnull align 8 dereferenceable(88) %640)
          to label %650 unwind label %654

650:                                              ; preds = %648
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %649, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %652 unwind label %654

652:                                              ; preds = %650
  %653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %651, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %656 unwind label %654

654:                                              ; preds = %652, %650, %648, %646, %643, %639
  %655 = landingpad { ptr, i32 }
          cleanup
  br label %671

656:                                              ; preds = %652, %642
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %81) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %82) #10
  invoke void @_ZNK3HIR4Path5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::Path") align 8 %82, ptr noundef nonnull align 8 dereferenceable(88) %640)
          to label %657 unwind label %663

657:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %83) #10
  store ptr null, ptr %83, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %81, ptr noundef nonnull align 8 dereferenceable(88) %82, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %658 unwind label %665

658:                                              ; preds = %657
  %659 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %572, ptr noundef nonnull align 8 dereferenceable(96) %81)
          to label %660 unwind label %667

660:                                              ; preds = %658
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %81) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %82) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %82) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %81) #10
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN3HIR4PathEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  %662 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR4PathEES4_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  br i1 %662, label %639, label %._crit_edge326

663:                                              ; preds = %656
  %664 = landingpad { ptr, i32 }
          cleanup
  br label %670

665:                                              ; preds = %657
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %669

667:                                              ; preds = %658
  %668 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %81) #10
  br label %669

669:                                              ; preds = %667, %665
  %.pn189 = phi { ptr, i32 } [ %668, %667 ], [ %666, %665 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %83) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %82) #10
  br label %670

670:                                              ; preds = %669, %663
  %.pn189.pn = phi { ptr, i32 } [ %.pn189, %669 ], [ %664, %663 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %82) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %81) #10
  br label %671

671:                                              ; preds = %670, %654
  %.pn189.pn.pn = phi { ptr, i32 } [ %.pn189.pn, %670 ], [ %655, %654 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #10
  br label %740

._crit_edge329:                                   ; preds = %723, %._crit_edge326
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #10
  %672 = getelementptr inbounds i8, ptr %17, i64 24
  invoke void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI18TransList_FunctionSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48) %95, ptr noundef nonnull align 8 dereferenceable(48) %672)
          to label %734 unwind label %738

673:                                              ; preds = %.lr.ph328, %723
  %674 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  %675 = load atomic i8, ptr @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item acquire, align 8
  %676 = icmp eq i8 %675, 0
  br i1 %676, label %677, label %682, !prof !125

677:                                              ; preds = %673
  %678 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item) #10
  %.not180 = icmp eq i32 %678, 0
  br i1 %.not180, label %682, label %679

679:                                              ; preds = %677
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item, ptr noundef nonnull @.str.12)
          to label %680 unwind label %703

680:                                              ; preds = %679
  %681 = call i32 @__cxa_atexit(ptr nonnull @_ZN8RcStringD1Ev, ptr nonnull @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item, ptr nonnull @__dso_handle) #10
  call void @__cxa_guard_release(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item) #10
  br label %682

682:                                              ; preds = %680, %677, %673
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %86) #10
  invoke void @_ZNK3HIR7TypeRef5cloneEv(ptr dead_on_unwind nonnull writable sret(%"class.HIR::TypeRef") align 8 %87, ptr noundef nonnull align 8 dereferenceable(8) %674)
          to label %683 unwind label %705

683:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #10
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90)
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3HIR5Crate18get_lang_item_pathERK4SpanPKc(ptr noundef nonnull align 8 dereferenceable(944) %0, ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull @.str.13)
          to label %685 unwind label %707

685:                                              ; preds = %683
  invoke void @_ZN3HIR10SimplePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %684)
          to label %686 unwind label %707

686:                                              ; preds = %685
  invoke void @_ZN3HIR11GenericPathC1ENS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull %89)
          to label %687 unwind label %709

687:                                              ; preds = %686
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) @_ZZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item)
  invoke void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24) %92)
          to label %688 unwind label %711

688:                                              ; preds = %687
  invoke void @_ZN3HIR4PathC1ENS_7TypeRefENS_11GenericPathE8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(88) %86, ptr noundef nonnull %87, ptr noundef nonnull %88, ptr noundef nonnull %91, ptr noundef nonnull %92)
          to label %689 unwind label %713

689:                                              ; preds = %688
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  %690 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %691 unwind label %718

691:                                              ; preds = %689
  br i1 %690, label %692, label %720

692:                                              ; preds = %691
  %693 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !120
  %694 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %693, ptr noundef nonnull @__FUNCTION__._Z23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransList)
          to label %695 unwind label %718

695:                                              ; preds = %692
  %696 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %694, ptr noundef nonnull @.str.9)
          to label %697 unwind label %718

697:                                              ; preds = %695
  %698 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %696, ptr noundef nonnull align 8 dereferenceable(88) %86)
          to label %699 unwind label %718

699:                                              ; preds = %697
  %700 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %698, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %701 unwind label %718

701:                                              ; preds = %699
  %702 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %700, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %720 unwind label %718

703:                                              ; preds = %679
  %704 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_guard_abort(ptr nonnull @_ZGVZ23Trans_Enumerate_CleanupRKN3HIR5CrateER9TransListE13rcstring_item) #10
  br label %733

705:                                              ; preds = %682
  %706 = landingpad { ptr, i32 }
          cleanup
  br label %732

707:                                              ; preds = %685, %683
  %708 = landingpad { ptr, i32 }
          cleanup
  br label %717

709:                                              ; preds = %686
  %710 = landingpad { ptr, i32 }
          cleanup
  br label %716

711:                                              ; preds = %687
  %712 = landingpad { ptr, i32 }
          cleanup
  br label %715

713:                                              ; preds = %688
  %714 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3HIR10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #10
  br label %715

715:                                              ; preds = %713, %711
  %.pn = phi { ptr, i32 } [ %714, %713 ], [ %712, %711 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  call void @_ZN3HIR11GenericPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  br label %716

716:                                              ; preds = %715, %709
  %.pn.pn = phi { ptr, i32 } [ %.pn, %715 ], [ %710, %709 ]
  call void @_ZN3HIR10SimplePathD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #10
  br label %717

717:                                              ; preds = %716, %707
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %716 ], [ %708, %707 ]
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #10
  call void @_ZN3HIR7TypeRefD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  br label %732

718:                                              ; preds = %701, %699, %697, %695, %692, %689
  %719 = landingpad { ptr, i32 }
          cleanup
  br label %731

720:                                              ; preds = %701, %691
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %93) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #10
  store ptr null, ptr %94, align 8, !tbaa !126
  invoke void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.409") align 8 %93, ptr noundef nonnull align 8 dereferenceable(88) %86, ptr noundef nonnull align 8 dereferenceable(8) %94)
          to label %721 unwind label %726

721:                                              ; preds = %720
  %722 = invoke { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48) %638, ptr noundef nonnull align 8 dereferenceable(96) %93)
          to label %723 unwind label %728

723:                                              ; preds = %721
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %93) #10
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %86) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %86) #10
  %724 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  %725 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIN3HIR7TypeRefEES4_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85) #10
  br i1 %725, label %673, label %._crit_edge329

726:                                              ; preds = %720
  %727 = landingpad { ptr, i32 }
          cleanup
  br label %730

728:                                              ; preds = %721
  %729 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIN3HIR4PathEDnED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %93) #10
  br label %730

730:                                              ; preds = %728, %726
  %.pn184 = phi { ptr, i32 } [ %729, %728 ], [ %727, %726 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %93) #10
  br label %731

731:                                              ; preds = %730, %718
  %.pn184.pn = phi { ptr, i32 } [ %.pn184, %730 ], [ %719, %718 ]
  call void @_ZN3HIR4PathD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %86) #10
  br label %732

732:                                              ; preds = %731, %717, %705
  %.pn184.pn.pn = phi { ptr, i32 } [ %.pn184.pn, %731 ], [ %.pn.pn.pn, %717 ], [ %706, %705 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %86) #10
  br label %733

733:                                              ; preds = %732, %703
  %.pn184.pn.pn.pn = phi { ptr, i32 } [ %.pn184.pn.pn, %732 ], [ %704, %703 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #10
  br label %740

734:                                              ; preds = %._crit_edge329
  %735 = getelementptr inbounds i8, ptr %1, i64 72
  %736 = getelementptr inbounds i8, ptr %17, i64 72
  invoke void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI16TransList_StaticSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48) %735, ptr noundef nonnull align 8 dereferenceable(48) %736)
          to label %737 unwind label %738

737:                                              ; preds = %734
  call void @_ZN9TransListD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %17) #10
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %17) #10
  call void @_ZN12_GLOBAL__N_19EnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(1224) %9) #10
  call void @llvm.lifetime.end.p0(i64 1224, ptr nonnull %9) #10
  ret void

738:                                              ; preds = %734, %._crit_edge329
  %739 = landingpad { ptr, i32 }
          cleanup
  br label %740

740:                                              ; preds = %738, %733, %671, %633, %567, %448, %208
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %448 ], [ %.pn211.pn.pn.pn.pn.pn, %567 ], [ %.pn198.pn.pn.pn, %633 ], [ %.pn189.pn.pn, %671 ], [ %.pn184.pn.pn.pn, %733 ], [ %739, %738 ], [ %209, %208 ]
  call void @_ZN9TransListD2Ev(ptr noundef nonnull align 8 dereferenceable(576) %17) #10
  br label %741

741:                                              ; preds = %740, %206
  %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %740 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 576, ptr nonnull %17) #10
  br label %742

742:                                              ; preds = %741, %182
  %.pn258.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn258.pn.pn.pn, %182 ], [ %.pn242.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %741 ]
  call void @_ZN12_GLOBAL__N_19EnumStateD2Ev(ptr noundef nonnull align 8 dereferenceable(1224) %9) #10
  call void @llvm.lifetime.end.p0(i64 1224, ptr nonnull %9) #10
  br label %743

743:                                              ; preds = %742, %150, %114
  %.pn264 = phi { ptr, i32 } [ %115, %114 ], [ %151, %150 ], [ %.pn258.pn.pn.pn.pn, %742 ]
  resume { ptr, i32 } %.pn264
}

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

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

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

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

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #7

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3HIRlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #7

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z28Trans_Enumerate_FillFrom_MIRRN3MIR9EnumCacheERKNS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(96) ptr @_ZNK3MIR15FunctionPointerdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIN3HIR4PathESaIS1_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_cxxneIPN3HIR4PathESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

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

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

declare void @_ZNK18StaticTraitResolve9get_valueERK4SpanRKN3HIR4PathER14MonomorphStatebPPKNS3_13GenericParamsE(ptr dead_on_unwind writable sret(%"class.StaticTraitResolve::ValuePtr") align 8, ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(144), i1 noundef zeroext, ptr noundef) local_unnamed_addr #7

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10ThinVectorIN3HIR11LifetimeRefEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEES8_(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(256) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKN3HIR4PathE12Trans_ParamsEEdeEv(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(80) ptr @_ZNK3HIR4Path4Data12as_UfcsKnownEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #3 align 2

declare void @_ZN3HIR10PathParamsC1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIN3HIR4PathEDnESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.409") align 8, ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIN3HIR4PathESt10unique_ptrI16TransList_StaticSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE6insertIS9_IS1_DnEEENSt9enable_ifIXsr16is_constructibleISB_T_EE5valueES9_ISt17_Rb_tree_iteratorISB_EbEE4typeEOSH_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #1 align 2

declare noundef nonnull align 8 dereferenceable(400) ptr @_ZNK3HIR5Crate17get_trait_by_pathERK4SpanRKNS_10SimplePathE(ptr noundef nonnull align 8 dereferenceable(944), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt18unordered_multimapI8RcStringSt4pairIjN3HIR11GenericPathEESt4hashIS0_ESt8equal_toIS0_ESaIS1_IKS0_S4_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_baseISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0EEESA_(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(48) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

declare void @_ZNK13Monomorphiser21monomorph_genericpathERK4SpanRKN3HIR11GenericPathEbb(ptr dead_on_unwind writable sret(%"class.HIR::GenericPath") align 8, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(368) ptr @_ZNKSt13unordered_mapI8RcStringN3HIR14TraitValueItemESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S2_EEE2atERS8_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3HIR11GenericPathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 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 #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA5_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE8RcStringEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #1 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 #1 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 noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIK8RcStringS1_IjN3HIR11GenericPathEEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorISt4pairIN3HIR7TypeRefEbESaIS3_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_cxxneIPSt4pairIN3HIR7TypeRefEbESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(184) ptr @_ZNK3HIR7TypeRef4dataEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

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

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

declare noundef zeroext i1 @_ZNK18StaticTraitResolve20type_needs_drop_glueERK4SpanRKN3HIR7TypeRefE(ptr noundef nonnull align 8 dereferenceable(424), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

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

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

declare noundef ptr @_ZNK3HIR15TypePathBinding18get_trait_markingsEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #7

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI18TransList_FunctionSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114remove_missingISt10unique_ptrI16TransList_StaticSt14default_deleteIS2_EEEEvRSt3mapIN3HIR4PathET_St4lessIS8_ESaISt4pairIKS8_S9_EEERKSG_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #1

declare void @_ZN3MIR12EnumCachePtrD1Ev(ptr) local_unnamed_addr

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

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 8}
!6 = !{!"_ZTS18TransList_Function", !7, i64 0, !7, i64 8, !10, i64 16, !24, i64 184, !30, i64 224}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS12Trans_Params", !11, i64 0, !18, i64 96, !7, i64 104, !19, i64 112, !19, i64 136, !23, i64 160}
!11 = !{!"_ZTS15MonomorphiserPP", !12, i64 0}
!12 = !{!"_ZTS13Monomorphiser", !7, i64 8, !13, i64 16, !14, i64 72}
!13 = !{!"_ZTSN3HIR8ItemPathE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48}
!14 = !{!"_ZTSSt6vectorIPKN3HIR13GenericParamsESaIS3_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIPKN3HIR13GenericParamsESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!18 = !{!"_ZTS4Span", !7, i64 0}
!19 = !{!"_ZTSN3HIR10PathParamsE", !20, i64 0, !21, i64 8, !22, i64 16}
!20 = !{!"_ZTS10ThinVectorIN3HIR11LifetimeRefEE", !7, i64 0}
!21 = !{!"_ZTS10ThinVectorIN3HIR7TypeRefEE", !7, i64 0}
!22 = !{!"_ZTS10ThinVectorIN3HIR12ConstGenericEE", !7, i64 0}
!23 = !{!"_ZTSN3HIR7TypeRefE", !7, i64 0}
!24 = !{!"_ZTS14CachedFunction", !23, i64 0, !25, i64 8, !29, i64 32}
!25 = !{!"_ZTSSt6vectorISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7PatternENS1_7TypeRefEESaIS4_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!29 = !{!"_ZTSN3MIR15FunctionPointerE", !7, i64 0}
!30 = !{!"bool", !8, i64 0}
!31 = !{!32, !7, i64 1008}
!32 = !{!"_ZTSN12_GLOBAL__N_19EnumStateE", !7, i64 0, !33, i64 8, !61, i64 432, !7, i64 1008, !103, i64 1016, !108, i64 1096, !112, i64 1120, !115, i64 1168}
!33 = !{!"_ZTS18StaticTraitResolve", !34, i64 8, !52, i64 224, !53, i64 232, !53, i64 280, !53, i64 328, !56, i64 376}
!34 = !{!"_ZTS18TraitResolveCommon", !7, i64 0, !7, i64 8, !7, i64 16, !35, i64 24, !44, i64 72, !50, i64 104, !50, i64 112, !50, i64 120, !50, i64 128, !50, i64 136, !50, i64 144, !50, i64 152, !50, i64 160, !50, i64 168, !50, i64 176, !50, i64 184, !50, i64 192, !50, i64 200, !50, i64 208}
!35 = !{!"_ZTSSt3mapIN3HIR7TypeRefEN18TraitResolveCommon14CachedEqualityESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !36, i64 0}
!36 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !37, i64 0}
!37 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_N18TraitResolveCommon14CachedEqualityEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !38, i64 0, !40, i64 8}
!38 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR7TypeRefEEE", !39, i64 0}
!39 = !{!"_ZTSSt4lessIN3HIR7TypeRefEE"}
!40 = !{!"_ZTSSt15_Rb_tree_header", !41, i64 0, !43, i64 32}
!41 = !{!"_ZTSSt18_Rb_tree_node_base", !42, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!42 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!43 = !{!"long", !8, i64 0}
!44 = !{!"_ZTS11RangeVecMapISt4pairIN3HIR7TypeRefENS1_11GenericPathEEN18TraitResolveCommon11CachedBoundENS5_14CachedBoundCmpEE", !45, i64 0, !49, i64 24}
!45 = !{!"_ZTSSt6vectorISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrISt4pairIS1_IN3HIR7TypeRefENS2_11GenericPathEEN18TraitResolveCommon11CachedBoundEESt14default_deleteIS8_EESaISB_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!49 = !{!"_ZTSN18TraitResolveCommon14CachedBoundCmpE"}
!50 = !{!"_ZTSN3HIR10SimplePathE", !51, i64 0}
!51 = !{!"_ZTS10ThinVectorI8RcStringE", !7, i64 0}
!52 = !{!"_ZTS12MetadataType", !8, i64 0}
!53 = !{!"_ZTSSt3mapIN3HIR7TypeRefEbSt4lessIS1_ESaISt4pairIKS1_bEEE", !54, i64 0}
!54 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_bESt10_Select1stIS4_ESt4lessIS1_ESaIS4_EE", !55, i64 0}
!55 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefESt4pairIKS1_bESt10_Select1stIS4_ESt4lessIS1_ESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !38, i64 0, !40, i64 8}
!56 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3HIR7TypeRefESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !57, i64 0}
!57 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3HIR7TypeRefEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !58, i64 0}
!58 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3HIR7TypeRefEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !59, i64 0, !40, i64 8}
!59 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !60, i64 0}
!60 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!61 = !{!"_ZTS9TransList", !62, i64 0, !66, i64 24, !71, i64 72, !74, i64 120, !77, i64 168, !80, i64 216, !80, i64 264, !83, i64 312, !80, i64 360, !80, i64 408, !88, i64 456, !91, i64 504, !95, i64 528, !99, i64 552}
!62 = !{!"_ZTSSt6vectorIN3HIR4PathESaIS1_EE", !63, i64 0}
!63 = !{!"_ZTSSt12_Vector_baseIN3HIR4PathESaIS1_EE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseIN3HIR4PathESaIS1_EE12_Vector_implE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseIN3HIR4PathESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!66 = !{!"_ZTSSt3mapIN3HIR4PathESt10unique_ptrI18TransList_FunctionSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE", !67, i64 0}
!67 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE", !68, i64 0}
!68 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI18TransList_FunctionSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE13_Rb_tree_implISD_Lb1EEE", !69, i64 0, !40, i64 8}
!69 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR4PathEEE", !70, i64 0}
!70 = !{!"_ZTSSt4lessIN3HIR4PathEE"}
!71 = !{!"_ZTSSt3mapIN3HIR4PathESt10unique_ptrI16TransList_StaticSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE", !72, i64 0}
!72 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI16TransList_StaticSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE", !73, i64 0}
!73 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI16TransList_StaticSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE13_Rb_tree_implISD_Lb1EEE", !69, i64 0, !40, i64 8}
!74 = !{!"_ZTSSt3mapIN3HIR4PathESt10unique_ptrI15TransList_ConstSt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE", !75, i64 0}
!75 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI15TransList_ConstSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE", !76, i64 0}
!76 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_St10unique_ptrI15TransList_ConstSt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE13_Rb_tree_implISD_Lb1EEE", !69, i64 0, !40, i64 8}
!77 = !{!"_ZTSSt3mapIN3HIR4PathE12Trans_ParamsSt4lessIS1_ESaISt4pairIKS1_S2_EEE", !78, i64 0}
!78 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathESt4pairIKS1_12Trans_ParamsESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE", !79, i64 0}
!79 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathESt4pairIKS1_12Trans_ParamsESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !69, i64 0, !40, i64 8}
!80 = !{!"_ZTSSt3setIN3HIR7TypeRefESt4lessIS1_ESaIS1_EE", !81, i64 0}
!81 = !{!"_ZTSSt8_Rb_treeIN3HIR7TypeRefES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !82, i64 0}
!82 = !{!"_ZTSNSt8_Rb_treeIN3HIR7TypeRefES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !38, i64 0, !40, i64 8}
!83 = !{!"_ZTSSt3setIN3HIR11GenericPathESt4lessIS1_ESaIS1_EE", !84, i64 0}
!84 = !{!"_ZTSSt8_Rb_treeIN3HIR11GenericPathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !85, i64 0}
!85 = !{!"_ZTSNSt8_Rb_treeIN3HIR11GenericPathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !86, i64 0, !40, i64 8}
!86 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR11GenericPathEEE", !87, i64 0}
!87 = !{!"_ZTSSt4lessIN3HIR11GenericPathEE"}
!88 = !{!"_ZTSSt3setIN3HIR4PathESt4lessIS1_ESaIS1_EE", !89, i64 0}
!89 = !{!"_ZTSSt8_Rb_treeIN3HIR4PathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !90, i64 0}
!90 = !{!"_ZTSNSt8_Rb_treeIN3HIR4PathES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !69, i64 0, !40, i64 8}
!91 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE", !92, i64 0}
!92 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE", !93, i64 0}
!93 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !94, i64 0}
!94 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR6StaticESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!95 = !{!"_ZTSSt6vectorISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE", !96, i64 0}
!96 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE", !97, i64 0}
!97 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !98, i64 0}
!98 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3HIR8FunctionESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!99 = !{!"_ZTSSt6vectorISt4pairIN3HIR7TypeRefEbESaIS3_EE", !100, i64 0}
!100 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR7TypeRefEbESaIS3_EE", !101, i64 0}
!101 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7TypeRefEbESaIS3_EE12_Vector_implE", !102, i64 0}
!102 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR7TypeRefEbESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!103 = !{!"_ZTSSt5dequeIP18TransList_FunctionSaIS1_EE", !104, i64 0}
!104 = !{!"_ZTSSt11_Deque_baseIP18TransList_FunctionSaIS1_EE", !105, i64 0}
!105 = !{!"_ZTSNSt11_Deque_baseIP18TransList_FunctionSaIS1_EE11_Deque_implE", !106, i64 0}
!106 = !{!"_ZTSNSt11_Deque_baseIP18TransList_FunctionSaIS1_EE16_Deque_impl_dataE", !7, i64 0, !43, i64 8, !107, i64 16, !107, i64 48}
!107 = !{!"_ZTSSt15_Deque_iteratorIP18TransList_FunctionRS1_PS1_E", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!108 = !{!"_ZTSSt6vectorIP18TransList_FunctionSaIS1_EE", !109, i64 0}
!109 = !{!"_ZTSSt12_Vector_baseIP18TransList_FunctionSaIS1_EE", !110, i64 0}
!110 = !{!"_ZTSNSt12_Vector_baseIP18TransList_FunctionSaIS1_EE12_Vector_implE", !111, i64 0}
!111 = !{!"_ZTSNSt12_Vector_baseIP18TransList_FunctionSaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!112 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE", !113, i64 0}
!113 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !114, i64 0}
!114 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !59, i64 0, !40, i64 8}
!115 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIN3HIR10SimplePathEPKNS7_8FunctionEESt4hashIS5_ESt8equal_toIS5_ESaIS6_IKS5_SC_EEE", !116, i64 0}
!116 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S6_IN3HIR10SimplePathEPKNS8_8FunctionEEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE", !7, i64 0, !43, i64 8, !117, i64 16, !43, i64 24, !118, i64 32, !7, i64 48}
!117 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !7, i64 0}
!118 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !119, i64 0, !43, i64 8}
!119 = !{!"float", !8, i64 0}
!120 = !{!121, !121, i64 0}
!121 = !{!"int", !8, i64 0}
!122 = !{!7, !7, i64 0}
!123 = distinct !{!123, !124}
!124 = !{!"llvm.loop.mustprogress"}
!125 = !{!"branch_weights", i32 1, i32 1048575}
!126 = !{!127, !127, i64 0}
!127 = !{!"std::nullptr_t", !8, i64 0}
!128 = distinct !{!128, !124}
!129 = !{!130, !121, i64 8}
!130 = !{!"_ZTSSt4pairIK8RcStringS_IjN3HIR11GenericPathEEE", !131, i64 0, !132, i64 8}
!131 = !{!"_ZTS8RcString", !7, i64 0}
!132 = !{!"_ZTSSt4pairIjN3HIR11GenericPathEE", !121, i64 0, !133, i64 8}
!133 = !{!"_ZTSN3HIR11GenericPathE", !50, i64 0, !19, i64 8}
!134 = !{!34, !7, i64 0}
!135 = !{!136, !141, i64 80}
!136 = !{!"_ZTSN3HIR8FunctionE", !30, i64 0, !137, i64 8, !141, i64 80, !23, i64 88, !131, i64 96, !30, i64 104, !30, i64 105, !142, i64 112, !25, i64 208, !30, i64 232, !23, i64 240, !159, i64 248, !166, i64 320}
!137 = !{!"_ZTSN3HIR7LinkageE", !138, i64 0, !139, i64 8, !139, i64 40}
!138 = !{!"_ZTSN3HIR7Linkage4TypeE", !8, i64 0}
!139 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !140, i64 0, !43, i64 8, !8, i64 16}
!140 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!141 = !{!"_ZTSN3HIR8Function8ReceiverE", !8, i64 0}
!142 = !{!"_ZTSN3HIR13GenericParamsE", !143, i64 0, !147, i64 24, !151, i64 48, !155, i64 72}
!143 = !{!"_ZTSSt6vectorIN3HIR12TypeParamDefESaIS1_EE", !144, i64 0}
!144 = !{!"_ZTSSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE", !145, i64 0}
!145 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE12_Vector_implE", !146, i64 0}
!146 = !{!"_ZTSNSt12_Vector_baseIN3HIR12TypeParamDefESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!147 = !{!"_ZTSSt6vectorIN3HIR11LifetimeDefESaIS1_EE", !148, i64 0}
!148 = !{!"_ZTSSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE", !149, i64 0}
!149 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE12_Vector_implE", !150, i64 0}
!150 = !{!"_ZTSNSt12_Vector_baseIN3HIR11LifetimeDefESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!151 = !{!"_ZTSSt6vectorIN3HIR13ValueParamDefESaIS1_EE", !152, i64 0}
!152 = !{!"_ZTSSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE", !153, i64 0}
!153 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE12_Vector_implE", !154, i64 0}
!154 = !{!"_ZTSNSt12_Vector_baseIN3HIR13ValueParamDefESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!155 = !{!"_ZTSSt6vectorIN3HIR12GenericBoundESaIS1_EE", !156, i64 0}
!156 = !{!"_ZTSSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE", !157, i64 0}
!157 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE12_Vector_implE", !158, i64 0}
!158 = !{!"_ZTSNSt12_Vector_baseIN3HIR12GenericBoundESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!159 = !{!"_ZTSN3HIR7ExprPtrE", !160, i64 0, !161, i64 8, !161, i64 32, !29, i64 56, !165, i64 64}
!160 = !{!"_ZTSN3HIR12ExprPtrInnerE", !7, i64 0}
!161 = !{!"_ZTSSt6vectorIN3HIR7TypeRefESaIS1_EE", !162, i64 0}
!162 = !{!"_ZTSSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE", !163, i64 0}
!163 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE12_Vector_implE", !164, i64 0}
!164 = !{!"_ZTSNSt12_Vector_baseIN3HIR7TypeRefESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!165 = !{!"_ZTSN3HIR12ExprStatePtrE", !7, i64 0}
!166 = !{!"_ZTSN3HIR8Function8MarkingsE", !167, i64 0, !30, i64 24, !171, i64 28}
!167 = !{!"_ZTSSt6vectorIjSaIjEE", !168, i64 0}
!168 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !169, i64 0}
!169 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !170, i64 0}
!170 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!171 = !{!"_ZTSN3HIR8Function8Markings6InlineE", !8, i64 0}
!172 = !{!173, !30, i64 8}
!173 = !{!"_ZTSSt4pairIN3HIR7TypeRefEbE", !23, i64 0, !30, i64 8}
!174 = !{i8 0, i8 2}
!175 = !{}
!176 = !{!177, !30, i64 1}
!177 = !{!"_ZTSN3HIR13TraitMarkingsE", !30, i64 0, !30, i64 1, !30, i64 2, !178, i64 8}
!178 = !{!"_ZTSSt3mapIN3HIR10SimplePathENS0_13TraitMarkings11AutoMarkingESt4lessIS1_ESaISt4pairIKS1_S3_EEE", !179, i64 0}
!179 = !{!"_ZTSSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE", !180, i64 0}
!180 = !{!"_ZTSNSt8_Rb_treeIN3HIR10SimplePathESt4pairIKS1_NS0_13TraitMarkings11AutoMarkingEESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !181, i64 0, !40, i64 8}
!181 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN3HIR10SimplePathEEE", !182, i64 0}
!182 = !{!"_ZTSSt4lessIN3HIR10SimplePathEE"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass