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

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

%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector" }
%class.RcString = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.71 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.72" = type { ptr }
%"class.AST::Path" = type { ptr, %"class.AST::Path::Class", %"struct.AST::Path::Bindings" }
%"class.AST::Path::Class" = type { i32, %"union.AST::Path::Class::DataUnion" }
%"union.AST::Path::Class::DataUnion" = type { %"struct.AST::Path::Class::Data_UFCS" }
%"struct.AST::Path::Class::Data_UFCS" = type { %"class.std::unique_ptr.45", %"class.std::unique_ptr.53", %"class.std::vector.40" }
%"class.std::unique_ptr.45" = type { %"struct.std::__uniq_ptr_data.46" }
%"struct.std::__uniq_ptr_data.46" = type { %"class.std::__uniq_ptr_impl.47" }
%"class.std::__uniq_ptr_impl.47" = type { %"class.std::tuple.48" }
%"class.std::tuple.48" = type { %"struct.std::_Tuple_impl.49" }
%"struct.std::_Tuple_impl.49" = type { %"struct.std::_Head_base.52" }
%"struct.std::_Head_base.52" = type { ptr }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.61", %"struct.AST::PathBinding.62" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"class.AST::PathBinding_Value" = type { i32, %"union.AST::PathBinding_Value::DataUnion" }
%"union.AST::PathBinding_Value::DataUnion" = type { %"struct.AST::PathBinding_Value::Data_EnumVar" }
%"struct.AST::PathBinding_Value::Data_EnumVar" = type { ptr, i32, ptr }
%"struct.AST::PathBinding.61" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.AST::PathBinding_Type" = type { i32, %"union.AST::PathBinding_Type::DataUnion" }
%"union.AST::PathBinding_Type::DataUnion" = type { %"struct.AST::PathBinding_Type::Data_Module" }
%"struct.AST::PathBinding_Type::Data_Module" = type { ptr, %"struct.AST::PathBinding_Type::(anonymous struct)::Hir" }
%"struct.AST::PathBinding_Type::(anonymous struct)::Hir" = type { ptr, ptr }
%"struct.AST::PathBinding.62" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%struct.Span = type { ptr }
%class.anon.226 = type { ptr }
%"struct.AST::PathBinding_Type::Data_Crate" = type { ptr }
%"struct.AST::PathBinding_Type::Data_Enum" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Union" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Trait" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_TraitAlias" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_TypeAlias" = type { ptr }
%"struct.AST::PathBinding_Type::Data_Struct" = type { ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Struct" = type { ptr, ptr }
%"struct.AST::PathBinding_Value::Data_Function" = type { ptr }
%"struct.AST::PathBinding_Value::Data_Static" = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.227" = type { ptr }
%"struct.AST::PathBinding_Macro::Data_MacroRules" = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.234" = type { ptr }
%class.anon.235 = type { ptr, ptr }
%class.anon.236 = type { i8 }
%class.anon.237 = type { i8 }
%class.anon.239 = type { i8 }
%class.anon.241 = type { ptr }
%class.anon.242 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.243" = type { ptr }
%"class.AST::Module" = type { %"struct.AST::AbsolutePath", %"class.std::vector.0", %"class.std::vector.5", %"class.std::vector.10", %"struct.AST::Module::FileInfo", i8, i8, %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::vector.23", %"class.std::vector.28", %"class.std::vector.33" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Module::FileInfo" = type { i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__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::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Named" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %"class.AST::Item" }
%"class.AST::AttributeList" = type { %"class.std::vector.81" }
%"class.std::vector.81" = type { %"struct.std::_Vector_base.82" }
%"struct.std::_Vector_base.82" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Visibility" = type <{ %"class.std::shared_ptr", %"class.std::shared_ptr.65", i32, [4 x i8] }>
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.65" = type { %"class.std::__shared_ptr.66" }
%"class.std::__shared_ptr.66" = type { ptr, %"class.std::__shared_count" }
%"class.AST::Item" = type { i32, %"union.AST::Item::DataUnion" }
%"union.AST::Item::DataUnion" = type { %"class.AST::Module" }
%"struct.AST::Item::Data_Crate" = type { %class.RcString }
%"class.AST::Crate" = type { %"class.AST::AttributeList", %"class.std::map", %"class.AST::Module", %"class.std::vector", %"class.std::map.200", %"class.std::map.206", %class.RcString, %class.RcString, %class.RcString, %class.RcString, i8, %"class.std::vector.211", %"class.std::vector.216", %"class.std::vector.221", i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %class.RcString, %"class.AST::Path" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.200" = type { %"class.std::_Rb_tree.201" }
%"class.std::_Rb_tree.201" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, AST::ExternCrate>, std::_Select1st<std::pair<const RcString, AST::ExternCrate>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, AST::ExternCrate>, std::_Select1st<std::pair<const RcString, AST::ExternCrate>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.206" = type { %"class.std::_Rb_tree.207" }
%"class.std::_Rb_tree.207" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, const MacroRules *>, std::_Select1st<std::pair<const RcString, const MacroRules *>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, const MacroRules *>, std::_Select1st<std::pair<const RcString, const MacroRules *>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = type { %"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Struct" = type { %"class.AST::GenericParams", %"class.AST::StructData", %"struct.AST::Struct::Markings" }
%"class.AST::GenericParams" = type { %"class.std::vector.116", %"class.std::vector.121" }
%"class.std::vector.116" = type { %"struct.std::_Vector_base.117" }
%"struct.std::_Vector_base.117" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.121" = type { %"struct.std::_Vector_base.122" }
%"struct.std::_Vector_base.122" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::StructData" = type { i32, %"union.AST::StructData::DataUnion" }
%"union.AST::StructData::DataUnion" = type { %"struct.AST::StructData::Data_Tuple" }
%"struct.AST::StructData::Data_Tuple" = type { %"class.std::vector.162" }
%"class.std::vector.162" = type { %"struct.std::_Vector_base.163" }
%"struct.std::_Vector_base.163" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Struct::Markings" = type { i32, i64, i64, i8, %class.U128, i8, %class.U128 }
%class.U128 = type { i64, i64 }
%"struct.AST::Named.228" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %class.MacroRulesPtr }
%class.MacroRulesPtr = type { ptr }
%"struct.AST::UseItem" = type { %struct.Span, %"class.std::vector.91" }
%"class.std::vector.91" = type { %"struct.std::_Vector_base.92" }
%"struct.std::_Vector_base.92" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::UseItem::Ent" = type { %struct.Span, %"class.AST::Path", %class.RcString }

@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@g_debug_indent_level = external global i32, align 4
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE = external hidden unnamed_addr constant [26 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [39 x i8], align 1
@__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE = external hidden unnamed_addr constant [66 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [24 x i8], align 1

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

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare void @__cxa_free_exception(ptr)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #1 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 uwtable
declare dso_local void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() #3

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %1) #1 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %class.TraceLog, align 8
  %6 = alloca %"class.std::function", align 8
  %7 = alloca %class.anon.71, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca %"struct.AST::AbsolutePath", align 8
  %16 = alloca %class.RcString, align 8
  %17 = alloca %"class.AST::Path", align 8
  %18 = alloca i8, align 1
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i8, align 1
  %23 = alloca ptr, align 8
  %24 = alloca i8, align 1
  %25 = alloca ptr, align 8
  %26 = alloca i8, align 1
  %27 = alloca ptr, align 8
  %28 = alloca i8, align 1
  %29 = alloca ptr, align 8
  %30 = alloca i8, align 1
  %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 i8, align 1
  %37 = alloca ptr, align 8
  %38 = alloca %"struct.AST::AbsolutePath", align 8
  %39 = alloca %"class.AST::PathBinding_Type", align 8
  %40 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %41 = alloca %"class.AST::Path", align 8
  %42 = alloca i8, align 1
  %43 = alloca ptr, align 8
  %44 = alloca %struct.Span, align 8
  %45 = alloca %"class.std::function", align 8
  %46 = alloca %class.anon.226, align 8
  %47 = alloca %"struct.AST::AbsolutePath", align 8
  %48 = alloca %"class.AST::PathBinding_Type", align 8
  %49 = alloca %"struct.AST::PathBinding_Type::Data_Crate", align 8
  %50 = alloca %"struct.AST::AbsolutePath", align 8
  %51 = alloca %"class.AST::PathBinding_Type", align 8
  %52 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %53 = alloca %"class.AST::Path", align 8
  %54 = alloca i8, align 1
  %55 = alloca ptr, align 8
  %56 = alloca %"struct.AST::AbsolutePath", align 8
  %57 = alloca %"class.AST::PathBinding_Type", align 8
  %58 = alloca %"struct.AST::PathBinding_Type::Data_Enum", align 8
  %59 = alloca %"class.AST::Path", align 8
  %60 = alloca i8, align 1
  %61 = alloca ptr, align 8
  %62 = alloca %"struct.AST::AbsolutePath", align 8
  %63 = alloca %"class.AST::PathBinding_Type", align 8
  %64 = alloca %"struct.AST::PathBinding_Type::Data_Union", align 8
  %65 = alloca %"class.AST::Path", align 8
  %66 = alloca i8, align 1
  %67 = alloca ptr, align 8
  %68 = alloca %"struct.AST::AbsolutePath", align 8
  %69 = alloca %"class.AST::PathBinding_Type", align 8
  %70 = alloca %"struct.AST::PathBinding_Type::Data_Trait", align 8
  %71 = alloca %"class.AST::Path", align 8
  %72 = alloca i8, align 1
  %73 = alloca ptr, align 8
  %74 = alloca %"struct.AST::AbsolutePath", align 8
  %75 = alloca %"class.AST::PathBinding_Type", align 8
  %76 = alloca %"struct.AST::PathBinding_Type::Data_TraitAlias", align 8
  %77 = alloca %"class.AST::Path", align 8
  %78 = alloca i8, align 1
  %79 = alloca ptr, align 8
  %80 = alloca %"struct.AST::AbsolutePath", align 8
  %81 = alloca %"class.AST::PathBinding_Type", align 8
  %82 = alloca %"struct.AST::PathBinding_Type::Data_TypeAlias", align 8
  %83 = alloca %"class.AST::Path", align 8
  %84 = alloca i8, align 1
  %85 = alloca ptr, align 8
  %86 = alloca %"struct.AST::AbsolutePath", align 8
  %87 = alloca %"class.AST::PathBinding_Type", align 8
  %88 = alloca %"struct.AST::PathBinding_Type::Data_Struct", align 8
  %89 = alloca %"struct.AST::AbsolutePath", align 8
  %90 = alloca %"class.AST::PathBinding_Value", align 8
  %91 = alloca %"struct.AST::PathBinding_Value::Data_Struct", align 8
  %92 = alloca %"class.AST::Path", align 8
  %93 = alloca %"class.AST::Path", align 8
  %94 = alloca i8, align 1
  %95 = alloca ptr, align 8
  %96 = alloca %"struct.AST::AbsolutePath", align 8
  %97 = alloca %"class.AST::PathBinding_Value", align 8
  %98 = alloca %"struct.AST::PathBinding_Value::Data_Function", align 8
  %99 = alloca %"class.AST::Path", align 8
  %100 = alloca i8, align 1
  %101 = alloca ptr, align 8
  %102 = alloca %"struct.AST::AbsolutePath", align 8
  %103 = alloca %"class.AST::PathBinding_Value", align 8
  %104 = alloca %"struct.AST::PathBinding_Value::Data_Static", align 8
  %105 = alloca %"class.AST::Path", align 8
  %106 = alloca ptr, align 8
  %107 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %108 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %109 = alloca ptr, align 8
  %110 = alloca %"class.AST::Path", align 8
  %111 = alloca %"struct.AST::AbsolutePath", align 8
  %112 = alloca %class.RcString, align 8
  %113 = alloca %"struct.AST::AbsolutePath", align 8
  %114 = alloca %class.RcString, align 8
  %115 = alloca %"class.AST::PathBinding_Macro", align 8
  %116 = alloca %"struct.AST::PathBinding_Macro::Data_MacroRules", align 8
  %117 = alloca %"class.AST::Path", align 8
  %118 = alloca i8, align 1
  %119 = alloca ptr, align 8
  %120 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %121 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %122 = alloca ptr, align 8
  %123 = alloca ptr, align 8
  %124 = alloca ptr, align 8
  %125 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %126 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %127 = alloca ptr, align 8
  %128 = alloca ptr, align 8
  %129 = alloca %struct.Span, align 8
  %130 = alloca %"class.std::function", align 8
  %131 = alloca %class.anon.235, align 8
  %132 = alloca ptr, align 8
  %133 = alloca i8, align 1
  %134 = alloca i8, align 1
  %135 = alloca ptr, align 8
  %136 = alloca i8, align 1
  %137 = alloca ptr, align 8
  %138 = alloca i8, align 1
  %139 = alloca ptr, align 8
  %140 = alloca %struct.Span, align 8
  %141 = alloca %"class.std::function", align 8
  %142 = alloca %class.anon.236, align 1
  %143 = alloca i8, align 1
  %144 = alloca ptr, align 8
  %145 = alloca %"class.AST::Path", align 8
  %146 = alloca i8, align 1
  %147 = alloca ptr, align 8
  %148 = alloca %"class.AST::Path", align 8
  %149 = alloca i8, align 1
  %150 = alloca ptr, align 8
  %151 = alloca %"class.AST::Path", align 8
  %152 = alloca i8, align 1
  %153 = alloca ptr, align 8
  %154 = alloca %"class.AST::Path", align 8
  %155 = alloca i8, align 1
  %156 = alloca ptr, align 8
  %157 = alloca %"class.AST::Path", align 8
  %158 = alloca i8, align 1
  %159 = alloca ptr, align 8
  %160 = alloca %"class.AST::Path", align 8
  %161 = alloca i8, align 1
  %162 = alloca ptr, align 8
  %163 = alloca %"class.AST::Path", align 8
  %164 = alloca i8, align 1
  %165 = alloca ptr, align 8
  %166 = alloca %"class.AST::Path", align 8
  %167 = alloca i8, align 1
  %168 = alloca ptr, align 8
  %169 = alloca %"class.AST::Path", align 8
  %170 = alloca i8, align 1
  %171 = alloca ptr, align 8
  %172 = alloca i8, align 1
  %173 = alloca ptr, align 8
  %174 = alloca i8, align 1
  %175 = alloca ptr, align 8
  %176 = alloca %struct.Span, align 8
  %177 = alloca %"class.std::function", align 8
  %178 = alloca %class.anon.237, align 1
  %179 = alloca i8, align 1
  %180 = alloca ptr, align 8
  %181 = alloca %struct.Span, align 8
  %182 = alloca %"class.std::function", align 8
  %183 = alloca %class.anon.239, align 1
  %184 = alloca i8, align 1
  %185 = alloca ptr, align 8
  %186 = alloca %"class.AST::Path", align 8
  %187 = alloca i8, align 1
  %188 = alloca ptr, align 8
  %189 = alloca %"class.AST::Path", align 8
  %190 = alloca i8, align 1
  %191 = alloca ptr, align 8
  %192 = alloca %"class.AST::Path", align 8
  %193 = alloca i8, align 1
  %194 = alloca ptr, align 8
  %195 = alloca %"class.AST::Path", align 8
  %196 = alloca i8, align 1
  %197 = alloca ptr, align 8
  %198 = alloca i8, align 1
  %199 = alloca ptr, align 8
  %200 = alloca i8, align 1
  %201 = alloca ptr, align 8
  %202 = alloca %"class.AST::Path", align 8
  %203 = alloca i8, align 1
  %204 = alloca ptr, align 8
  %205 = alloca %"class.AST::Path", align 8
  %206 = alloca i8, align 1
  %207 = alloca ptr, align 8
  %208 = alloca ptr, align 8
  %209 = alloca %struct.Span, align 8
  %210 = alloca %"class.std::function", align 8
  %211 = alloca %class.anon.241, align 8
  %212 = alloca i8, align 1
  %213 = alloca ptr, align 8
  %214 = alloca ptr, align 8
  %215 = alloca %struct.Span, align 8
  %216 = alloca %"class.std::function", align 8
  %217 = alloca %class.anon.242, align 8
  %218 = alloca ptr, align 8
  %219 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %220 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %221 = alloca ptr, align 8
  %222 = alloca ptr, align 8
  %223 = alloca ptr, align 8
  %224 = alloca %"class.__gnu_cxx::__normal_iterator.243", align 8
  %225 = alloca %"class.__gnu_cxx::__normal_iterator.243", align 8
  %226 = alloca ptr, 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 40, ptr %5) #8
  %227 = call noundef zeroext i1 @_Z13debug_enabledv()
  %228 = zext i1 %227 to i64
  %229 = select i1 %227, ptr @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE, ptr null
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %230 = getelementptr inbounds %class.anon.71, ptr %7, i32 0, i32 0
  %231 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %231, ptr %230, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #8
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef %229, ptr noundef %6)
          to label %232 unwind label %244

232:                                              ; preds = %2
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %233 = load ptr, ptr %4, align 8, !tbaa !5
  %234 = getelementptr inbounds %"class.AST::Module", ptr %233, i32 0, i32 1
  store ptr %234, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %235 = load ptr, ptr %10, align 8, !tbaa !5
  %236 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %235) #8
  %237 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.72", ptr %11, i32 0, i32 0
  store ptr %236, ptr %237, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  %238 = load ptr, ptr %10, align 8, !tbaa !5
  %239 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %238) #8
  %240 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.72", ptr %12, i32 0, i32 0
  store ptr %239, ptr %240, align 8
  br label %241

241:                                              ; preds = %1190, %232
  %242 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br i1 %242, label %248, label %243

243:                                              ; preds = %241
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  br label %1194

244:                                              ; preds = %2
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %8, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  br label %2577

248:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  store ptr %249, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #8
  %250 = load ptr, ptr %4, align 8, !tbaa !5
  %251 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %250)
          to label %252 unwind label %263

252:                                              ; preds = %248
  %253 = load ptr, ptr %14, align 8, !tbaa !5
  %254 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %253) #8
  %255 = getelementptr inbounds %"struct.AST::Named", ptr %254, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %255)
          to label %256 unwind label %263

256:                                              ; preds = %252
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef %16)
          to label %257 unwind label %267

257:                                              ; preds = %256
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  call void @llvm.lifetime.start.p0(i64 240, ptr %17) #8
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %17, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %258 unwind label %271

258:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #8
  store i8 1, ptr %18, align 1, !tbaa !9
  br label %259

259:                                              ; preds = %1188, %258
  %260 = load i8, ptr %18, align 1, !tbaa !9, !range !11, !noundef !12
  %261 = trunc i8 %260 to i1
  br i1 %261, label %275, label %262

262:                                              ; preds = %259
  store i32 4, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  br label %1189

263:                                              ; preds = %252, %248
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %8, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %9, align 4
  br label %1193

267:                                              ; preds = %256
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %8, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %9, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br label %1193

271:                                              ; preds = %257
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %8, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %9, align 4
  br label %1192

275:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %276 = load ptr, ptr %14, align 8, !tbaa !5
  %277 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %276) #8
  %278 = getelementptr inbounds %"struct.AST::Named", ptr %277, i32 0, i32 4
  store ptr %278, ptr %19, align 8, !tbaa !5
  br label %279

279:                                              ; preds = %1185, %275
  %280 = load i8, ptr %18, align 1, !tbaa !9, !range !11, !noundef !12
  %281 = trunc i8 %280 to i1
  br i1 %281, label %283, label %282

282:                                              ; preds = %279
  store i32 7, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %1187

283:                                              ; preds = %279
  %284 = load ptr, ptr %19, align 8, !tbaa !5
  %285 = invoke noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488) %284)
          to label %286 unwind label %287

286:                                              ; preds = %283
  switch i32 %285, label %1184 [
    i32 0, label %291
    i32 1, label %292
    i32 2, label %315
    i32 4, label %338
    i32 6, label %361
    i32 7, label %384
    i32 5, label %407
    i32 8, label %430
    i32 3, label %453
    i32 9, label %476
    i32 10, label %535
    i32 13, label %659
    i32 14, label %720
    i32 15, label %781
    i32 16, label %842
    i32 11, label %903
    i32 12, label %961
    i32 17, label %1065
    i32 18, label %1123
  ]

287:                                              ; preds = %283
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %8, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %9, align 4
  br label %1186

291:                                              ; preds = %286
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 134, ptr noundef @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #9
  unreachable

292:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  store i8 1, ptr %20, align 1, !tbaa !9
  br label %293

293:                                              ; preds = %313, %292
  %294 = load i8, ptr %20, align 1, !tbaa !9, !range !11, !noundef !12
  %295 = trunc i8 %294 to i1
  br i1 %295, label %297, label %296

296:                                              ; preds = %293
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %314

297:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %298 = load ptr, ptr %19, align 8, !tbaa !5
  %299 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZN3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %298)
          to label %300 unwind label %306

300:                                              ; preds = %297
  store ptr %299, ptr %21, align 8, !tbaa !5
  br label %301

301:                                              ; preds = %311, %300
  %302 = load ptr, ptr %21, align 8, !tbaa !5
  %303 = load i8, ptr %20, align 1, !tbaa !9, !range !11, !noundef !12
  %304 = trunc i8 %303 to i1
  br i1 %304, label %310, label %305

305:                                              ; preds = %301
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %312

306:                                              ; preds = %297
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %8, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %1186

310:                                              ; preds = %301
  br label %311

311:                                              ; preds = %310
  store i8 0, ptr %20, align 1, !tbaa !9
  br label %301, !llvm.loop !13

312:                                              ; preds = %305
  br label %313

313:                                              ; preds = %312
  store i8 0, ptr %20, align 1, !tbaa !9
  br label %293, !llvm.loop !15

314:                                              ; preds = %296
  br label %1184

315:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  store i8 1, ptr %22, align 1, !tbaa !9
  br label %316

316:                                              ; preds = %336, %315
  %317 = load i8, ptr %22, align 1, !tbaa !9, !range !11, !noundef !12
  %318 = trunc i8 %317 to i1
  br i1 %318, label %320, label %319

319:                                              ; preds = %316
  store i32 17, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  br label %337

320:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %321 = load ptr, ptr %19, align 8, !tbaa !5
  %322 = invoke noundef nonnull align 8 dereferenceable(393) ptr @_ZN3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488) %321)
          to label %323 unwind label %329

323:                                              ; preds = %320
  store ptr %322, ptr %23, align 8, !tbaa !5
  br label %324

324:                                              ; preds = %334, %323
  %325 = load ptr, ptr %23, align 8, !tbaa !5
  %326 = load i8, ptr %22, align 1, !tbaa !9, !range !11, !noundef !12
  %327 = trunc i8 %326 to i1
  br i1 %327, label %333, label %328

328:                                              ; preds = %324
  store i32 20, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %335

329:                                              ; preds = %320
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %8, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  br label %1186

333:                                              ; preds = %324
  br label %334

334:                                              ; preds = %333
  store i8 0, ptr %22, align 1, !tbaa !9
  br label %324, !llvm.loop !16

335:                                              ; preds = %328
  br label %336

336:                                              ; preds = %335
  store i8 0, ptr %22, align 1, !tbaa !9
  br label %316, !llvm.loop !17

337:                                              ; preds = %319
  br label %1184

338:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #8
  store i8 1, ptr %24, align 1, !tbaa !9
  br label %339

339:                                              ; preds = %359, %338
  %340 = load i8, ptr %24, align 1, !tbaa !9, !range !11, !noundef !12
  %341 = trunc i8 %340 to i1
  br i1 %341, label %343, label %342

342:                                              ; preds = %339
  store i32 23, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #8
  br label %360

343:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %344 = load ptr, ptr %19, align 8, !tbaa !5
  %345 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488) %344)
          to label %346 unwind label %352

346:                                              ; preds = %343
  store ptr %345, ptr %25, align 8, !tbaa !5
  br label %347

347:                                              ; preds = %357, %346
  %348 = load ptr, ptr %25, align 8, !tbaa !5
  %349 = load i8, ptr %24, align 1, !tbaa !9, !range !11, !noundef !12
  %350 = trunc i8 %349 to i1
  br i1 %350, label %356, label %351

351:                                              ; preds = %347
  store i32 26, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %358

352:                                              ; preds = %343
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %8, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #8
  br label %1186

356:                                              ; preds = %347
  br label %357

357:                                              ; preds = %356
  store i8 0, ptr %24, align 1, !tbaa !9
  br label %347, !llvm.loop !18

358:                                              ; preds = %351
  br label %359

359:                                              ; preds = %358
  store i8 0, ptr %24, align 1, !tbaa !9
  br label %339, !llvm.loop !19

360:                                              ; preds = %342
  br label %1184

361:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #8
  store i8 1, ptr %26, align 1, !tbaa !9
  br label %362

362:                                              ; preds = %382, %361
  %363 = load i8, ptr %26, align 1, !tbaa !9, !range !11, !noundef !12
  %364 = trunc i8 %363 to i1
  br i1 %364, label %366, label %365

365:                                              ; preds = %362
  store i32 29, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  br label %383

366:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %367 = load ptr, ptr %19, align 8, !tbaa !5
  %368 = invoke noundef nonnull align 8 dereferenceable(472) ptr @_ZN3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %367)
          to label %369 unwind label %375

369:                                              ; preds = %366
  store ptr %368, ptr %27, align 8, !tbaa !5
  br label %370

370:                                              ; preds = %380, %369
  %371 = load ptr, ptr %27, align 8, !tbaa !5
  %372 = load i8, ptr %26, align 1, !tbaa !9, !range !11, !noundef !12
  %373 = trunc i8 %372 to i1
  br i1 %373, label %379, label %374

374:                                              ; preds = %370
  store i32 32, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %381

375:                                              ; preds = %366
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %8, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  br label %1186

379:                                              ; preds = %370
  br label %380

380:                                              ; preds = %379
  store i8 0, ptr %26, align 1, !tbaa !9
  br label %370, !llvm.loop !20

381:                                              ; preds = %374
  br label %382

382:                                              ; preds = %381
  store i8 0, ptr %26, align 1, !tbaa !9
  br label %362, !llvm.loop !21

383:                                              ; preds = %365
  br label %1184

384:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #8
  store i8 1, ptr %28, align 1, !tbaa !9
  br label %385

385:                                              ; preds = %405, %384
  %386 = load i8, ptr %28, align 1, !tbaa !9, !range !11, !noundef !12
  %387 = trunc i8 %386 to i1
  br i1 %387, label %389, label %388

388:                                              ; preds = %385
  store i32 35, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  br label %406

389:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %390 = load ptr, ptr %19, align 8, !tbaa !5
  %391 = invoke noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %390)
          to label %392 unwind label %398

392:                                              ; preds = %389
  store ptr %391, ptr %29, align 8, !tbaa !5
  br label %393

393:                                              ; preds = %403, %392
  %394 = load ptr, ptr %29, align 8, !tbaa !5
  %395 = load i8, ptr %28, align 1, !tbaa !9, !range !11, !noundef !12
  %396 = trunc i8 %395 to i1
  br i1 %396, label %402, label %397

397:                                              ; preds = %393
  store i32 38, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %404

398:                                              ; preds = %389
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %8, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  br label %1186

402:                                              ; preds = %393
  br label %403

403:                                              ; preds = %402
  store i8 0, ptr %28, align 1, !tbaa !9
  br label %393, !llvm.loop !22

404:                                              ; preds = %397
  br label %405

405:                                              ; preds = %404
  store i8 0, ptr %28, align 1, !tbaa !9
  br label %385, !llvm.loop !23

406:                                              ; preds = %388
  br label %1184

407:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #8
  store i8 1, ptr %30, align 1, !tbaa !9
  br label %408

408:                                              ; preds = %428, %407
  %409 = load i8, ptr %30, align 1, !tbaa !9, !range !11, !noundef !12
  %410 = trunc i8 %409 to i1
  br i1 %410, label %412, label %411

411:                                              ; preds = %408
  store i32 41, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  br label %429

412:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %413 = load ptr, ptr %19, align 8, !tbaa !5
  %414 = invoke noundef nonnull align 8 dereferenceable(52) ptr @_ZN3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488) %413)
          to label %415 unwind label %421

415:                                              ; preds = %412
  store ptr %414, ptr %31, align 8, !tbaa !5
  br label %416

416:                                              ; preds = %426, %415
  %417 = load ptr, ptr %31, align 8, !tbaa !5
  %418 = load i8, ptr %30, align 1, !tbaa !9, !range !11, !noundef !12
  %419 = trunc i8 %418 to i1
  br i1 %419, label %425, label %420

420:                                              ; preds = %416
  store i32 44, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br label %427

421:                                              ; preds = %412
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %8, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  br label %1186

425:                                              ; preds = %416
  br label %426

426:                                              ; preds = %425
  store i8 0, ptr %30, align 1, !tbaa !9
  br label %416, !llvm.loop !24

427:                                              ; preds = %420
  br label %428

428:                                              ; preds = %427
  store i8 0, ptr %30, align 1, !tbaa !9
  br label %408, !llvm.loop !25

429:                                              ; preds = %411
  br label %1184

430:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  store i8 1, ptr %32, align 1, !tbaa !9
  br label %431

431:                                              ; preds = %451, %430
  %432 = load i8, ptr %32, align 1, !tbaa !9, !range !11, !noundef !12
  %433 = trunc i8 %432 to i1
  br i1 %433, label %435, label %434

434:                                              ; preds = %431
  store i32 47, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  br label %452

435:                                              ; preds = %431
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %436 = load ptr, ptr %19, align 8, !tbaa !5
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3AST4Item8as_MacroEv(ptr noundef nonnull align 8 dereferenceable(488) %436)
          to label %438 unwind label %444

438:                                              ; preds = %435
  store ptr %437, ptr %33, align 8, !tbaa !5
  br label %439

439:                                              ; preds = %449, %438
  %440 = load ptr, ptr %33, align 8, !tbaa !5
  %441 = load i8, ptr %32, align 1, !tbaa !9, !range !11, !noundef !12
  %442 = trunc i8 %441 to i1
  br i1 %442, label %448, label %443

443:                                              ; preds = %439
  store i32 50, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %450

444:                                              ; preds = %435
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %8, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  br label %1186

448:                                              ; preds = %439
  br label %449

449:                                              ; preds = %448
  store i8 0, ptr %32, align 1, !tbaa !9
  br label %439, !llvm.loop !26

450:                                              ; preds = %443
  br label %451

451:                                              ; preds = %450
  store i8 0, ptr %32, align 1, !tbaa !9
  br label %431, !llvm.loop !27

452:                                              ; preds = %434
  br label %1184

453:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #8
  store i8 1, ptr %34, align 1, !tbaa !9
  br label %454

454:                                              ; preds = %474, %453
  %455 = load i8, ptr %34, align 1, !tbaa !9, !range !11, !noundef !12
  %456 = trunc i8 %455 to i1
  br i1 %456, label %458, label %457

457:                                              ; preds = %454
  store i32 53, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #8
  br label %475

458:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %459 = load ptr, ptr %19, align 8, !tbaa !5
  %460 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %459)
          to label %461 unwind label %467

461:                                              ; preds = %458
  store ptr %460, ptr %35, align 8, !tbaa !5
  br label %462

462:                                              ; preds = %472, %461
  %463 = load ptr, ptr %35, align 8, !tbaa !5
  %464 = load i8, ptr %34, align 1, !tbaa !9, !range !11, !noundef !12
  %465 = trunc i8 %464 to i1
  br i1 %465, label %471, label %466

466:                                              ; preds = %462
  store i32 56, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %473

467:                                              ; preds = %458
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %8, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #8
  br label %1186

471:                                              ; preds = %462
  br label %472

472:                                              ; preds = %471
  store i8 0, ptr %34, align 1, !tbaa !9
  br label %462, !llvm.loop !28

473:                                              ; preds = %466
  br label %474

474:                                              ; preds = %473
  store i8 0, ptr %34, align 1, !tbaa !9
  br label %454, !llvm.loop !29

475:                                              ; preds = %457
  br label %1184

476:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #8
  store i8 1, ptr %36, align 1, !tbaa !9
  br label %477

477:                                              ; preds = %533, %476
  %478 = load i8, ptr %36, align 1, !tbaa !9, !range !11, !noundef !12
  %479 = trunc i8 %478 to i1
  br i1 %479, label %481, label %480

480:                                              ; preds = %477
  store i32 59, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  br label %534

481:                                              ; preds = %477
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %482 = load ptr, ptr %19, align 8, !tbaa !5
  %483 = invoke noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %482)
          to label %484 unwind label %490

484:                                              ; preds = %481
  store ptr %483, ptr %37, align 8, !tbaa !5
  br label %485

485:                                              ; preds = %517, %484
  %486 = load ptr, ptr %37, align 8, !tbaa !5
  %487 = load i8, ptr %36, align 1, !tbaa !9, !range !11, !noundef !12
  %488 = trunc i8 %487 to i1
  br i1 %488, label %494, label %489

489:                                              ; preds = %485
  store i32 62, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %532

490:                                              ; preds = %504, %494, %481
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %8, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %9, align 4
  br label %531

494:                                              ; preds = %485
  %495 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %496 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %495, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %497 unwind label %490

497:                                              ; preds = %494
  %498 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %40, i32 0, i32 0
  %499 = load ptr, ptr %37, align 8, !tbaa !5
  store ptr %499, ptr %498, align 8, !tbaa !30
  %500 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %40, i32 0, i32 1
  %501 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %500, i32 0, i32 0
  store ptr null, ptr %501, align 8, !tbaa !33
  %502 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %500, i32 0, i32 1
  store ptr null, ptr %502, align 8, !tbaa !34
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %39, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %40)
          to label %503 unwind label %518

503:                                              ; preds = %497
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %496, ptr noundef %38, ptr noundef %39)
          to label %504 unwind label %522

504:                                              ; preds = %503
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  %505 = load ptr, ptr %14, align 8, !tbaa !5
  %506 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %505) #8
  %507 = getelementptr inbounds %"struct.AST::Named", ptr %506, i32 0, i32 0
  %508 = load ptr, ptr %4, align 8, !tbaa !5
  %509 = load ptr, ptr %14, align 8, !tbaa !5
  %510 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %509) #8
  %511 = getelementptr inbounds %"struct.AST::Named", ptr %510, i32 0, i32 3
  %512 = load ptr, ptr %14, align 8, !tbaa !5
  %513 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %512) #8
  %514 = getelementptr inbounds %"struct.AST::Named", ptr %513, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %41, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %515 unwind label %490

515:                                              ; preds = %504
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %507, ptr noundef nonnull align 8 dereferenceable(480) %508, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef nonnull align 8 dereferenceable(36) %514, ptr noundef %41, i1 noundef zeroext true)
          to label %516 unwind label %527

516:                                              ; preds = %515
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %41) #8
  br label %517

517:                                              ; preds = %516
  store i8 0, ptr %36, align 1, !tbaa !9
  br label %485, !llvm.loop !35

518:                                              ; preds = %497
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %8, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %9, align 4
  br label %526

522:                                              ; preds = %503
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %8, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %526

526:                                              ; preds = %522, %518
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %531

527:                                              ; preds = %515
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %8, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %41) #8
  br label %531

531:                                              ; preds = %527, %526, %490
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  br label %1186

532:                                              ; preds = %489
  br label %533

533:                                              ; preds = %532
  store i8 0, ptr %36, align 1, !tbaa !9
  br label %477, !llvm.loop !36

534:                                              ; preds = %480
  br label %1184

535:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #8
  store i8 1, ptr %42, align 1, !tbaa !9
  br label %536

536:                                              ; preds = %657, %535
  %537 = load i8, ptr %42, align 1, !tbaa !9, !range !11, !noundef !12
  %538 = trunc i8 %537 to i1
  br i1 %538, label %540, label %539

539:                                              ; preds = %536
  store i32 65, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  br label %658

540:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %541 = load ptr, ptr %19, align 8, !tbaa !5
  %542 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3AST4Item8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(488) %541)
          to label %543 unwind label %549

543:                                              ; preds = %540
  store ptr %542, ptr %43, align 8, !tbaa !5
  br label %544

544:                                              ; preds = %650, %543
  %545 = load ptr, ptr %43, align 8, !tbaa !5
  %546 = load i8, ptr %42, align 1, !tbaa !9, !range !11, !noundef !12
  %547 = trunc i8 %546 to i1
  br i1 %547, label %553, label %548

548:                                              ; preds = %544
  store i32 68, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %656

549:                                              ; preds = %637, %616, %592, %576, %559, %553, %540
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %8, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %9, align 4
  br label %655

553:                                              ; preds = %544
  %554 = load ptr, ptr %43, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %554, i32 0, i32 0
  %556 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef @.str.4)
          to label %557 unwind label %549

557:                                              ; preds = %553
  br i1 %556, label %558, label %616

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  %560 = load ptr, ptr %3, align 8, !tbaa !5
  %561 = getelementptr inbounds %"class.AST::Crate", ptr %560, i32 0, i32 4
  %562 = load ptr, ptr %43, align 8, !tbaa !5
  %563 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %562, i32 0, i32 0
  %564 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %561, ptr noundef nonnull align 8 dereferenceable(8) %563)
          to label %565 unwind label %549

565:                                              ; preds = %559
  %566 = icmp ugt i64 %564, 0
  br i1 %566, label %590, label %567

567:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %568 = load ptr, ptr %14, align 8, !tbaa !5
  %569 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %568) #8
  %570 = getelementptr inbounds %"struct.AST::Named", ptr %569, i32 0, i32 0
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %570)
          to label %571 unwind label %577

571:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  %572 = getelementptr inbounds %class.anon.226, ptr %46, i32 0, i32 0
  %573 = load ptr, ptr %43, align 8, !tbaa !5
  store ptr %573, ptr %572, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef %45)
          to label %574 unwind label %581

574:                                              ; preds = %571
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  %575 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef @.str.5)
          to label %576 unwind label %586

576:                                              ; preds = %574
  invoke void @__cxa_throw(ptr %575, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %2583 unwind label %549

577:                                              ; preds = %567
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %8, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %9, align 4
  br label %585

581:                                              ; preds = %571
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %8, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br label %585

585:                                              ; preds = %581, %577
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %655

586:                                              ; preds = %574
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %8, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %9, align 4
  call void @__cxa_free_exception(ptr %575) #8
  br label %655

590:                                              ; preds = %565
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  %593 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %594 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %593, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %595 unwind label %549

595:                                              ; preds = %592
  %596 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Crate", ptr %49, i32 0, i32 0
  %597 = load ptr, ptr %3, align 8, !tbaa !5
  %598 = getelementptr inbounds %"class.AST::Crate", ptr %597, i32 0, i32 4
  %599 = load ptr, ptr %43, align 8, !tbaa !5
  %600 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %599, i32 0, i32 0
  %601 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %598, ptr noundef nonnull align 8 dereferenceable(8) %600)
          to label %602 unwind label %607

602:                                              ; preds = %595
  store ptr %601, ptr %596, align 8, !tbaa !37
  %603 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Crate", ptr %49, i32 0, i32 0
  %604 = load ptr, ptr %603, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %48, ptr %604)
          to label %605 unwind label %607

605:                                              ; preds = %602
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %594, ptr noundef %47, ptr noundef %48)
          to label %606 unwind label %611

606:                                              ; preds = %605
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %637

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

611:                                              ; preds = %605
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %8, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %615

615:                                              ; preds = %611, %607
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %655

616:                                              ; preds = %557
  %617 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %618 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %617, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %619 unwind label %549

619:                                              ; preds = %616
  %620 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %52, i32 0, i32 0
  %621 = load ptr, ptr %3, align 8, !tbaa !5
  %622 = getelementptr inbounds %"class.AST::Crate", ptr %621, i32 0, i32 2
  store ptr %622, ptr %620, align 8, !tbaa !30
  %623 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %52, i32 0, i32 1
  %624 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %623, i32 0, i32 0
  store ptr null, ptr %624, align 8, !tbaa !33
  %625 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %623, i32 0, i32 1
  store ptr null, ptr %625, align 8, !tbaa !34
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %51, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %52)
          to label %626 unwind label %628

626:                                              ; preds = %619
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %618, ptr noundef %50, ptr noundef %51)
          to label %627 unwind label %632

627:                                              ; preds = %626
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %637

628:                                              ; preds = %619
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %8, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %9, align 4
  br label %636

632:                                              ; preds = %626
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %8, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %636

636:                                              ; preds = %632, %628
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %655

637:                                              ; preds = %627, %606
  %638 = load ptr, ptr %14, align 8, !tbaa !5
  %639 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %638) #8
  %640 = getelementptr inbounds %"struct.AST::Named", ptr %639, i32 0, i32 0
  %641 = load ptr, ptr %4, align 8, !tbaa !5
  %642 = load ptr, ptr %14, align 8, !tbaa !5
  %643 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %642) #8
  %644 = getelementptr inbounds %"struct.AST::Named", ptr %643, i32 0, i32 3
  %645 = load ptr, ptr %14, align 8, !tbaa !5
  %646 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %645) #8
  %647 = getelementptr inbounds %"struct.AST::Named", ptr %646, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %53, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %648 unwind label %549

648:                                              ; preds = %637
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %640, ptr noundef nonnull align 8 dereferenceable(480) %641, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %644, ptr noundef nonnull align 8 dereferenceable(36) %647, ptr noundef %53, i1 noundef zeroext true)
          to label %649 unwind label %651

649:                                              ; preds = %648
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %53) #8
  br label %650

650:                                              ; preds = %649
  store i8 0, ptr %42, align 1, !tbaa !9
  br label %544, !llvm.loop !39

651:                                              ; preds = %648
  %652 = landingpad { ptr, i32 }
          cleanup
  %653 = extractvalue { ptr, i32 } %652, 0
  store ptr %653, ptr %8, align 8
  %654 = extractvalue { ptr, i32 } %652, 1
  store i32 %654, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %53) #8
  br label %655

655:                                              ; preds = %651, %636, %615, %586, %585, %549
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  br label %1186

656:                                              ; preds = %548
  br label %657

657:                                              ; preds = %656
  store i8 0, ptr %42, align 1, !tbaa !9
  br label %536, !llvm.loop !40

658:                                              ; preds = %539
  br label %1184

659:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #8
  store i8 1, ptr %54, align 1, !tbaa !9
  br label %660

660:                                              ; preds = %718, %659
  %661 = load i8, ptr %54, align 1, !tbaa !9, !range !11, !noundef !12
  %662 = trunc i8 %661 to i1
  br i1 %662, label %664, label %663

663:                                              ; preds = %660
  store i32 73, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  br label %719

664:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %665 = load ptr, ptr %19, align 8, !tbaa !5
  %666 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488) %665)
          to label %667 unwind label %673

667:                                              ; preds = %664
  store ptr %666, ptr %55, align 8, !tbaa !5
  br label %668

668:                                              ; preds = %702, %667
  %669 = load ptr, ptr %55, align 8, !tbaa !5
  %670 = load i8, ptr %54, align 1, !tbaa !9, !range !11, !noundef !12
  %671 = trunc i8 %670 to i1
  br i1 %671, label %677, label %672

672:                                              ; preds = %668
  store i32 76, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %717

673:                                              ; preds = %689, %677, %664
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %8, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %9, align 4
  br label %716

677:                                              ; preds = %668
  %678 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %679 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %678, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %680 unwind label %673

680:                                              ; preds = %677
  %681 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %58, i32 0, i32 0
  %682 = load ptr, ptr %55, align 8, !tbaa !5
  store ptr %682, ptr %681, align 8, !tbaa !41
  %683 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %58, i32 0, i32 1
  store ptr null, ptr %683, align 8, !tbaa !43
  %684 = getelementptr inbounds { ptr, ptr }, ptr %58, i32 0, i32 0
  %685 = load ptr, ptr %684, align 8
  %686 = getelementptr inbounds { ptr, ptr }, ptr %58, i32 0, i32 1
  %687 = load ptr, ptr %686, align 8
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %57, ptr %685, ptr %687)
          to label %688 unwind label %703

688:                                              ; preds = %680
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %679, ptr noundef %56, ptr noundef %57)
          to label %689 unwind label %707

689:                                              ; preds = %688
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  %690 = load ptr, ptr %14, align 8, !tbaa !5
  %691 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %690) #8
  %692 = getelementptr inbounds %"struct.AST::Named", ptr %691, i32 0, i32 0
  %693 = load ptr, ptr %4, align 8, !tbaa !5
  %694 = load ptr, ptr %14, align 8, !tbaa !5
  %695 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %694) #8
  %696 = getelementptr inbounds %"struct.AST::Named", ptr %695, i32 0, i32 3
  %697 = load ptr, ptr %14, align 8, !tbaa !5
  %698 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %697) #8
  %699 = getelementptr inbounds %"struct.AST::Named", ptr %698, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %59, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %700 unwind label %673

700:                                              ; preds = %689
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %692, ptr noundef nonnull align 8 dereferenceable(480) %693, ptr noundef nonnull align 8 dereferenceable(8) %696, ptr noundef nonnull align 8 dereferenceable(36) %699, ptr noundef %59, i1 noundef zeroext true)
          to label %701 unwind label %712

701:                                              ; preds = %700
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %59) #8
  br label %702

702:                                              ; preds = %701
  store i8 0, ptr %54, align 1, !tbaa !9
  br label %668, !llvm.loop !44

703:                                              ; preds = %680
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %8, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %9, align 4
  br label %711

707:                                              ; preds = %688
  %708 = landingpad { ptr, i32 }
          cleanup
  %709 = extractvalue { ptr, i32 } %708, 0
  store ptr %709, ptr %8, align 8
  %710 = extractvalue { ptr, i32 } %708, 1
  store i32 %710, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %711

711:                                              ; preds = %707, %703
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %716

712:                                              ; preds = %700
  %713 = landingpad { ptr, i32 }
          cleanup
  %714 = extractvalue { ptr, i32 } %713, 0
  store ptr %714, ptr %8, align 8
  %715 = extractvalue { ptr, i32 } %713, 1
  store i32 %715, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %59) #8
  br label %716

716:                                              ; preds = %712, %711, %673
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  br label %1186

717:                                              ; preds = %672
  br label %718

718:                                              ; preds = %717
  store i8 0, ptr %54, align 1, !tbaa !9
  br label %660, !llvm.loop !45

719:                                              ; preds = %663
  br label %1184

720:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #8
  store i8 1, ptr %60, align 1, !tbaa !9
  br label %721

721:                                              ; preds = %779, %720
  %722 = load i8, ptr %60, align 1, !tbaa !9, !range !11, !noundef !12
  %723 = trunc i8 %722 to i1
  br i1 %723, label %725, label %724

724:                                              ; preds = %721
  store i32 79, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  br label %780

725:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  %726 = load ptr, ptr %19, align 8, !tbaa !5
  %727 = invoke noundef nonnull align 8 dereferenceable(76) ptr @_ZN3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488) %726)
          to label %728 unwind label %734

728:                                              ; preds = %725
  store ptr %727, ptr %61, align 8, !tbaa !5
  br label %729

729:                                              ; preds = %763, %728
  %730 = load ptr, ptr %61, align 8, !tbaa !5
  %731 = load i8, ptr %60, align 1, !tbaa !9, !range !11, !noundef !12
  %732 = trunc i8 %731 to i1
  br i1 %732, label %738, label %733

733:                                              ; preds = %729
  store i32 82, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  br label %778

734:                                              ; preds = %750, %738, %725
  %735 = landingpad { ptr, i32 }
          cleanup
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %8, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %9, align 4
  br label %777

738:                                              ; preds = %729
  %739 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %740 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %739, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %741 unwind label %734

741:                                              ; preds = %738
  %742 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %64, i32 0, i32 0
  %743 = load ptr, ptr %61, align 8, !tbaa !5
  store ptr %743, ptr %742, align 8, !tbaa !46
  %744 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Union", ptr %64, i32 0, i32 1
  store ptr null, ptr %744, align 8, !tbaa !48
  %745 = getelementptr inbounds { ptr, ptr }, ptr %64, i32 0, i32 0
  %746 = load ptr, ptr %745, align 8
  %747 = getelementptr inbounds { ptr, ptr }, ptr %64, i32 0, i32 1
  %748 = load ptr, ptr %747, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %63, ptr %746, ptr %748)
          to label %749 unwind label %764

749:                                              ; preds = %741
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %740, ptr noundef %62, ptr noundef %63)
          to label %750 unwind label %768

750:                                              ; preds = %749
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  %751 = load ptr, ptr %14, align 8, !tbaa !5
  %752 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %751) #8
  %753 = getelementptr inbounds %"struct.AST::Named", ptr %752, i32 0, i32 0
  %754 = load ptr, ptr %4, align 8, !tbaa !5
  %755 = load ptr, ptr %14, align 8, !tbaa !5
  %756 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %755) #8
  %757 = getelementptr inbounds %"struct.AST::Named", ptr %756, i32 0, i32 3
  %758 = load ptr, ptr %14, align 8, !tbaa !5
  %759 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %758) #8
  %760 = getelementptr inbounds %"struct.AST::Named", ptr %759, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %65, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %761 unwind label %734

761:                                              ; preds = %750
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %753, ptr noundef nonnull align 8 dereferenceable(480) %754, ptr noundef nonnull align 8 dereferenceable(8) %757, ptr noundef nonnull align 8 dereferenceable(36) %760, ptr noundef %65, i1 noundef zeroext true)
          to label %762 unwind label %773

762:                                              ; preds = %761
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %65) #8
  br label %763

763:                                              ; preds = %762
  store i8 0, ptr %60, align 1, !tbaa !9
  br label %729, !llvm.loop !49

764:                                              ; preds = %741
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %8, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %9, align 4
  br label %772

768:                                              ; preds = %749
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %8, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %772

772:                                              ; preds = %768, %764
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %777

773:                                              ; preds = %761
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %8, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %65) #8
  br label %777

777:                                              ; preds = %773, %772, %734
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  br label %1186

778:                                              ; preds = %733
  br label %779

779:                                              ; preds = %778
  store i8 0, ptr %60, align 1, !tbaa !9
  br label %721, !llvm.loop !50

780:                                              ; preds = %724
  br label %1184

781:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #8
  store i8 1, ptr %66, align 1, !tbaa !9
  br label %782

782:                                              ; preds = %840, %781
  %783 = load i8, ptr %66, align 1, !tbaa !9, !range !11, !noundef !12
  %784 = trunc i8 %783 to i1
  br i1 %784, label %786, label %785

785:                                              ; preds = %782
  store i32 85, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  br label %841

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

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

790:                                              ; preds = %824, %789
  %791 = load ptr, ptr %67, align 8, !tbaa !5
  %792 = load i8, ptr %66, align 1, !tbaa !9, !range !11, !noundef !12
  %793 = trunc i8 %792 to i1
  br i1 %793, label %799, label %794

794:                                              ; preds = %790
  store i32 88, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  br label %839

795:                                              ; preds = %811, %799, %786
  %796 = landingpad { ptr, i32 }
          cleanup
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %8, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %9, align 4
  br label %838

799:                                              ; preds = %790
  %800 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %801 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %800, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %802 unwind label %795

802:                                              ; preds = %799
  %803 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %70, i32 0, i32 0
  %804 = load ptr, ptr %67, align 8, !tbaa !5
  store ptr %804, ptr %803, align 8, !tbaa !51
  %805 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Trait", ptr %70, i32 0, i32 1
  store ptr null, ptr %805, align 8, !tbaa !53
  %806 = getelementptr inbounds { ptr, ptr }, ptr %70, i32 0, i32 0
  %807 = load ptr, ptr %806, align 8
  %808 = getelementptr inbounds { ptr, ptr }, ptr %70, i32 0, i32 1
  %809 = load ptr, ptr %808, align 8
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %69, ptr %807, ptr %809)
          to label %810 unwind label %825

810:                                              ; preds = %802
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %801, ptr noundef %68, ptr noundef %69)
          to label %811 unwind label %829

811:                                              ; preds = %810
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  %812 = load ptr, ptr %14, align 8, !tbaa !5
  %813 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %812) #8
  %814 = getelementptr inbounds %"struct.AST::Named", ptr %813, i32 0, i32 0
  %815 = load ptr, ptr %4, align 8, !tbaa !5
  %816 = load ptr, ptr %14, align 8, !tbaa !5
  %817 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %816) #8
  %818 = getelementptr inbounds %"struct.AST::Named", ptr %817, i32 0, i32 3
  %819 = load ptr, ptr %14, align 8, !tbaa !5
  %820 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %819) #8
  %821 = getelementptr inbounds %"struct.AST::Named", ptr %820, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %71, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %822 unwind label %795

822:                                              ; preds = %811
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %814, ptr noundef nonnull align 8 dereferenceable(480) %815, ptr noundef nonnull align 8 dereferenceable(8) %818, ptr noundef nonnull align 8 dereferenceable(36) %821, ptr noundef %71, i1 noundef zeroext true)
          to label %823 unwind label %834

823:                                              ; preds = %822
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %71) #8
  br label %824

824:                                              ; preds = %823
  store i8 0, ptr %66, align 1, !tbaa !9
  br label %790, !llvm.loop !54

825:                                              ; preds = %802
  %826 = landingpad { ptr, i32 }
          cleanup
  %827 = extractvalue { ptr, i32 } %826, 0
  store ptr %827, ptr %8, align 8
  %828 = extractvalue { ptr, i32 } %826, 1
  store i32 %828, ptr %9, align 4
  br label %833

829:                                              ; preds = %810
  %830 = landingpad { ptr, i32 }
          cleanup
  %831 = extractvalue { ptr, i32 } %830, 0
  store ptr %831, ptr %8, align 8
  %832 = extractvalue { ptr, i32 } %830, 1
  store i32 %832, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %833

833:                                              ; preds = %829, %825
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %838

834:                                              ; preds = %822
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %8, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %71) #8
  br label %838

838:                                              ; preds = %834, %833, %795
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #8
  br label %1186

839:                                              ; preds = %794
  br label %840

840:                                              ; preds = %839
  store i8 0, ptr %66, align 1, !tbaa !9
  br label %782, !llvm.loop !55

841:                                              ; preds = %785
  br label %1184

842:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #8
  store i8 1, ptr %72, align 1, !tbaa !9
  br label %843

843:                                              ; preds = %901, %842
  %844 = load i8, ptr %72, align 1, !tbaa !9, !range !11, !noundef !12
  %845 = trunc i8 %844 to i1
  br i1 %845, label %847, label %846

846:                                              ; preds = %843
  store i32 91, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #8
  br label %902

847:                                              ; preds = %843
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %848 = load ptr, ptr %19, align 8, !tbaa !5
  %849 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488) %848)
          to label %850 unwind label %856

850:                                              ; preds = %847
  store ptr %849, ptr %73, align 8, !tbaa !5
  br label %851

851:                                              ; preds = %885, %850
  %852 = load ptr, ptr %73, align 8, !tbaa !5
  %853 = load i8, ptr %72, align 1, !tbaa !9, !range !11, !noundef !12
  %854 = trunc i8 %853 to i1
  br i1 %854, label %860, label %855

855:                                              ; preds = %851
  store i32 94, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  br label %900

856:                                              ; preds = %872, %860, %847
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %8, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %9, align 4
  br label %899

860:                                              ; preds = %851
  %861 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %862 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %861, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %863 unwind label %856

863:                                              ; preds = %860
  %864 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %76, i32 0, i32 0
  %865 = load ptr, ptr %73, align 8, !tbaa !5
  store ptr %865, ptr %864, align 8, !tbaa !56
  %866 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TraitAlias", ptr %76, i32 0, i32 1
  store ptr null, ptr %866, align 8, !tbaa !58
  %867 = getelementptr inbounds { ptr, ptr }, ptr %76, i32 0, i32 0
  %868 = load ptr, ptr %867, align 8
  %869 = getelementptr inbounds { ptr, ptr }, ptr %76, i32 0, i32 1
  %870 = load ptr, ptr %869, align 8
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %75, ptr %868, ptr %870)
          to label %871 unwind label %886

871:                                              ; preds = %863
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %862, ptr noundef %74, ptr noundef %75)
          to label %872 unwind label %890

872:                                              ; preds = %871
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  %873 = load ptr, ptr %14, align 8, !tbaa !5
  %874 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %873) #8
  %875 = getelementptr inbounds %"struct.AST::Named", ptr %874, i32 0, i32 0
  %876 = load ptr, ptr %4, align 8, !tbaa !5
  %877 = load ptr, ptr %14, align 8, !tbaa !5
  %878 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %877) #8
  %879 = getelementptr inbounds %"struct.AST::Named", ptr %878, i32 0, i32 3
  %880 = load ptr, ptr %14, align 8, !tbaa !5
  %881 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %880) #8
  %882 = getelementptr inbounds %"struct.AST::Named", ptr %881, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %77, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %883 unwind label %856

883:                                              ; preds = %872
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %875, ptr noundef nonnull align 8 dereferenceable(480) %876, ptr noundef nonnull align 8 dereferenceable(8) %879, ptr noundef nonnull align 8 dereferenceable(36) %882, ptr noundef %77, i1 noundef zeroext true)
          to label %884 unwind label %895

884:                                              ; preds = %883
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %77) #8
  br label %885

885:                                              ; preds = %884
  store i8 0, ptr %72, align 1, !tbaa !9
  br label %851, !llvm.loop !59

886:                                              ; preds = %863
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %8, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %9, align 4
  br label %894

890:                                              ; preds = %871
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %8, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %894

894:                                              ; preds = %890, %886
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %899

895:                                              ; preds = %883
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %8, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %77) #8
  br label %899

899:                                              ; preds = %895, %894, %856
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #8
  br label %1186

900:                                              ; preds = %855
  br label %901

901:                                              ; preds = %900
  store i8 0, ptr %72, align 1, !tbaa !9
  br label %843, !llvm.loop !60

902:                                              ; preds = %846
  br label %1184

903:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #8
  store i8 1, ptr %78, align 1, !tbaa !9
  br label %904

904:                                              ; preds = %959, %903
  %905 = load i8, ptr %78, align 1, !tbaa !9, !range !11, !noundef !12
  %906 = trunc i8 %905 to i1
  br i1 %906, label %908, label %907

907:                                              ; preds = %904
  store i32 97, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  br label %960

908:                                              ; preds = %904
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  %909 = load ptr, ptr %19, align 8, !tbaa !5
  %910 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZN3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488) %909)
          to label %911 unwind label %917

911:                                              ; preds = %908
  store ptr %910, ptr %79, align 8, !tbaa !5
  br label %912

912:                                              ; preds = %943, %911
  %913 = load ptr, ptr %79, align 8, !tbaa !5
  %914 = load i8, ptr %78, align 1, !tbaa !9, !range !11, !noundef !12
  %915 = trunc i8 %914 to i1
  br i1 %915, label %921, label %916

916:                                              ; preds = %912
  store i32 100, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  br label %958

917:                                              ; preds = %930, %921, %908
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %8, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %9, align 4
  br label %957

921:                                              ; preds = %912
  %922 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %923 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %922, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %924 unwind label %917

924:                                              ; preds = %921
  %925 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %82, i32 0, i32 0
  %926 = load ptr, ptr %79, align 8, !tbaa !5
  store ptr %926, ptr %925, align 8, !tbaa !61
  %927 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_TypeAlias", ptr %82, i32 0, i32 0
  %928 = load ptr, ptr %927, align 8
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %81, ptr %928)
          to label %929 unwind label %944

929:                                              ; preds = %924
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %923, ptr noundef %80, ptr noundef %81)
          to label %930 unwind label %948

930:                                              ; preds = %929
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  %931 = load ptr, ptr %14, align 8, !tbaa !5
  %932 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %931) #8
  %933 = getelementptr inbounds %"struct.AST::Named", ptr %932, i32 0, i32 0
  %934 = load ptr, ptr %4, align 8, !tbaa !5
  %935 = load ptr, ptr %14, align 8, !tbaa !5
  %936 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %935) #8
  %937 = getelementptr inbounds %"struct.AST::Named", ptr %936, i32 0, i32 3
  %938 = load ptr, ptr %14, align 8, !tbaa !5
  %939 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %938) #8
  %940 = getelementptr inbounds %"struct.AST::Named", ptr %939, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %83, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %941 unwind label %917

941:                                              ; preds = %930
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %933, ptr noundef nonnull align 8 dereferenceable(480) %934, ptr noundef nonnull align 8 dereferenceable(8) %937, ptr noundef nonnull align 8 dereferenceable(36) %940, ptr noundef %83, i1 noundef zeroext true)
          to label %942 unwind label %953

942:                                              ; preds = %941
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %83) #8
  br label %943

943:                                              ; preds = %942
  store i8 0, ptr %78, align 1, !tbaa !9
  br label %912, !llvm.loop !63

944:                                              ; preds = %924
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %8, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %9, align 4
  br label %952

948:                                              ; preds = %929
  %949 = landingpad { ptr, i32 }
          cleanup
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %8, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %952

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

953:                                              ; preds = %941
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %8, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %83) #8
  br label %957

957:                                              ; preds = %953, %952, %917
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  br label %1186

958:                                              ; preds = %916
  br label %959

959:                                              ; preds = %958
  store i8 0, ptr %78, align 1, !tbaa !9
  br label %904, !llvm.loop !64

960:                                              ; preds = %907
  br label %1184

961:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #8
  store i8 1, ptr %84, align 1, !tbaa !9
  br label %962

962:                                              ; preds = %1063, %961
  %963 = load i8, ptr %84, align 1, !tbaa !9, !range !11, !noundef !12
  %964 = trunc i8 %963 to i1
  br i1 %964, label %966, label %965

965:                                              ; preds = %962
  store i32 103, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  br label %1064

966:                                              ; preds = %962
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #8
  %967 = load ptr, ptr %19, align 8, !tbaa !5
  %968 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488) %967)
          to label %969 unwind label %975

969:                                              ; preds = %966
  store ptr %968, ptr %85, align 8, !tbaa !5
  br label %970

970:                                              ; preds = %1056, %969
  %971 = load ptr, ptr %85, align 8, !tbaa !5
  %972 = load i8, ptr %84, align 1, !tbaa !9, !range !11, !noundef !12
  %973 = trunc i8 %972 to i1
  br i1 %973, label %979, label %974

974:                                              ; preds = %970
  store i32 106, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  br label %1062

975:                                              ; preds = %1043, %1008, %996, %991, %979, %966
  %976 = landingpad { ptr, i32 }
          cleanup
  %977 = extractvalue { ptr, i32 } %976, 0
  store ptr %977, ptr %8, align 8
  %978 = extractvalue { ptr, i32 } %976, 1
  store i32 %978, ptr %9, align 4
  br label %1061

979:                                              ; preds = %970
  %980 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %981 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %980, i32 0, i32 1
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %982 unwind label %975

982:                                              ; preds = %979
  %983 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %88, i32 0, i32 0
  %984 = load ptr, ptr %85, align 8, !tbaa !5
  store ptr %984, ptr %983, align 8, !tbaa !65
  %985 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Struct", ptr %88, i32 0, i32 1
  store ptr null, ptr %985, align 8, !tbaa !67
  %986 = getelementptr inbounds { ptr, ptr }, ptr %88, i32 0, i32 0
  %987 = load ptr, ptr %986, align 8
  %988 = getelementptr inbounds { ptr, ptr }, ptr %88, i32 0, i32 1
  %989 = load ptr, ptr %988, align 8
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %87, ptr %987, ptr %989)
          to label %990 unwind label %1021

990:                                              ; preds = %982
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %981, ptr noundef %86, ptr noundef %87)
          to label %991 unwind label %1025

991:                                              ; preds = %990
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  %992 = load ptr, ptr %85, align 8, !tbaa !5
  %993 = getelementptr inbounds %"class.AST::Struct", ptr %992, i32 0, i32 1
  %994 = invoke noundef zeroext i1 @_ZNK3AST10StructData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %993)
          to label %995 unwind label %975

995:                                              ; preds = %991
  br i1 %994, label %1043, label %996

996:                                              ; preds = %995
  %997 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %998 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %997, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %999 unwind label %975

999:                                              ; preds = %996
  %1000 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %91, i32 0, i32 0
  %1001 = load ptr, ptr %85, align 8, !tbaa !5
  store ptr %1001, ptr %1000, align 8, !tbaa !68
  %1002 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Struct", ptr %91, i32 0, i32 1
  store ptr null, ptr %1002, align 8, !tbaa !70
  %1003 = getelementptr inbounds { ptr, ptr }, ptr %91, i32 0, i32 0
  %1004 = load ptr, ptr %1003, align 8
  %1005 = getelementptr inbounds { ptr, ptr }, ptr %91, i32 0, i32 1
  %1006 = load ptr, ptr %1005, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %90, ptr %1004, ptr %1006)
          to label %1007 unwind label %1030

1007:                                             ; preds = %999
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %998, ptr noundef %89, ptr noundef %90)
          to label %1008 unwind label %1034

1008:                                             ; preds = %1007
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  %1009 = load ptr, ptr %14, align 8, !tbaa !5
  %1010 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1009) #8
  %1011 = getelementptr inbounds %"struct.AST::Named", ptr %1010, i32 0, i32 0
  %1012 = load ptr, ptr %4, align 8, !tbaa !5
  %1013 = load ptr, ptr %14, align 8, !tbaa !5
  %1014 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1013) #8
  %1015 = getelementptr inbounds %"struct.AST::Named", ptr %1014, i32 0, i32 3
  %1016 = load ptr, ptr %14, align 8, !tbaa !5
  %1017 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1016) #8
  %1018 = getelementptr inbounds %"struct.AST::Named", ptr %1017, i32 0, i32 2
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %92, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %1019 unwind label %975

1019:                                             ; preds = %1008
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1011, ptr noundef nonnull align 8 dereferenceable(480) %1012, ptr noundef nonnull align 8 dereferenceable(8) %1015, ptr noundef nonnull align 8 dereferenceable(36) %1018, ptr noundef %92, i1 noundef zeroext true)
          to label %1020 unwind label %1039

1020:                                             ; preds = %1019
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %92) #8
  br label %1043

1021:                                             ; preds = %982
  %1022 = landingpad { ptr, i32 }
          cleanup
  %1023 = extractvalue { ptr, i32 } %1022, 0
  store ptr %1023, ptr %8, align 8
  %1024 = extractvalue { ptr, i32 } %1022, 1
  store i32 %1024, ptr %9, align 4
  br label %1029

1025:                                             ; preds = %990
  %1026 = landingpad { ptr, i32 }
          cleanup
  %1027 = extractvalue { ptr, i32 } %1026, 0
  store ptr %1027, ptr %8, align 8
  %1028 = extractvalue { ptr, i32 } %1026, 1
  store i32 %1028, ptr %9, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %1029

1029:                                             ; preds = %1025, %1021
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %1061

1030:                                             ; preds = %999
  %1031 = landingpad { ptr, i32 }
          cleanup
  %1032 = extractvalue { ptr, i32 } %1031, 0
  store ptr %1032, ptr %8, align 8
  %1033 = extractvalue { ptr, i32 } %1031, 1
  store i32 %1033, ptr %9, align 4
  br label %1038

1034:                                             ; preds = %1007
  %1035 = landingpad { ptr, i32 }
          cleanup
  %1036 = extractvalue { ptr, i32 } %1035, 0
  store ptr %1036, ptr %8, align 8
  %1037 = extractvalue { ptr, i32 } %1035, 1
  store i32 %1037, ptr %9, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %1038

1038:                                             ; preds = %1034, %1030
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %1061

1039:                                             ; preds = %1019
  %1040 = landingpad { ptr, i32 }
          cleanup
  %1041 = extractvalue { ptr, i32 } %1040, 0
  store ptr %1041, ptr %8, align 8
  %1042 = extractvalue { ptr, i32 } %1040, 1
  store i32 %1042, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %92) #8
  br label %1061

1043:                                             ; preds = %1020, %995
  %1044 = load ptr, ptr %14, align 8, !tbaa !5
  %1045 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1044) #8
  %1046 = getelementptr inbounds %"struct.AST::Named", ptr %1045, i32 0, i32 0
  %1047 = load ptr, ptr %4, align 8, !tbaa !5
  %1048 = load ptr, ptr %14, align 8, !tbaa !5
  %1049 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1048) #8
  %1050 = getelementptr inbounds %"struct.AST::Named", ptr %1049, i32 0, i32 3
  %1051 = load ptr, ptr %14, align 8, !tbaa !5
  %1052 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1051) #8
  %1053 = getelementptr inbounds %"struct.AST::Named", ptr %1052, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %93, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %1054 unwind label %975

1054:                                             ; preds = %1043
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1046, ptr noundef nonnull align 8 dereferenceable(480) %1047, ptr noundef nonnull align 8 dereferenceable(8) %1050, ptr noundef nonnull align 8 dereferenceable(36) %1053, ptr noundef %93, i1 noundef zeroext true)
          to label %1055 unwind label %1057

1055:                                             ; preds = %1054
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %93) #8
  br label %1056

1056:                                             ; preds = %1055
  store i8 0, ptr %84, align 1, !tbaa !9
  br label %970, !llvm.loop !71

1057:                                             ; preds = %1054
  %1058 = landingpad { ptr, i32 }
          cleanup
  %1059 = extractvalue { ptr, i32 } %1058, 0
  store ptr %1059, ptr %8, align 8
  %1060 = extractvalue { ptr, i32 } %1058, 1
  store i32 %1060, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %93) #8
  br label %1061

1061:                                             ; preds = %1057, %1039, %1038, %1029, %975
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #8
  br label %1186

1062:                                             ; preds = %974
  br label %1063

1063:                                             ; preds = %1062
  store i8 0, ptr %84, align 1, !tbaa !9
  br label %962, !llvm.loop !72

1064:                                             ; preds = %965
  br label %1184

1065:                                             ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #8
  store i8 1, ptr %94, align 1, !tbaa !9
  br label %1066

1066:                                             ; preds = %1121, %1065
  %1067 = load i8, ptr %94, align 1, !tbaa !9, !range !11, !noundef !12
  %1068 = trunc i8 %1067 to i1
  br i1 %1068, label %1070, label %1069

1069:                                             ; preds = %1066
  store i32 109, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #8
  br label %1122

1070:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %1071 = load ptr, ptr %19, align 8, !tbaa !5
  %1072 = invoke noundef nonnull align 8 dereferenceable(368) ptr @_ZN3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488) %1071)
          to label %1073 unwind label %1079

1073:                                             ; preds = %1070
  store ptr %1072, ptr %95, align 8, !tbaa !5
  br label %1074

1074:                                             ; preds = %1105, %1073
  %1075 = load ptr, ptr %95, align 8, !tbaa !5
  %1076 = load i8, ptr %94, align 1, !tbaa !9, !range !11, !noundef !12
  %1077 = trunc i8 %1076 to i1
  br i1 %1077, label %1083, label %1078

1078:                                             ; preds = %1074
  store i32 112, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  br label %1120

1079:                                             ; preds = %1092, %1083, %1070
  %1080 = landingpad { ptr, i32 }
          cleanup
  %1081 = extractvalue { ptr, i32 } %1080, 0
  store ptr %1081, ptr %8, align 8
  %1082 = extractvalue { ptr, i32 } %1080, 1
  store i32 %1082, ptr %9, align 4
  br label %1119

1083:                                             ; preds = %1074
  %1084 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %1085 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1084, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1086 unwind label %1079

1086:                                             ; preds = %1083
  %1087 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %98, i32 0, i32 0
  %1088 = load ptr, ptr %95, align 8, !tbaa !5
  store ptr %1088, ptr %1087, align 8, !tbaa !73
  %1089 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Function", ptr %98, i32 0, i32 0
  %1090 = load ptr, ptr %1089, align 8
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %97, ptr %1090)
          to label %1091 unwind label %1106

1091:                                             ; preds = %1086
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1085, ptr noundef %96, ptr noundef %97)
          to label %1092 unwind label %1110

1092:                                             ; preds = %1091
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  %1093 = load ptr, ptr %14, align 8, !tbaa !5
  %1094 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1093) #8
  %1095 = getelementptr inbounds %"struct.AST::Named", ptr %1094, i32 0, i32 0
  %1096 = load ptr, ptr %4, align 8, !tbaa !5
  %1097 = load ptr, ptr %14, align 8, !tbaa !5
  %1098 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1097) #8
  %1099 = getelementptr inbounds %"struct.AST::Named", ptr %1098, i32 0, i32 3
  %1100 = load ptr, ptr %14, align 8, !tbaa !5
  %1101 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1100) #8
  %1102 = getelementptr inbounds %"struct.AST::Named", ptr %1101, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %99, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %1103 unwind label %1079

1103:                                             ; preds = %1092
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1095, ptr noundef nonnull align 8 dereferenceable(480) %1096, ptr noundef nonnull align 8 dereferenceable(8) %1099, ptr noundef nonnull align 8 dereferenceable(36) %1102, ptr noundef %99, i1 noundef zeroext true)
          to label %1104 unwind label %1115

1104:                                             ; preds = %1103
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %99) #8
  br label %1105

1105:                                             ; preds = %1104
  store i8 0, ptr %94, align 1, !tbaa !9
  br label %1074, !llvm.loop !75

1106:                                             ; preds = %1086
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %8, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %9, align 4
  br label %1114

1110:                                             ; preds = %1091
  %1111 = landingpad { ptr, i32 }
          cleanup
  %1112 = extractvalue { ptr, i32 } %1111, 0
  store ptr %1112, ptr %8, align 8
  %1113 = extractvalue { ptr, i32 } %1111, 1
  store i32 %1113, ptr %9, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %1114

1114:                                             ; preds = %1110, %1106
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %1119

1115:                                             ; preds = %1103
  %1116 = landingpad { ptr, i32 }
          cleanup
  %1117 = extractvalue { ptr, i32 } %1116, 0
  store ptr %1117, ptr %8, align 8
  %1118 = extractvalue { ptr, i32 } %1116, 1
  store i32 %1118, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %99) #8
  br label %1119

1119:                                             ; preds = %1115, %1114, %1079
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #8
  br label %1186

1120:                                             ; preds = %1078
  br label %1121

1121:                                             ; preds = %1120
  store i8 0, ptr %94, align 1, !tbaa !9
  br label %1066, !llvm.loop !76

1122:                                             ; preds = %1069
  br label %1184

1123:                                             ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #8
  store i8 1, ptr %100, align 1, !tbaa !9
  br label %1124

1124:                                             ; preds = %1182, %1123
  %1125 = load i8, ptr %100, align 1, !tbaa !9, !range !11, !noundef !12
  %1126 = trunc i8 %1125 to i1
  br i1 %1126, label %1128, label %1127

1127:                                             ; preds = %1124
  store i32 115, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #8
  br label %1183

1128:                                             ; preds = %1124
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  %1129 = load ptr, ptr %19, align 8, !tbaa !5
  %1130 = invoke noundef nonnull align 8 dereferenceable(216) ptr @_ZN3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488) %1129)
          to label %1131 unwind label %1137

1131:                                             ; preds = %1128
  store ptr %1130, ptr %101, align 8, !tbaa !5
  br label %1132

1132:                                             ; preds = %1166, %1131
  %1133 = load ptr, ptr %101, align 8, !tbaa !5
  %1134 = load i8, ptr %100, align 1, !tbaa !9, !range !11, !noundef !12
  %1135 = trunc i8 %1134 to i1
  br i1 %1135, label %1141, label %1136

1136:                                             ; preds = %1132
  store i32 118, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  br label %1181

1137:                                             ; preds = %1153, %1141, %1128
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %8, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %9, align 4
  br label %1180

1141:                                             ; preds = %1132
  %1142 = getelementptr inbounds %"class.AST::Path", ptr %17, i32 0, i32 2
  %1143 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1142, i32 0, i32 0
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1144 unwind label %1137

1144:                                             ; preds = %1141
  %1145 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %104, i32 0, i32 0
  %1146 = load ptr, ptr %101, align 8, !tbaa !5
  store ptr %1146, ptr %1145, align 8, !tbaa !77
  %1147 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_Static", ptr %104, i32 0, i32 1
  store ptr null, ptr %1147, align 8, !tbaa !79
  %1148 = getelementptr inbounds { ptr, ptr }, ptr %104, i32 0, i32 0
  %1149 = load ptr, ptr %1148, align 8
  %1150 = getelementptr inbounds { ptr, ptr }, ptr %104, i32 0, i32 1
  %1151 = load ptr, ptr %1150, align 8
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %103, ptr %1149, ptr %1151)
          to label %1152 unwind label %1167

1152:                                             ; preds = %1144
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %1143, ptr noundef %102, ptr noundef %103)
          to label %1153 unwind label %1171

1153:                                             ; preds = %1152
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  %1154 = load ptr, ptr %14, align 8, !tbaa !5
  %1155 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1154) #8
  %1156 = getelementptr inbounds %"struct.AST::Named", ptr %1155, i32 0, i32 0
  %1157 = load ptr, ptr %4, align 8, !tbaa !5
  %1158 = load ptr, ptr %14, align 8, !tbaa !5
  %1159 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1158) #8
  %1160 = getelementptr inbounds %"struct.AST::Named", ptr %1159, i32 0, i32 3
  %1161 = load ptr, ptr %14, align 8, !tbaa !5
  %1162 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1161) #8
  %1163 = getelementptr inbounds %"struct.AST::Named", ptr %1162, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %105, ptr noundef nonnull align 8 dereferenceable(240) %17)
          to label %1164 unwind label %1137

1164:                                             ; preds = %1153
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1156, ptr noundef nonnull align 8 dereferenceable(480) %1157, ptr noundef nonnull align 8 dereferenceable(8) %1160, ptr noundef nonnull align 8 dereferenceable(36) %1163, ptr noundef %105, i1 noundef zeroext true)
          to label %1165 unwind label %1176

1165:                                             ; preds = %1164
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %105) #8
  br label %1166

1166:                                             ; preds = %1165
  store i8 0, ptr %100, align 1, !tbaa !9
  br label %1132, !llvm.loop !80

1167:                                             ; preds = %1144
  %1168 = landingpad { ptr, i32 }
          cleanup
  %1169 = extractvalue { ptr, i32 } %1168, 0
  store ptr %1169, ptr %8, align 8
  %1170 = extractvalue { ptr, i32 } %1168, 1
  store i32 %1170, ptr %9, align 4
  br label %1175

1171:                                             ; preds = %1152
  %1172 = landingpad { ptr, i32 }
          cleanup
  %1173 = extractvalue { ptr, i32 } %1172, 0
  store ptr %1173, ptr %8, align 8
  %1174 = extractvalue { ptr, i32 } %1172, 1
  store i32 %1174, ptr %9, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  br label %1175

1175:                                             ; preds = %1171, %1167
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #8
  br label %1180

1176:                                             ; preds = %1164
  %1177 = landingpad { ptr, i32 }
          cleanup
  %1178 = extractvalue { ptr, i32 } %1177, 0
  store ptr %1178, ptr %8, align 8
  %1179 = extractvalue { ptr, i32 } %1177, 1
  store i32 %1179, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %105) #8
  br label %1180

1180:                                             ; preds = %1176, %1175, %1137
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #8
  br label %1186

1181:                                             ; preds = %1136
  br label %1182

1182:                                             ; preds = %1181
  store i8 0, ptr %100, align 1, !tbaa !9
  br label %1124, !llvm.loop !81

1183:                                             ; preds = %1127
  br label %1184

1184:                                             ; preds = %1183, %1122, %1064, %960, %902, %841, %780, %719, %658, %534, %475, %452, %429, %406, %383, %360, %337, %314, %286
  br label %1185

1185:                                             ; preds = %1184
  store i8 0, ptr %18, align 1, !tbaa !9
  br label %279, !llvm.loop !82

1186:                                             ; preds = %1180, %1119, %1061, %957, %899, %838, %777, %716, %655, %531, %467, %444, %421, %398, %375, %352, %329, %306, %287
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #8
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %17) #8
  br label %1192

1187:                                             ; preds = %282
  br label %1188

1188:                                             ; preds = %1187
  store i8 0, ptr %18, align 1, !tbaa !9
  br label %259, !llvm.loop !83

1189:                                             ; preds = %262
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %17) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %17) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %1190

1190:                                             ; preds = %1189
  %1191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  br label %241

1192:                                             ; preds = %1186, %271
  call void @llvm.lifetime.end.p0(i64 240, ptr %17) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %1193

1193:                                             ; preds = %1192, %267, %263
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  br label %2576

1194:                                             ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  %1195 = load ptr, ptr %4, align 8, !tbaa !5
  %1196 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %1195)
          to label %1197 unwind label %1207

1197:                                             ; preds = %1194
  store ptr %1196, ptr %106, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #8
  %1198 = load ptr, ptr %106, align 8, !tbaa !5
  %1199 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1198) #8
  %1200 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.227", ptr %107, i32 0, i32 0
  store ptr %1199, ptr %1200, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #8
  %1201 = load ptr, ptr %106, align 8, !tbaa !5
  %1202 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1201) #8
  %1203 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.227", ptr %108, i32 0, i32 0
  store ptr %1202, ptr %1203, align 8
  br label %1204

1204:                                             ; preds = %1251, %1197
  %1205 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(8) %108) #8
  br i1 %1205, label %1211, label %1206

1206:                                             ; preds = %1204
  store i32 121, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  br label %1292

1207:                                             ; preds = %1194
  %1208 = landingpad { ptr, i32 }
          cleanup
  %1209 = extractvalue { ptr, i32 } %1208, 0
  store ptr %1209, ptr %8, align 8
  %1210 = extractvalue { ptr, i32 } %1208, 1
  store i32 %1210, ptr %9, align 4
  br label %1291

1211:                                             ; preds = %1204
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #8
  %1212 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %107) #8
  store ptr %1212, ptr %109, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 240, ptr %110) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #8
  %1213 = load ptr, ptr %4, align 8, !tbaa !5
  %1214 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1213)
          to label %1215 unwind label %1253

1215:                                             ; preds = %1211
  %1216 = load ptr, ptr %109, align 8, !tbaa !5
  %1217 = getelementptr inbounds %"struct.AST::Named.228", ptr %1216, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull align 8 dereferenceable(8) %1217)
          to label %1218 unwind label %1253

1218:                                             ; preds = %1215
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %111, ptr noundef nonnull align 8 dereferenceable(32) %1214, ptr noundef %112)
          to label %1219 unwind label %1257

1219:                                             ; preds = %1218
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %110, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1220 unwind label %1261

1220:                                             ; preds = %1219
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #8
  %1221 = getelementptr inbounds %"class.AST::Path", ptr %110, i32 0, i32 2
  %1222 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1221, i32 0, i32 2
  %1223 = load ptr, ptr %4, align 8, !tbaa !5
  %1224 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1223)
          to label %1225 unwind label %1267

1225:                                             ; preds = %1220
  %1226 = load ptr, ptr %109, align 8, !tbaa !5
  %1227 = getelementptr inbounds %"struct.AST::Named.228", ptr %1226, i32 0, i32 3
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(8) %1227)
          to label %1228 unwind label %1267

1228:                                             ; preds = %1225
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %113, ptr noundef nonnull align 8 dereferenceable(32) %1224, ptr noundef %114)
          to label %1229 unwind label %1271

1229:                                             ; preds = %1228
  %1230 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %116, i32 0, i32 0
  store ptr null, ptr %1230, align 8, !tbaa !84
  %1231 = getelementptr inbounds %"struct.AST::PathBinding_Macro::Data_MacroRules", ptr %116, i32 0, i32 1
  %1232 = load ptr, ptr %109, align 8, !tbaa !5
  %1233 = getelementptr inbounds %"struct.AST::Named.228", ptr %1232, i32 0, i32 4
  %1234 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1233)
          to label %1235 unwind label %1275

1235:                                             ; preds = %1229
  store ptr %1234, ptr %1231, align 8, !tbaa !86
  %1236 = getelementptr inbounds { ptr, ptr }, ptr %116, i32 0, i32 0
  %1237 = load ptr, ptr %1236, align 8
  %1238 = getelementptr inbounds { ptr, ptr }, ptr %116, i32 0, i32 1
  %1239 = load ptr, ptr %1238, align 8
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Macro") align 8 %115, ptr %1237, ptr %1239)
          to label %1240 unwind label %1275

1240:                                             ; preds = %1235
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %1222, ptr noundef %113, ptr noundef %115)
          to label %1241 unwind label %1279

1241:                                             ; preds = %1240
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #8
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #8
  %1242 = load ptr, ptr %109, align 8, !tbaa !5
  %1243 = getelementptr inbounds %"struct.AST::Named.228", ptr %1242, i32 0, i32 0
  %1244 = load ptr, ptr %4, align 8, !tbaa !5
  %1245 = load ptr, ptr %109, align 8, !tbaa !5
  %1246 = getelementptr inbounds %"struct.AST::Named.228", ptr %1245, i32 0, i32 3
  %1247 = load ptr, ptr %109, align 8, !tbaa !5
  %1248 = getelementptr inbounds %"struct.AST::Named.228", ptr %1247, i32 0, i32 2
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %117, ptr noundef nonnull align 8 dereferenceable(240) %110)
          to label %1249 unwind label %1267

1249:                                             ; preds = %1241
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1243, ptr noundef nonnull align 8 dereferenceable(480) %1244, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %1246, ptr noundef nonnull align 8 dereferenceable(36) %1248, ptr noundef %117, i1 noundef zeroext false)
          to label %1250 unwind label %1285

1250:                                             ; preds = %1249
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %117) #8
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %110) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #8
  br label %1251

1251:                                             ; preds = %1250
  %1252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %107) #8
  br label %1204

1253:                                             ; preds = %1215, %1211
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %8, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %9, align 4
  br label %1266

1257:                                             ; preds = %1218
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %8, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %9, align 4
  br label %1265

1261:                                             ; preds = %1219
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %8, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %9, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #8
  br label %1265

1265:                                             ; preds = %1261, %1257
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %112) #8
  br label %1266

1266:                                             ; preds = %1265, %1253
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #8
  br label %1290

1267:                                             ; preds = %1241, %1225, %1220
  %1268 = landingpad { ptr, i32 }
          cleanup
  %1269 = extractvalue { ptr, i32 } %1268, 0
  store ptr %1269, ptr %8, align 8
  %1270 = extractvalue { ptr, i32 } %1268, 1
  store i32 %1270, ptr %9, align 4
  br label %1289

1271:                                             ; preds = %1228
  %1272 = landingpad { ptr, i32 }
          cleanup
  %1273 = extractvalue { ptr, i32 } %1272, 0
  store ptr %1273, ptr %8, align 8
  %1274 = extractvalue { ptr, i32 } %1272, 1
  store i32 %1274, ptr %9, align 4
  br label %1284

1275:                                             ; preds = %1235, %1229
  %1276 = landingpad { ptr, i32 }
          cleanup
  %1277 = extractvalue { ptr, i32 } %1276, 0
  store ptr %1277, ptr %8, align 8
  %1278 = extractvalue { ptr, i32 } %1276, 1
  store i32 %1278, ptr %9, align 4
  br label %1283

1279:                                             ; preds = %1240
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %8, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %9, align 4
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #8
  br label %1283

1283:                                             ; preds = %1279, %1275
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  br label %1284

1284:                                             ; preds = %1283, %1271
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #8
  br label %1289

1285:                                             ; preds = %1249
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %8, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %117) #8
  br label %1289

1289:                                             ; preds = %1285, %1284, %1267
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %110) #8
  br label %1290

1290:                                             ; preds = %1289, %1266
  call void @llvm.lifetime.end.p0(i64 240, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  br label %1291

1291:                                             ; preds = %1290, %1207
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  br label %2576

1292:                                             ; preds = %1206
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #8
  store i8 0, ptr %118, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #8
  %1293 = load ptr, ptr %4, align 8, !tbaa !5
  %1294 = getelementptr inbounds %"class.AST::Module", ptr %1293, i32 0, i32 1
  store ptr %1294, ptr %119, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #8
  %1295 = load ptr, ptr %119, align 8, !tbaa !5
  %1296 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1295) #8
  %1297 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.72", ptr %120, i32 0, i32 0
  store ptr %1296, ptr %1297, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #8
  %1298 = load ptr, ptr %119, align 8, !tbaa !5
  %1299 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1298) #8
  %1300 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.72", ptr %121, i32 0, i32 0
  store ptr %1299, ptr %1300, align 8
  br label %1301

1301:                                             ; preds = %2498, %1292
  %1302 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef nonnull align 8 dereferenceable(8) %121) #8
  br i1 %1302, label %1304, label %1303

1303:                                             ; preds = %1301
  store i32 123, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #8
  br label %2501

1304:                                             ; preds = %1301
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #8
  %1305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %120) #8
  store ptr %1305, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #8
  %1306 = load ptr, ptr %122, align 8, !tbaa !5
  %1307 = call noundef nonnull align 8 dereferenceable(568) ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1306) #8
  store ptr %1307, ptr %123, align 8, !tbaa !5
  %1308 = load ptr, ptr %123, align 8, !tbaa !5
  %1309 = getelementptr inbounds %"struct.AST::Named", ptr %1308, i32 0, i32 4
  %1310 = invoke noundef zeroext i1 @_ZNK3AST4Item6is_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %1309)
          to label %1311 unwind label %1313

1311:                                             ; preds = %1304
  br i1 %1310, label %1317, label %1312

1312:                                             ; preds = %1311
  store i32 124, ptr %13, align 4
  br label %2492

1313:                                             ; preds = %1304
  %1314 = landingpad { ptr, i32 }
          cleanup
  %1315 = extractvalue { ptr, i32 } %1314, 0
  store ptr %1315, ptr %8, align 8
  %1316 = extractvalue { ptr, i32 } %1314, 1
  store i32 %1316, ptr %9, align 4
  br label %2500

1317:                                             ; preds = %1311
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #8
  %1318 = load ptr, ptr %123, align 8, !tbaa !5
  %1319 = getelementptr inbounds %"struct.AST::Named", ptr %1318, i32 0, i32 4
  %1320 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %1319)
          to label %1321 unwind label %1332

1321:                                             ; preds = %1317
  %1322 = getelementptr inbounds %"struct.AST::UseItem", ptr %1320, i32 0, i32 1
  store ptr %1322, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #8
  %1323 = load ptr, ptr %124, align 8, !tbaa !5
  %1324 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1323) #8
  %1325 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %125, i32 0, i32 0
  store ptr %1324, ptr %1325, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #8
  %1326 = load ptr, ptr %124, align 8, !tbaa !5
  %1327 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1326) #8
  %1328 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %126, i32 0, i32 0
  store ptr %1327, ptr %1328, align 8
  br label %1329

1329:                                             ; preds = %2487, %1321
  %1330 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull align 8 dereferenceable(8) %126) #8
  br i1 %1330, label %1336, label %1331

1331:                                             ; preds = %1329
  store i32 125, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  br label %2491

1332:                                             ; preds = %1317
  %1333 = landingpad { ptr, i32 }
          cleanup
  %1334 = extractvalue { ptr, i32 } %1333, 0
  store ptr %1334, ptr %8, align 8
  %1335 = extractvalue { ptr, i32 } %1333, 1
  store i32 %1335, ptr %9, align 4
  br label %2490

1336:                                             ; preds = %1329
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #8
  %1337 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %125) #8
  store ptr %1337, ptr %127, align 8, !tbaa !5
  %1338 = load ptr, ptr %127, align 8, !tbaa !5
  %1339 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1338, i32 0, i32 2
  %1340 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %1339, ptr noundef @.str.4)
          to label %1341 unwind label %1366

1341:                                             ; preds = %1336
  br i1 %1340, label %1342, label %2478

1342:                                             ; preds = %1341
  br label %1343

1343:                                             ; preds = %1342
  %1344 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1345 unwind label %1366

1345:                                             ; preds = %1343
  br i1 %1344, label %1346, label %1370

1346:                                             ; preds = %1345
  %1347 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !87
  %1348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1347, ptr noundef @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE)
          to label %1349 unwind label %1366

1349:                                             ; preds = %1346
  %1350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1348, ptr noundef @.str.23)
          to label %1351 unwind label %1366

1351:                                             ; preds = %1349
  %1352 = load ptr, ptr %127, align 8, !tbaa !5
  %1353 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1352, i32 0, i32 2
  %1354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1350, ptr noundef nonnull align 8 dereferenceable(8) %1353)
          to label %1355 unwind label %1366

1355:                                             ; preds = %1351
  %1356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1354, ptr noundef @.str.9)
          to label %1357 unwind label %1366

1357:                                             ; preds = %1355
  %1358 = load ptr, ptr %127, align 8, !tbaa !5
  %1359 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1358, i32 0, i32 1
  %1360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1356, ptr noundef nonnull align 8 dereferenceable(240) %1359)
          to label %1361 unwind label %1366

1361:                                             ; preds = %1357
  %1362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1360, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1363 unwind label %1366

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

1365:                                             ; preds = %1363
  br label %1370

1366:                                             ; preds = %2478, %1363, %1361, %1357, %1355, %1351, %1349, %1346, %1343, %1336
  %1367 = landingpad { ptr, i32 }
          cleanup
  %1368 = extractvalue { ptr, i32 } %1367, 0
  store ptr %1368, ptr %8, align 8
  %1369 = extractvalue { ptr, i32 } %1367, 1
  store i32 %1369, ptr %9, align 4
  br label %2489

1370:                                             ; preds = %1365, %1345
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #8
  %1373 = load ptr, ptr %127, align 8, !tbaa !5
  %1374 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1373, i32 0, i32 0
  store ptr %1374, ptr %128, align 8, !tbaa !5
  br label %1375

1375:                                             ; preds = %1372
  %1376 = load ptr, ptr %127, align 8, !tbaa !5
  %1377 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1376, i32 0, i32 1
  %1378 = getelementptr inbounds %"class.AST::Path", ptr %1377, i32 0, i32 2
  %1379 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %1378)
          to label %1380 unwind label %1391

1380:                                             ; preds = %1375
  br i1 %1379, label %1408, label %1381

1381:                                             ; preds = %1380
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #8
  %1382 = load ptr, ptr %128, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %1382)
          to label %1383 unwind label %1395

1383:                                             ; preds = %1381
  call void @llvm.lifetime.start.p0(i64 16, ptr %131) #8
  %1384 = getelementptr inbounds %class.anon.235, ptr %131, i32 0, i32 0
  %1385 = load ptr, ptr %127, align 8, !tbaa !5
  store ptr %1385, ptr %1384, align 8, !tbaa !5
  %1386 = getelementptr inbounds %class.anon.235, ptr %131, i32 0, i32 1
  %1387 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %1387, ptr %1386, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(16) %131) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef %130)
          to label %1388 unwind label %1399

1388:                                             ; preds = %1383
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #8
  %1389 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1389, ptr noundef @.str.5)
          to label %1390 unwind label %1404

1390:                                             ; preds = %1388
  invoke void @__cxa_throw(ptr %1389, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %2583 unwind label %1391

1391:                                             ; preds = %1390, %1375
  %1392 = landingpad { ptr, i32 }
          cleanup
  %1393 = extractvalue { ptr, i32 } %1392, 0
  store ptr %1393, ptr %8, align 8
  %1394 = extractvalue { ptr, i32 } %1392, 1
  store i32 %1394, ptr %9, align 4
  br label %2477

1395:                                             ; preds = %1381
  %1396 = landingpad { ptr, i32 }
          cleanup
  %1397 = extractvalue { ptr, i32 } %1396, 0
  store ptr %1397, ptr %8, align 8
  %1398 = extractvalue { ptr, i32 } %1396, 1
  store i32 %1398, ptr %9, align 4
  br label %1403

1399:                                             ; preds = %1383
  %1400 = landingpad { ptr, i32 }
          cleanup
  %1401 = extractvalue { ptr, i32 } %1400, 0
  store ptr %1401, ptr %8, align 8
  %1402 = extractvalue { ptr, i32 } %1400, 1
  store i32 %1402, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #8
  br label %1403

1403:                                             ; preds = %1399, %1395
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #8
  br label %2477

1404:                                             ; preds = %1388
  %1405 = landingpad { ptr, i32 }
          cleanup
  %1406 = extractvalue { ptr, i32 } %1405, 0
  store ptr %1406, ptr %8, align 8
  %1407 = extractvalue { ptr, i32 } %1405, 1
  store i32 %1407, ptr %9, align 4
  call void @__cxa_free_exception(ptr %1389) #8
  br label %2477

1408:                                             ; preds = %1380
  br label %1409

1409:                                             ; preds = %1408
  br label %1410

1410:                                             ; preds = %1409
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #8
  %1411 = load ptr, ptr %127, align 8, !tbaa !5
  %1412 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1411, i32 0, i32 1
  %1413 = getelementptr inbounds %"class.AST::Path", ptr %1412, i32 0, i32 2
  store ptr %1413, ptr %132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %133) #8
  store i8 1, ptr %133, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %134) #8
  store i8 1, ptr %134, align 1, !tbaa !9
  br label %1414

1414:                                             ; preds = %1896, %1410
  %1415 = load i8, ptr %134, align 1, !tbaa !9, !range !11, !noundef !12
  %1416 = trunc i8 %1415 to i1
  br i1 %1416, label %1418, label %1417

1417:                                             ; preds = %1414
  store i32 131, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #8
  br label %1897

1418:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #8
  %1419 = load ptr, ptr %132, align 8, !tbaa !5
  %1420 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1419, i32 0, i32 1
  %1421 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %1420, i32 0, i32 1
  store ptr %1421, ptr %135, align 8, !tbaa !5
  br label %1422

1422:                                             ; preds = %1893, %1418
  %1423 = load i8, ptr %134, align 1, !tbaa !9, !range !11, !noundef !12
  %1424 = trunc i8 %1423 to i1
  br i1 %1424, label %1426, label %1425

1425:                                             ; preds = %1422
  store i32 134, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  br label %1895

1426:                                             ; preds = %1422
  %1427 = load ptr, ptr %135, align 8, !tbaa !5
  %1428 = invoke noundef i32 @_ZNK3AST16PathBinding_Type3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %1427)
          to label %1429 unwind label %1430

1429:                                             ; preds = %1426
  switch i32 %1428, label %1892 [
    i32 0, label %1434
    i32 1, label %1435
    i32 11, label %1478
    i32 2, label %1523
    i32 3, label %1564
    i32 5, label %1605
    i32 6, label %1646
    i32 7, label %1687
    i32 8, label %1728
    i32 10, label %1769
    i32 4, label %1810
    i32 9, label %1851
  ]

1430:                                             ; preds = %1426
  %1431 = landingpad { ptr, i32 }
          cleanup
  %1432 = extractvalue { ptr, i32 } %1431, 0
  store ptr %1432, ptr %8, align 8
  %1433 = extractvalue { ptr, i32 } %1431, 1
  store i32 %1433, ptr %9, align 4
  br label %1894

1434:                                             ; preds = %1429
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 244, ptr noundef @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #9
  unreachable

1435:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %136) #8
  store i8 1, ptr %136, align 1, !tbaa !9
  br label %1436

1436:                                             ; preds = %1476, %1435
  %1437 = load i8, ptr %136, align 1, !tbaa !9, !range !11, !noundef !12
  %1438 = trunc i8 %1437 to i1
  br i1 %1438, label %1440, label %1439

1439:                                             ; preds = %1436
  store i32 138, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #8
  br label %1477

1440:                                             ; preds = %1436
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #8
  %1441 = load ptr, ptr %135, align 8, !tbaa !5
  %1442 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST16PathBinding_Type10as_UnboundEv(ptr noundef nonnull align 8 dereferenceable(32) %1441)
          to label %1443 unwind label %1449

1443:                                             ; preds = %1440
  store ptr %1442, ptr %137, align 8, !tbaa !5
  br label %1444

1444:                                             ; preds = %1474, %1443
  %1445 = load ptr, ptr %137, align 8, !tbaa !5
  %1446 = load i8, ptr %136, align 1, !tbaa !9, !range !11, !noundef !12
  %1447 = trunc i8 %1446 to i1
  br i1 %1447, label %1453, label %1448

1448:                                             ; preds = %1444
  store i32 141, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  br label %1475

1449:                                             ; preds = %1468, %1466, %1464, %1460, %1457, %1454, %1440
  %1450 = landingpad { ptr, i32 }
          cleanup
  %1451 = extractvalue { ptr, i32 } %1450, 0
  store ptr %1451, ptr %8, align 8
  %1452 = extractvalue { ptr, i32 } %1450, 1
  store i32 %1452, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #8
  br label %1894

1453:                                             ; preds = %1444
  br label %1454

1454:                                             ; preds = %1453
  %1455 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1456 unwind label %1449

1456:                                             ; preds = %1454
  br i1 %1455, label %1457, label %1471

1457:                                             ; preds = %1456
  %1458 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !87
  %1459 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1458, ptr noundef @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE)
          to label %1460 unwind label %1449

1460:                                             ; preds = %1457
  %1461 = load ptr, ptr %127, align 8, !tbaa !5
  %1462 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1461, i32 0, i32 2
  %1463 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1459, ptr noundef nonnull align 8 dereferenceable(8) %1462)
          to label %1464 unwind label %1449

1464:                                             ; preds = %1460
  %1465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1463, ptr noundef @.str.24)
          to label %1466 unwind label %1449

1466:                                             ; preds = %1464
  %1467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1465, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1468 unwind label %1449

1468:                                             ; preds = %1466
  %1469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1467, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1470 unwind label %1449

1470:                                             ; preds = %1468
  br label %1471

1471:                                             ; preds = %1470, %1456
  br label %1472

1472:                                             ; preds = %1471
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

1474:                                             ; preds = %1473
  store i8 0, ptr %136, align 1, !tbaa !9
  br label %1444, !llvm.loop !89

1475:                                             ; preds = %1448
  br label %1476

1476:                                             ; preds = %1475
  store i8 0, ptr %136, align 1, !tbaa !9
  br label %1436, !llvm.loop !90

1477:                                             ; preds = %1439
  br label %1892

1478:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %138) #8
  store i8 1, ptr %138, align 1, !tbaa !9
  br label %1479

1479:                                             ; preds = %1521, %1478
  %1480 = load i8, ptr %138, align 1, !tbaa !9, !range !11, !noundef !12
  %1481 = trunc i8 %1480 to i1
  br i1 %1481, label %1483, label %1482

1482:                                             ; preds = %1479
  store i32 146, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  br label %1522

1483:                                             ; preds = %1479
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #8
  %1484 = load ptr, ptr %135, align 8, !tbaa !5
  %1485 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3AST16PathBinding_Type16as_TypeParameterEv(ptr noundef nonnull align 8 dereferenceable(32) %1484)
          to label %1486 unwind label %1492

1486:                                             ; preds = %1483
  store ptr %1485, ptr %139, align 8, !tbaa !5
  br label %1487

1487:                                             ; preds = %1518, %1486
  %1488 = load ptr, ptr %139, align 8, !tbaa !5
  %1489 = load i8, ptr %138, align 1, !tbaa !9, !range !11, !noundef !12
  %1490 = trunc i8 %1489 to i1
  br i1 %1490, label %1496, label %1491

1491:                                             ; preds = %1487
  store i32 149, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #8
  br label %1520

1492:                                             ; preds = %1502, %1483
  %1493 = landingpad { ptr, i32 }
          cleanup
  %1494 = extractvalue { ptr, i32 } %1493, 0
  store ptr %1494, ptr %8, align 8
  %1495 = extractvalue { ptr, i32 } %1493, 1
  store i32 %1495, ptr %9, align 4
  br label %1519

1496:                                             ; preds = %1487
  br label %1497

1497:                                             ; preds = %1496
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #8
  %1498 = load ptr, ptr %128, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 8 dereferenceable(8) %1498)
          to label %1499 unwind label %1503

1499:                                             ; preds = %1497
  call void @llvm.lifetime.start.p0(i64 1, ptr %142) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 1 dereferenceable(1) %142) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef %141)
          to label %1500 unwind label %1507

1500:                                             ; preds = %1499
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #8
  %1501 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1501, ptr noundef @.str.5)
          to label %1502 unwind label %1512

1502:                                             ; preds = %1500
  invoke void @__cxa_throw(ptr %1501, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %2583 unwind label %1492

1503:                                             ; preds = %1497
  %1504 = landingpad { ptr, i32 }
          cleanup
  %1505 = extractvalue { ptr, i32 } %1504, 0
  store ptr %1505, ptr %8, align 8
  %1506 = extractvalue { ptr, i32 } %1504, 1
  store i32 %1506, ptr %9, align 4
  br label %1511

1507:                                             ; preds = %1499
  %1508 = landingpad { ptr, i32 }
          cleanup
  %1509 = extractvalue { ptr, i32 } %1508, 0
  store ptr %1509, ptr %8, align 8
  %1510 = extractvalue { ptr, i32 } %1508, 1
  store i32 %1510, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #8
  br label %1511

1511:                                             ; preds = %1507, %1503
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #8
  br label %1519

1512:                                             ; preds = %1500
  %1513 = landingpad { ptr, i32 }
          cleanup
  %1514 = extractvalue { ptr, i32 } %1513, 0
  store ptr %1514, ptr %8, align 8
  %1515 = extractvalue { ptr, i32 } %1513, 1
  store i32 %1515, ptr %9, align 4
  call void @__cxa_free_exception(ptr %1501) #8
  br label %1519

1516:                                             ; No predecessors!
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

1518:                                             ; preds = %1517
  store i8 0, ptr %138, align 1, !tbaa !9
  br label %1487, !llvm.loop !91

1519:                                             ; preds = %1512, %1511, %1492
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  br label %1894

1520:                                             ; preds = %1491
  br label %1521

1521:                                             ; preds = %1520
  store i8 0, ptr %138, align 1, !tbaa !9
  br label %1479, !llvm.loop !92

1522:                                             ; preds = %1482
  br label %1892

1523:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #8
  store i8 1, ptr %143, align 1, !tbaa !9
  br label %1524

1524:                                             ; preds = %1562, %1523
  %1525 = load i8, ptr %143, align 1, !tbaa !9, !range !11, !noundef !12
  %1526 = trunc i8 %1525 to i1
  br i1 %1526, label %1528, label %1527

1527:                                             ; preds = %1524
  store i32 154, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #8
  br label %1563

1528:                                             ; preds = %1524
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #8
  %1529 = load ptr, ptr %135, align 8, !tbaa !5
  %1530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST16PathBinding_Type8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(32) %1529)
          to label %1531 unwind label %1537

1531:                                             ; preds = %1528
  store ptr %1530, ptr %144, align 8, !tbaa !5
  br label %1532

1532:                                             ; preds = %1555, %1531
  %1533 = load ptr, ptr %144, align 8, !tbaa !5
  %1534 = load i8, ptr %143, align 1, !tbaa !9, !range !11, !noundef !12
  %1535 = trunc i8 %1534 to i1
  br i1 %1535, label %1541, label %1536

1536:                                             ; preds = %1532
  store i32 157, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #8
  br label %1561

1537:                                             ; preds = %1541, %1528
  %1538 = landingpad { ptr, i32 }
          cleanup
  %1539 = extractvalue { ptr, i32 } %1538, 0
  store ptr %1539, ptr %8, align 8
  %1540 = extractvalue { ptr, i32 } %1538, 1
  store i32 %1540, ptr %9, align 4
  br label %1560

1541:                                             ; preds = %1532
  %1542 = load ptr, ptr %128, align 8, !tbaa !5
  %1543 = load ptr, ptr %4, align 8, !tbaa !5
  %1544 = load ptr, ptr %127, align 8, !tbaa !5
  %1545 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1544, i32 0, i32 2
  %1546 = load ptr, ptr %123, align 8, !tbaa !5
  %1547 = getelementptr inbounds %"struct.AST::Named", ptr %1546, i32 0, i32 2
  %1548 = load ptr, ptr %132, align 8, !tbaa !5
  %1549 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1548, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %145, ptr noundef nonnull align 8 dereferenceable(64) %1549)
          to label %1550 unwind label %1537

1550:                                             ; preds = %1541
  %1551 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1552 = trunc i8 %1551 to i1
  %1553 = xor i1 %1552, true
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1542, ptr noundef nonnull align 8 dereferenceable(480) %1543, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %1545, ptr noundef nonnull align 8 dereferenceable(36) %1547, ptr noundef %145, i1 noundef zeroext %1553)
          to label %1554 unwind label %1556

1554:                                             ; preds = %1550
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %145) #8
  br label %1555

1555:                                             ; preds = %1554
  store i8 0, ptr %143, align 1, !tbaa !9
  br label %1532, !llvm.loop !93

1556:                                             ; preds = %1550
  %1557 = landingpad { ptr, i32 }
          cleanup
  %1558 = extractvalue { ptr, i32 } %1557, 0
  store ptr %1558, ptr %8, align 8
  %1559 = extractvalue { ptr, i32 } %1557, 1
  store i32 %1559, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %145) #8
  br label %1560

1560:                                             ; preds = %1556, %1537
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #8
  br label %1894

1561:                                             ; preds = %1536
  br label %1562

1562:                                             ; preds = %1561
  store i8 0, ptr %143, align 1, !tbaa !9
  br label %1524, !llvm.loop !94

1563:                                             ; preds = %1527
  br label %1892

1564:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %146) #8
  store i8 1, ptr %146, align 1, !tbaa !9
  br label %1565

1565:                                             ; preds = %1603, %1564
  %1566 = load i8, ptr %146, align 1, !tbaa !9, !range !11, !noundef !12
  %1567 = trunc i8 %1566 to i1
  br i1 %1567, label %1569, label %1568

1568:                                             ; preds = %1565
  store i32 160, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %146) #8
  br label %1604

1569:                                             ; preds = %1565
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #8
  %1570 = load ptr, ptr %135, align 8, !tbaa !5
  %1571 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST16PathBinding_Type9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32) %1570)
          to label %1572 unwind label %1578

1572:                                             ; preds = %1569
  store ptr %1571, ptr %147, align 8, !tbaa !5
  br label %1573

1573:                                             ; preds = %1596, %1572
  %1574 = load ptr, ptr %147, align 8, !tbaa !5
  %1575 = load i8, ptr %146, align 1, !tbaa !9, !range !11, !noundef !12
  %1576 = trunc i8 %1575 to i1
  br i1 %1576, label %1582, label %1577

1577:                                             ; preds = %1573
  store i32 163, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #8
  br label %1602

1578:                                             ; preds = %1582, %1569
  %1579 = landingpad { ptr, i32 }
          cleanup
  %1580 = extractvalue { ptr, i32 } %1579, 0
  store ptr %1580, ptr %8, align 8
  %1581 = extractvalue { ptr, i32 } %1579, 1
  store i32 %1581, ptr %9, align 4
  br label %1601

1582:                                             ; preds = %1573
  %1583 = load ptr, ptr %128, align 8, !tbaa !5
  %1584 = load ptr, ptr %4, align 8, !tbaa !5
  %1585 = load ptr, ptr %127, align 8, !tbaa !5
  %1586 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1585, i32 0, i32 2
  %1587 = load ptr, ptr %123, align 8, !tbaa !5
  %1588 = getelementptr inbounds %"struct.AST::Named", ptr %1587, i32 0, i32 2
  %1589 = load ptr, ptr %132, align 8, !tbaa !5
  %1590 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1589, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %148, ptr noundef nonnull align 8 dereferenceable(64) %1590)
          to label %1591 unwind label %1578

1591:                                             ; preds = %1582
  %1592 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1593 = trunc i8 %1592 to i1
  %1594 = xor i1 %1593, true
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1583, ptr noundef nonnull align 8 dereferenceable(480) %1584, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %1586, ptr noundef nonnull align 8 dereferenceable(36) %1588, ptr noundef %148, i1 noundef zeroext %1594)
          to label %1595 unwind label %1597

1595:                                             ; preds = %1591
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %148) #8
  br label %1596

1596:                                             ; preds = %1595
  store i8 0, ptr %146, align 1, !tbaa !9
  br label %1573, !llvm.loop !95

1597:                                             ; preds = %1591
  %1598 = landingpad { ptr, i32 }
          cleanup
  %1599 = extractvalue { ptr, i32 } %1598, 0
  store ptr %1599, ptr %8, align 8
  %1600 = extractvalue { ptr, i32 } %1598, 1
  store i32 %1600, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %148) #8
  br label %1601

1601:                                             ; preds = %1597, %1578
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %146) #8
  br label %1894

1602:                                             ; preds = %1577
  br label %1603

1603:                                             ; preds = %1602
  store i8 0, ptr %146, align 1, !tbaa !9
  br label %1565, !llvm.loop !96

1604:                                             ; preds = %1568
  br label %1892

1605:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %149) #8
  store i8 1, ptr %149, align 1, !tbaa !9
  br label %1606

1606:                                             ; preds = %1644, %1605
  %1607 = load i8, ptr %149, align 1, !tbaa !9, !range !11, !noundef !12
  %1608 = trunc i8 %1607 to i1
  br i1 %1608, label %1610, label %1609

1609:                                             ; preds = %1606
  store i32 166, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #8
  br label %1645

1610:                                             ; preds = %1606
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #8
  %1611 = load ptr, ptr %135, align 8, !tbaa !5
  %1612 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(32) %1611)
          to label %1613 unwind label %1619

1613:                                             ; preds = %1610
  store ptr %1612, ptr %150, align 8, !tbaa !5
  br label %1614

1614:                                             ; preds = %1637, %1613
  %1615 = load ptr, ptr %150, align 8, !tbaa !5
  %1616 = load i8, ptr %149, align 1, !tbaa !9, !range !11, !noundef !12
  %1617 = trunc i8 %1616 to i1
  br i1 %1617, label %1623, label %1618

1618:                                             ; preds = %1614
  store i32 169, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #8
  br label %1643

1619:                                             ; preds = %1623, %1610
  %1620 = landingpad { ptr, i32 }
          cleanup
  %1621 = extractvalue { ptr, i32 } %1620, 0
  store ptr %1621, ptr %8, align 8
  %1622 = extractvalue { ptr, i32 } %1620, 1
  store i32 %1622, ptr %9, align 4
  br label %1642

1623:                                             ; preds = %1614
  %1624 = load ptr, ptr %128, align 8, !tbaa !5
  %1625 = load ptr, ptr %4, align 8, !tbaa !5
  %1626 = load ptr, ptr %127, align 8, !tbaa !5
  %1627 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1626, i32 0, i32 2
  %1628 = load ptr, ptr %123, align 8, !tbaa !5
  %1629 = getelementptr inbounds %"struct.AST::Named", ptr %1628, i32 0, i32 2
  %1630 = load ptr, ptr %132, align 8, !tbaa !5
  %1631 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1630, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %151, ptr noundef nonnull align 8 dereferenceable(64) %1631)
          to label %1632 unwind label %1619

1632:                                             ; preds = %1623
  %1633 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1634 = trunc i8 %1633 to i1
  %1635 = xor i1 %1634, true
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1624, ptr noundef nonnull align 8 dereferenceable(480) %1625, ptr noundef nonnull align 8 dereferenceable(8) %1627, ptr noundef nonnull align 8 dereferenceable(36) %1629, ptr noundef %151, i1 noundef zeroext %1635)
          to label %1636 unwind label %1638

1636:                                             ; preds = %1632
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %151) #8
  br label %1637

1637:                                             ; preds = %1636
  store i8 0, ptr %149, align 1, !tbaa !9
  br label %1614, !llvm.loop !97

1638:                                             ; preds = %1632
  %1639 = landingpad { ptr, i32 }
          cleanup
  %1640 = extractvalue { ptr, i32 } %1639, 0
  store ptr %1640, ptr %8, align 8
  %1641 = extractvalue { ptr, i32 } %1639, 1
  store i32 %1641, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %151) #8
  br label %1642

1642:                                             ; preds = %1638, %1619
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #8
  br label %1894

1643:                                             ; preds = %1618
  br label %1644

1644:                                             ; preds = %1643
  store i8 0, ptr %149, align 1, !tbaa !9
  br label %1606, !llvm.loop !98

1645:                                             ; preds = %1609
  br label %1892

1646:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %152) #8
  store i8 1, ptr %152, align 1, !tbaa !9
  br label %1647

1647:                                             ; preds = %1685, %1646
  %1648 = load i8, ptr %152, align 1, !tbaa !9, !range !11, !noundef !12
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1651, label %1650

1650:                                             ; preds = %1647
  store i32 172, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #8
  br label %1686

1651:                                             ; preds = %1647
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #8
  %1652 = load ptr, ptr %135, align 8, !tbaa !5
  %1653 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(32) %1652)
          to label %1654 unwind label %1660

1654:                                             ; preds = %1651
  store ptr %1653, ptr %153, align 8, !tbaa !5
  br label %1655

1655:                                             ; preds = %1678, %1654
  %1656 = load ptr, ptr %153, align 8, !tbaa !5
  %1657 = load i8, ptr %152, align 1, !tbaa !9, !range !11, !noundef !12
  %1658 = trunc i8 %1657 to i1
  br i1 %1658, label %1664, label %1659

1659:                                             ; preds = %1655
  store i32 175, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #8
  br label %1684

1660:                                             ; preds = %1664, %1651
  %1661 = landingpad { ptr, i32 }
          cleanup
  %1662 = extractvalue { ptr, i32 } %1661, 0
  store ptr %1662, ptr %8, align 8
  %1663 = extractvalue { ptr, i32 } %1661, 1
  store i32 %1663, ptr %9, align 4
  br label %1683

1664:                                             ; preds = %1655
  %1665 = load ptr, ptr %128, align 8, !tbaa !5
  %1666 = load ptr, ptr %4, align 8, !tbaa !5
  %1667 = load ptr, ptr %127, align 8, !tbaa !5
  %1668 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1667, i32 0, i32 2
  %1669 = load ptr, ptr %123, align 8, !tbaa !5
  %1670 = getelementptr inbounds %"struct.AST::Named", ptr %1669, i32 0, i32 2
  %1671 = load ptr, ptr %132, align 8, !tbaa !5
  %1672 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1671, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %154, ptr noundef nonnull align 8 dereferenceable(64) %1672)
          to label %1673 unwind label %1660

1673:                                             ; preds = %1664
  %1674 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1675 = trunc i8 %1674 to i1
  %1676 = xor i1 %1675, true
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1665, ptr noundef nonnull align 8 dereferenceable(480) %1666, ptr noundef nonnull align 8 dereferenceable(8) %1668, ptr noundef nonnull align 8 dereferenceable(36) %1670, ptr noundef %154, i1 noundef zeroext %1676)
          to label %1677 unwind label %1679

1677:                                             ; preds = %1673
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %154) #8
  br label %1678

1678:                                             ; preds = %1677
  store i8 0, ptr %152, align 1, !tbaa !9
  br label %1655, !llvm.loop !99

1679:                                             ; preds = %1673
  %1680 = landingpad { ptr, i32 }
          cleanup
  %1681 = extractvalue { ptr, i32 } %1680, 0
  store ptr %1681, ptr %8, align 8
  %1682 = extractvalue { ptr, i32 } %1680, 1
  store i32 %1682, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %154) #8
  br label %1683

1683:                                             ; preds = %1679, %1660
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #8
  br label %1894

1684:                                             ; preds = %1659
  br label %1685

1685:                                             ; preds = %1684
  store i8 0, ptr %152, align 1, !tbaa !9
  br label %1647, !llvm.loop !100

1686:                                             ; preds = %1650
  br label %1892

1687:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #8
  store i8 1, ptr %155, align 1, !tbaa !9
  br label %1688

1688:                                             ; preds = %1726, %1687
  %1689 = load i8, ptr %155, align 1, !tbaa !9, !range !11, !noundef !12
  %1690 = trunc i8 %1689 to i1
  br i1 %1690, label %1692, label %1691

1691:                                             ; preds = %1688
  store i32 178, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #8
  br label %1727

1692:                                             ; preds = %1688
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #8
  %1693 = load ptr, ptr %135, align 8, !tbaa !5
  %1694 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(32) %1693)
          to label %1695 unwind label %1701

1695:                                             ; preds = %1692
  store ptr %1694, ptr %156, align 8, !tbaa !5
  br label %1696

1696:                                             ; preds = %1719, %1695
  %1697 = load ptr, ptr %156, align 8, !tbaa !5
  %1698 = load i8, ptr %155, align 1, !tbaa !9, !range !11, !noundef !12
  %1699 = trunc i8 %1698 to i1
  br i1 %1699, label %1705, label %1700

1700:                                             ; preds = %1696
  store i32 181, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #8
  br label %1725

1701:                                             ; preds = %1705, %1692
  %1702 = landingpad { ptr, i32 }
          cleanup
  %1703 = extractvalue { ptr, i32 } %1702, 0
  store ptr %1703, ptr %8, align 8
  %1704 = extractvalue { ptr, i32 } %1702, 1
  store i32 %1704, ptr %9, align 4
  br label %1724

1705:                                             ; preds = %1696
  %1706 = load ptr, ptr %128, align 8, !tbaa !5
  %1707 = load ptr, ptr %4, align 8, !tbaa !5
  %1708 = load ptr, ptr %127, align 8, !tbaa !5
  %1709 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1708, i32 0, i32 2
  %1710 = load ptr, ptr %123, align 8, !tbaa !5
  %1711 = getelementptr inbounds %"struct.AST::Named", ptr %1710, i32 0, i32 2
  %1712 = load ptr, ptr %132, align 8, !tbaa !5
  %1713 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1712, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %157, ptr noundef nonnull align 8 dereferenceable(64) %1713)
          to label %1714 unwind label %1701

1714:                                             ; preds = %1705
  %1715 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1716 = trunc i8 %1715 to i1
  %1717 = xor i1 %1716, true
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1706, ptr noundef nonnull align 8 dereferenceable(480) %1707, ptr noundef nonnull align 8 dereferenceable(8) %1709, ptr noundef nonnull align 8 dereferenceable(36) %1711, ptr noundef %157, i1 noundef zeroext %1717)
          to label %1718 unwind label %1720

1718:                                             ; preds = %1714
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %157) #8
  br label %1719

1719:                                             ; preds = %1718
  store i8 0, ptr %155, align 1, !tbaa !9
  br label %1696, !llvm.loop !101

1720:                                             ; preds = %1714
  %1721 = landingpad { ptr, i32 }
          cleanup
  %1722 = extractvalue { ptr, i32 } %1721, 0
  store ptr %1722, ptr %8, align 8
  %1723 = extractvalue { ptr, i32 } %1721, 1
  store i32 %1723, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %157) #8
  br label %1724

1724:                                             ; preds = %1720, %1701
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #8
  br label %1894

1725:                                             ; preds = %1700
  br label %1726

1726:                                             ; preds = %1725
  store i8 0, ptr %155, align 1, !tbaa !9
  br label %1688, !llvm.loop !102

1727:                                             ; preds = %1691
  br label %1892

1728:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %158) #8
  store i8 1, ptr %158, align 1, !tbaa !9
  br label %1729

1729:                                             ; preds = %1767, %1728
  %1730 = load i8, ptr %158, align 1, !tbaa !9, !range !11, !noundef !12
  %1731 = trunc i8 %1730 to i1
  br i1 %1731, label %1733, label %1732

1732:                                             ; preds = %1729
  store i32 184, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %158) #8
  br label %1768

1733:                                             ; preds = %1729
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #8
  %1734 = load ptr, ptr %135, align 8, !tbaa !5
  %1735 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(32) %1734)
          to label %1736 unwind label %1742

1736:                                             ; preds = %1733
  store ptr %1735, ptr %159, align 8, !tbaa !5
  br label %1737

1737:                                             ; preds = %1760, %1736
  %1738 = load ptr, ptr %159, align 8, !tbaa !5
  %1739 = load i8, ptr %158, align 1, !tbaa !9, !range !11, !noundef !12
  %1740 = trunc i8 %1739 to i1
  br i1 %1740, label %1746, label %1741

1741:                                             ; preds = %1737
  store i32 187, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #8
  br label %1766

1742:                                             ; preds = %1746, %1733
  %1743 = landingpad { ptr, i32 }
          cleanup
  %1744 = extractvalue { ptr, i32 } %1743, 0
  store ptr %1744, ptr %8, align 8
  %1745 = extractvalue { ptr, i32 } %1743, 1
  store i32 %1745, ptr %9, align 4
  br label %1765

1746:                                             ; preds = %1737
  %1747 = load ptr, ptr %128, align 8, !tbaa !5
  %1748 = load ptr, ptr %4, align 8, !tbaa !5
  %1749 = load ptr, ptr %127, align 8, !tbaa !5
  %1750 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1749, i32 0, i32 2
  %1751 = load ptr, ptr %123, align 8, !tbaa !5
  %1752 = getelementptr inbounds %"struct.AST::Named", ptr %1751, i32 0, i32 2
  %1753 = load ptr, ptr %132, align 8, !tbaa !5
  %1754 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1753, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %160, ptr noundef nonnull align 8 dereferenceable(64) %1754)
          to label %1755 unwind label %1742

1755:                                             ; preds = %1746
  %1756 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1757 = trunc i8 %1756 to i1
  %1758 = xor i1 %1757, true
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1747, ptr noundef nonnull align 8 dereferenceable(480) %1748, ptr noundef nonnull align 8 dereferenceable(8) %1750, ptr noundef nonnull align 8 dereferenceable(36) %1752, ptr noundef %160, i1 noundef zeroext %1758)
          to label %1759 unwind label %1761

1759:                                             ; preds = %1755
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %160) #8
  br label %1760

1760:                                             ; preds = %1759
  store i8 0, ptr %158, align 1, !tbaa !9
  br label %1737, !llvm.loop !103

1761:                                             ; preds = %1755
  %1762 = landingpad { ptr, i32 }
          cleanup
  %1763 = extractvalue { ptr, i32 } %1762, 0
  store ptr %1763, ptr %8, align 8
  %1764 = extractvalue { ptr, i32 } %1762, 1
  store i32 %1764, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %160) #8
  br label %1765

1765:                                             ; preds = %1761, %1742
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %158) #8
  br label %1894

1766:                                             ; preds = %1741
  br label %1767

1767:                                             ; preds = %1766
  store i8 0, ptr %158, align 1, !tbaa !9
  br label %1729, !llvm.loop !104

1768:                                             ; preds = %1732
  br label %1892

1769:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %161) #8
  store i8 1, ptr %161, align 1, !tbaa !9
  br label %1770

1770:                                             ; preds = %1808, %1769
  %1771 = load i8, ptr %161, align 1, !tbaa !9, !range !11, !noundef !12
  %1772 = trunc i8 %1771 to i1
  br i1 %1772, label %1774, label %1773

1773:                                             ; preds = %1770
  store i32 190, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #8
  br label %1809

1774:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #8
  %1775 = load ptr, ptr %135, align 8, !tbaa !5
  %1776 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST16PathBinding_Type12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(32) %1775)
          to label %1777 unwind label %1783

1777:                                             ; preds = %1774
  store ptr %1776, ptr %162, align 8, !tbaa !5
  br label %1778

1778:                                             ; preds = %1801, %1777
  %1779 = load ptr, ptr %162, align 8, !tbaa !5
  %1780 = load i8, ptr %161, align 1, !tbaa !9, !range !11, !noundef !12
  %1781 = trunc i8 %1780 to i1
  br i1 %1781, label %1787, label %1782

1782:                                             ; preds = %1778
  store i32 193, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #8
  br label %1807

1783:                                             ; preds = %1787, %1774
  %1784 = landingpad { ptr, i32 }
          cleanup
  %1785 = extractvalue { ptr, i32 } %1784, 0
  store ptr %1785, ptr %8, align 8
  %1786 = extractvalue { ptr, i32 } %1784, 1
  store i32 %1786, ptr %9, align 4
  br label %1806

1787:                                             ; preds = %1778
  %1788 = load ptr, ptr %128, align 8, !tbaa !5
  %1789 = load ptr, ptr %4, align 8, !tbaa !5
  %1790 = load ptr, ptr %127, align 8, !tbaa !5
  %1791 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1790, i32 0, i32 2
  %1792 = load ptr, ptr %123, align 8, !tbaa !5
  %1793 = getelementptr inbounds %"struct.AST::Named", ptr %1792, i32 0, i32 2
  %1794 = load ptr, ptr %132, align 8, !tbaa !5
  %1795 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1794, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %163, ptr noundef nonnull align 8 dereferenceable(64) %1795)
          to label %1796 unwind label %1783

1796:                                             ; preds = %1787
  %1797 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1798 = trunc i8 %1797 to i1
  %1799 = xor i1 %1798, true
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1788, ptr noundef nonnull align 8 dereferenceable(480) %1789, ptr noundef nonnull align 8 dereferenceable(8) %1791, ptr noundef nonnull align 8 dereferenceable(36) %1793, ptr noundef %163, i1 noundef zeroext %1799)
          to label %1800 unwind label %1802

1800:                                             ; preds = %1796
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %163) #8
  br label %1801

1801:                                             ; preds = %1800
  store i8 0, ptr %161, align 1, !tbaa !9
  br label %1778, !llvm.loop !105

1802:                                             ; preds = %1796
  %1803 = landingpad { ptr, i32 }
          cleanup
  %1804 = extractvalue { ptr, i32 } %1803, 0
  store ptr %1804, ptr %8, align 8
  %1805 = extractvalue { ptr, i32 } %1803, 1
  store i32 %1805, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %163) #8
  br label %1806

1806:                                             ; preds = %1802, %1783
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #8
  br label %1894

1807:                                             ; preds = %1782
  br label %1808

1808:                                             ; preds = %1807
  store i8 0, ptr %161, align 1, !tbaa !9
  br label %1770, !llvm.loop !106

1809:                                             ; preds = %1773
  br label %1892

1810:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #8
  store i8 1, ptr %164, align 1, !tbaa !9
  br label %1811

1811:                                             ; preds = %1849, %1810
  %1812 = load i8, ptr %164, align 1, !tbaa !9, !range !11, !noundef !12
  %1813 = trunc i8 %1812 to i1
  br i1 %1813, label %1815, label %1814

1814:                                             ; preds = %1811
  store i32 196, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #8
  br label %1850

1815:                                             ; preds = %1811
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #8
  %1816 = load ptr, ptr %135, align 8, !tbaa !5
  %1817 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type9as_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %1816)
          to label %1818 unwind label %1824

1818:                                             ; preds = %1815
  store ptr %1817, ptr %165, align 8, !tbaa !5
  br label %1819

1819:                                             ; preds = %1842, %1818
  %1820 = load ptr, ptr %165, align 8, !tbaa !5
  %1821 = load i8, ptr %164, align 1, !tbaa !9, !range !11, !noundef !12
  %1822 = trunc i8 %1821 to i1
  br i1 %1822, label %1828, label %1823

1823:                                             ; preds = %1819
  store i32 199, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #8
  br label %1848

1824:                                             ; preds = %1828, %1815
  %1825 = landingpad { ptr, i32 }
          cleanup
  %1826 = extractvalue { ptr, i32 } %1825, 0
  store ptr %1826, ptr %8, align 8
  %1827 = extractvalue { ptr, i32 } %1825, 1
  store i32 %1827, ptr %9, align 4
  br label %1847

1828:                                             ; preds = %1819
  %1829 = load ptr, ptr %128, align 8, !tbaa !5
  %1830 = load ptr, ptr %4, align 8, !tbaa !5
  %1831 = load ptr, ptr %127, align 8, !tbaa !5
  %1832 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1831, i32 0, i32 2
  %1833 = load ptr, ptr %123, align 8, !tbaa !5
  %1834 = getelementptr inbounds %"struct.AST::Named", ptr %1833, i32 0, i32 2
  %1835 = load ptr, ptr %132, align 8, !tbaa !5
  %1836 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1835, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %166, ptr noundef nonnull align 8 dereferenceable(64) %1836)
          to label %1837 unwind label %1824

1837:                                             ; preds = %1828
  %1838 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1839 = trunc i8 %1838 to i1
  %1840 = xor i1 %1839, true
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1829, ptr noundef nonnull align 8 dereferenceable(480) %1830, ptr noundef nonnull align 8 dereferenceable(8) %1832, ptr noundef nonnull align 8 dereferenceable(36) %1834, ptr noundef %166, i1 noundef zeroext %1840)
          to label %1841 unwind label %1843

1841:                                             ; preds = %1837
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %166) #8
  br label %1842

1842:                                             ; preds = %1841
  store i8 0, ptr %164, align 1, !tbaa !9
  br label %1819, !llvm.loop !107

1843:                                             ; preds = %1837
  %1844 = landingpad { ptr, i32 }
          cleanup
  %1845 = extractvalue { ptr, i32 } %1844, 0
  store ptr %1845, ptr %8, align 8
  %1846 = extractvalue { ptr, i32 } %1844, 1
  store i32 %1846, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %166) #8
  br label %1847

1847:                                             ; preds = %1843, %1824
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #8
  br label %1894

1848:                                             ; preds = %1823
  br label %1849

1849:                                             ; preds = %1848
  store i8 0, ptr %164, align 1, !tbaa !9
  br label %1811, !llvm.loop !108

1850:                                             ; preds = %1814
  br label %1892

1851:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #8
  store i8 1, ptr %167, align 1, !tbaa !9
  br label %1852

1852:                                             ; preds = %1890, %1851
  %1853 = load i8, ptr %167, align 1, !tbaa !9, !range !11, !noundef !12
  %1854 = trunc i8 %1853 to i1
  br i1 %1854, label %1856, label %1855

1855:                                             ; preds = %1852
  store i32 202, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #8
  br label %1891

1856:                                             ; preds = %1852
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #8
  %1857 = load ptr, ptr %135, align 8, !tbaa !5
  %1858 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST16PathBinding_Type10as_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %1857)
          to label %1859 unwind label %1865

1859:                                             ; preds = %1856
  store ptr %1858, ptr %168, align 8, !tbaa !5
  br label %1860

1860:                                             ; preds = %1883, %1859
  %1861 = load ptr, ptr %168, align 8, !tbaa !5
  %1862 = load i8, ptr %167, align 1, !tbaa !9, !range !11, !noundef !12
  %1863 = trunc i8 %1862 to i1
  br i1 %1863, label %1869, label %1864

1864:                                             ; preds = %1860
  store i32 205, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #8
  br label %1889

1865:                                             ; preds = %1869, %1856
  %1866 = landingpad { ptr, i32 }
          cleanup
  %1867 = extractvalue { ptr, i32 } %1866, 0
  store ptr %1867, ptr %8, align 8
  %1868 = extractvalue { ptr, i32 } %1866, 1
  store i32 %1868, ptr %9, align 4
  br label %1888

1869:                                             ; preds = %1860
  %1870 = load ptr, ptr %128, align 8, !tbaa !5
  %1871 = load ptr, ptr %4, align 8, !tbaa !5
  %1872 = load ptr, ptr %127, align 8, !tbaa !5
  %1873 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1872, i32 0, i32 2
  %1874 = load ptr, ptr %123, align 8, !tbaa !5
  %1875 = getelementptr inbounds %"struct.AST::Named", ptr %1874, i32 0, i32 2
  %1876 = load ptr, ptr %132, align 8, !tbaa !5
  %1877 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1876, i32 0, i32 1
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %169, ptr noundef nonnull align 8 dereferenceable(64) %1877)
          to label %1878 unwind label %1865

1878:                                             ; preds = %1869
  %1879 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %1880 = trunc i8 %1879 to i1
  %1881 = xor i1 %1880, true
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %1870, ptr noundef nonnull align 8 dereferenceable(480) %1871, ptr noundef nonnull align 8 dereferenceable(8) %1873, ptr noundef nonnull align 8 dereferenceable(36) %1875, ptr noundef %169, i1 noundef zeroext %1881)
          to label %1882 unwind label %1884

1882:                                             ; preds = %1878
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %169) #8
  br label %1883

1883:                                             ; preds = %1882
  store i8 0, ptr %167, align 1, !tbaa !9
  br label %1860, !llvm.loop !109

1884:                                             ; preds = %1878
  %1885 = landingpad { ptr, i32 }
          cleanup
  %1886 = extractvalue { ptr, i32 } %1885, 0
  store ptr %1886, ptr %8, align 8
  %1887 = extractvalue { ptr, i32 } %1885, 1
  store i32 %1887, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %169) #8
  br label %1888

1888:                                             ; preds = %1884, %1865
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #8
  br label %1894

1889:                                             ; preds = %1864
  br label %1890

1890:                                             ; preds = %1889
  store i8 0, ptr %167, align 1, !tbaa !9
  br label %1852, !llvm.loop !110

1891:                                             ; preds = %1855
  br label %1892

1892:                                             ; preds = %1891, %1850, %1809, %1768, %1727, %1686, %1645, %1604, %1563, %1522, %1477, %1429
  br label %1893

1893:                                             ; preds = %1892
  store i8 0, ptr %134, align 1, !tbaa !9
  br label %1422, !llvm.loop !111

1894:                                             ; preds = %1888, %1847, %1806, %1765, %1724, %1683, %1642, %1601, %1560, %1519, %1449, %1430
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #8
  br label %2476

1895:                                             ; preds = %1425
  br label %1896

1896:                                             ; preds = %1895
  store i8 0, ptr %134, align 1, !tbaa !9
  br label %1414, !llvm.loop !112

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

1898:                                             ; preds = %2220, %1897
  %1899 = load i8, ptr %170, align 1, !tbaa !9, !range !11, !noundef !12
  %1900 = trunc i8 %1899 to i1
  br i1 %1900, label %1902, label %1901

1901:                                             ; preds = %1898
  store i32 208, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #8
  br label %2221

1902:                                             ; preds = %1898
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #8
  %1903 = load ptr, ptr %132, align 8, !tbaa !5
  %1904 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %1903, i32 0, i32 0
  %1905 = getelementptr inbounds %"struct.AST::PathBinding", ptr %1904, i32 0, i32 1
  store ptr %1905, ptr %171, align 8, !tbaa !5
  br label %1906

1906:                                             ; preds = %2217, %1902
  %1907 = load i8, ptr %170, align 1, !tbaa !9, !range !11, !noundef !12
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1910, label %1909

1909:                                             ; preds = %1906
  store i32 211, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #8
  br label %2219

1910:                                             ; preds = %1906
  %1911 = load ptr, ptr %171, align 8, !tbaa !5
  %1912 = invoke noundef i32 @_ZNK3AST17PathBinding_Value3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %1911)
          to label %1913 unwind label %1914

1913:                                             ; preds = %1910
  switch i32 %1912, label %2216 [
    i32 0, label %1918
    i32 1, label %1919
    i32 7, label %1962
    i32 6, label %2007
    i32 2, label %2052
    i32 5, label %2093
    i32 3, label %2134
    i32 4, label %2175
  ]

1914:                                             ; preds = %1910
  %1915 = landingpad { ptr, i32 }
          cleanup
  %1916 = extractvalue { ptr, i32 } %1915, 0
  store ptr %1916, ptr %8, align 8
  %1917 = extractvalue { ptr, i32 } %1915, 1
  store i32 %1917, ptr %9, align 4
  br label %2218

1918:                                             ; preds = %1913
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 270, ptr noundef @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #9
  unreachable

1919:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 1, ptr %172) #8
  store i8 1, ptr %172, align 1, !tbaa !9
  br label %1920

1920:                                             ; preds = %1960, %1919
  %1921 = load i8, ptr %172, align 1, !tbaa !9, !range !11, !noundef !12
  %1922 = trunc i8 %1921 to i1
  br i1 %1922, label %1924, label %1923

1923:                                             ; preds = %1920
  store i32 215, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #8
  br label %1961

1924:                                             ; preds = %1920
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #8
  %1925 = load ptr, ptr %171, align 8, !tbaa !5
  %1926 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST17PathBinding_Value10as_UnboundEv(ptr noundef nonnull align 8 dereferenceable(32) %1925)
          to label %1927 unwind label %1933

1927:                                             ; preds = %1924
  store ptr %1926, ptr %173, align 8, !tbaa !5
  br label %1928

1928:                                             ; preds = %1958, %1927
  %1929 = load ptr, ptr %173, align 8, !tbaa !5
  %1930 = load i8, ptr %172, align 1, !tbaa !9, !range !11, !noundef !12
  %1931 = trunc i8 %1930 to i1
  br i1 %1931, label %1937, label %1932

1932:                                             ; preds = %1928
  store i32 218, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #8
  br label %1959

1933:                                             ; preds = %1952, %1950, %1948, %1944, %1941, %1938, %1924
  %1934 = landingpad { ptr, i32 }
          cleanup
  %1935 = extractvalue { ptr, i32 } %1934, 0
  store ptr %1935, ptr %8, align 8
  %1936 = extractvalue { ptr, i32 } %1934, 1
  store i32 %1936, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #8
  br label %2218

1937:                                             ; preds = %1928
  br label %1938

1938:                                             ; preds = %1937
  %1939 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1940 unwind label %1933

1940:                                             ; preds = %1938
  br i1 %1939, label %1941, label %1955

1941:                                             ; preds = %1940
  %1942 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !87
  %1943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1942, ptr noundef @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE)
          to label %1944 unwind label %1933

1944:                                             ; preds = %1941
  %1945 = load ptr, ptr %127, align 8, !tbaa !5
  %1946 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %1945, i32 0, i32 2
  %1947 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %1943, ptr noundef nonnull align 8 dereferenceable(8) %1946)
          to label %1948 unwind label %1933

1948:                                             ; preds = %1944
  %1949 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1947, ptr noundef @.str.25)
          to label %1950 unwind label %1933

1950:                                             ; preds = %1948
  %1951 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1949, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1952 unwind label %1933

1952:                                             ; preds = %1950
  %1953 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1951, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1954 unwind label %1933

1954:                                             ; preds = %1952
  br label %1955

1955:                                             ; preds = %1954, %1940
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956
  br label %1958

1958:                                             ; preds = %1957
  store i8 0, ptr %172, align 1, !tbaa !9
  br label %1928, !llvm.loop !113

1959:                                             ; preds = %1932
  br label %1960

1960:                                             ; preds = %1959
  store i8 0, ptr %172, align 1, !tbaa !9
  br label %1920, !llvm.loop !114

1961:                                             ; preds = %1923
  br label %2216

1962:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 1, ptr %174) #8
  store i8 1, ptr %174, align 1, !tbaa !9
  br label %1963

1963:                                             ; preds = %2005, %1962
  %1964 = load i8, ptr %174, align 1, !tbaa !9, !range !11, !noundef !12
  %1965 = trunc i8 %1964 to i1
  br i1 %1965, label %1967, label %1966

1966:                                             ; preds = %1963
  store i32 223, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #8
  br label %2006

1967:                                             ; preds = %1963
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #8
  %1968 = load ptr, ptr %171, align 8, !tbaa !5
  %1969 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3AST17PathBinding_Value11as_VariableEv(ptr noundef nonnull align 8 dereferenceable(32) %1968)
          to label %1970 unwind label %1976

1970:                                             ; preds = %1967
  store ptr %1969, ptr %175, align 8, !tbaa !5
  br label %1971

1971:                                             ; preds = %2002, %1970
  %1972 = load ptr, ptr %175, align 8, !tbaa !5
  %1973 = load i8, ptr %174, align 1, !tbaa !9, !range !11, !noundef !12
  %1974 = trunc i8 %1973 to i1
  br i1 %1974, label %1980, label %1975

1975:                                             ; preds = %1971
  store i32 226, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #8
  br label %2004

1976:                                             ; preds = %1986, %1967
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %8, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %9, align 4
  br label %2003

1980:                                             ; preds = %1971
  br label %1981

1981:                                             ; preds = %1980
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #8
  %1982 = load ptr, ptr %128, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull align 8 dereferenceable(8) %1982)
          to label %1983 unwind label %1987

1983:                                             ; preds = %1981
  call void @llvm.lifetime.start.p0(i64 1, ptr %178) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef nonnull align 1 dereferenceable(1) %178) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef %177)
          to label %1984 unwind label %1991

1984:                                             ; preds = %1983
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %176) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #8
  %1985 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1985, ptr noundef @.str.5)
          to label %1986 unwind label %1996

1986:                                             ; preds = %1984
  invoke void @__cxa_throw(ptr %1985, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %2583 unwind label %1976

1987:                                             ; preds = %1981
  %1988 = landingpad { ptr, i32 }
          cleanup
  %1989 = extractvalue { ptr, i32 } %1988, 0
  store ptr %1989, ptr %8, align 8
  %1990 = extractvalue { ptr, i32 } %1988, 1
  store i32 %1990, ptr %9, align 4
  br label %1995

1991:                                             ; preds = %1983
  %1992 = landingpad { ptr, i32 }
          cleanup
  %1993 = extractvalue { ptr, i32 } %1992, 0
  store ptr %1993, ptr %8, align 8
  %1994 = extractvalue { ptr, i32 } %1992, 1
  store i32 %1994, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %176) #8
  br label %1995

1995:                                             ; preds = %1991, %1987
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #8
  br label %2003

1996:                                             ; preds = %1984
  %1997 = landingpad { ptr, i32 }
          cleanup
  %1998 = extractvalue { ptr, i32 } %1997, 0
  store ptr %1998, ptr %8, align 8
  %1999 = extractvalue { ptr, i32 } %1997, 1
  store i32 %1999, ptr %9, align 4
  call void @__cxa_free_exception(ptr %1985) #8
  br label %2003

2000:                                             ; No predecessors!
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

2002:                                             ; preds = %2001
  store i8 0, ptr %174, align 1, !tbaa !9
  br label %1971, !llvm.loop !115

2003:                                             ; preds = %1996, %1995, %1976
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #8
  br label %2218

2004:                                             ; preds = %1975
  br label %2005

2005:                                             ; preds = %2004
  store i8 0, ptr %174, align 1, !tbaa !9
  br label %1963, !llvm.loop !116

2006:                                             ; preds = %1966
  br label %2216

2007:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #8
  store i8 1, ptr %179, align 1, !tbaa !9
  br label %2008

2008:                                             ; preds = %2050, %2007
  %2009 = load i8, ptr %179, align 1, !tbaa !9, !range !11, !noundef !12
  %2010 = trunc i8 %2009 to i1
  br i1 %2010, label %2012, label %2011

2011:                                             ; preds = %2008
  store i32 231, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #8
  br label %2051

2012:                                             ; preds = %2008
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #8
  %2013 = load ptr, ptr %171, align 8, !tbaa !5
  %2014 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3AST17PathBinding_Value10as_GenericEv(ptr noundef nonnull align 8 dereferenceable(32) %2013)
          to label %2015 unwind label %2021

2015:                                             ; preds = %2012
  store ptr %2014, ptr %180, align 8, !tbaa !5
  br label %2016

2016:                                             ; preds = %2047, %2015
  %2017 = load ptr, ptr %180, align 8, !tbaa !5
  %2018 = load i8, ptr %179, align 1, !tbaa !9, !range !11, !noundef !12
  %2019 = trunc i8 %2018 to i1
  br i1 %2019, label %2025, label %2020

2020:                                             ; preds = %2016
  store i32 234, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  br label %2049

2021:                                             ; preds = %2031, %2012
  %2022 = landingpad { ptr, i32 }
          cleanup
  %2023 = extractvalue { ptr, i32 } %2022, 0
  store ptr %2023, ptr %8, align 8
  %2024 = extractvalue { ptr, i32 } %2022, 1
  store i32 %2024, ptr %9, align 4
  br label %2048

2025:                                             ; preds = %2016
  br label %2026

2026:                                             ; preds = %2025
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #8
  %2027 = load ptr, ptr %128, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %181, ptr noundef nonnull align 8 dereferenceable(8) %2027)
          to label %2028 unwind label %2032

2028:                                             ; preds = %2026
  call void @llvm.lifetime.start.p0(i64 1, ptr %183) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 1 dereferenceable(1) %183) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %181, ptr noundef %182)
          to label %2029 unwind label %2036

2029:                                             ; preds = %2028
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %183) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #8
  %2030 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2030, ptr noundef @.str.5)
          to label %2031 unwind label %2041

2031:                                             ; preds = %2029
  invoke void @__cxa_throw(ptr %2030, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %2583 unwind label %2021

2032:                                             ; preds = %2026
  %2033 = landingpad { ptr, i32 }
          cleanup
  %2034 = extractvalue { ptr, i32 } %2033, 0
  store ptr %2034, ptr %8, align 8
  %2035 = extractvalue { ptr, i32 } %2033, 1
  store i32 %2035, ptr %9, align 4
  br label %2040

2036:                                             ; preds = %2028
  %2037 = landingpad { ptr, i32 }
          cleanup
  %2038 = extractvalue { ptr, i32 } %2037, 0
  store ptr %2038, ptr %8, align 8
  %2039 = extractvalue { ptr, i32 } %2037, 1
  store i32 %2039, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %183) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #8
  br label %2040

2040:                                             ; preds = %2036, %2032
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #8
  br label %2048

2041:                                             ; preds = %2029
  %2042 = landingpad { ptr, i32 }
          cleanup
  %2043 = extractvalue { ptr, i32 } %2042, 0
  store ptr %2043, ptr %8, align 8
  %2044 = extractvalue { ptr, i32 } %2042, 1
  store i32 %2044, ptr %9, align 4
  call void @__cxa_free_exception(ptr %2030) #8
  br label %2048

2045:                                             ; No predecessors!
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  store i8 0, ptr %179, align 1, !tbaa !9
  br label %2016, !llvm.loop !117

2048:                                             ; preds = %2041, %2040, %2021
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #8
  br label %2218

2049:                                             ; preds = %2020
  br label %2050

2050:                                             ; preds = %2049
  store i8 0, ptr %179, align 1, !tbaa !9
  br label %2008, !llvm.loop !118

2051:                                             ; preds = %2011
  br label %2216

2052:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #8
  store i8 1, ptr %184, align 1, !tbaa !9
  br label %2053

2053:                                             ; preds = %2091, %2052
  %2054 = load i8, ptr %184, align 1, !tbaa !9, !range !11, !noundef !12
  %2055 = trunc i8 %2054 to i1
  br i1 %2055, label %2057, label %2056

2056:                                             ; preds = %2053
  store i32 239, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #8
  br label %2092

2057:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #8
  %2058 = load ptr, ptr %171, align 8, !tbaa !5
  %2059 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Value9as_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %2058)
          to label %2060 unwind label %2066

2060:                                             ; preds = %2057
  store ptr %2059, ptr %185, align 8, !tbaa !5
  br label %2061

2061:                                             ; preds = %2084, %2060
  %2062 = load ptr, ptr %185, align 8, !tbaa !5
  %2063 = load i8, ptr %184, align 1, !tbaa !9, !range !11, !noundef !12
  %2064 = trunc i8 %2063 to i1
  br i1 %2064, label %2070, label %2065

2065:                                             ; preds = %2061
  store i32 242, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #8
  br label %2090

2066:                                             ; preds = %2070, %2057
  %2067 = landingpad { ptr, i32 }
          cleanup
  %2068 = extractvalue { ptr, i32 } %2067, 0
  store ptr %2068, ptr %8, align 8
  %2069 = extractvalue { ptr, i32 } %2067, 1
  store i32 %2069, ptr %9, align 4
  br label %2089

2070:                                             ; preds = %2061
  %2071 = load ptr, ptr %128, align 8, !tbaa !5
  %2072 = load ptr, ptr %4, align 8, !tbaa !5
  %2073 = load ptr, ptr %127, align 8, !tbaa !5
  %2074 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2073, i32 0, i32 2
  %2075 = load ptr, ptr %123, align 8, !tbaa !5
  %2076 = getelementptr inbounds %"struct.AST::Named", ptr %2075, i32 0, i32 2
  %2077 = load ptr, ptr %132, align 8, !tbaa !5
  %2078 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2077, i32 0, i32 0
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %186, ptr noundef nonnull align 8 dereferenceable(64) %2078)
          to label %2079 unwind label %2066

2079:                                             ; preds = %2070
  %2080 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %2081 = trunc i8 %2080 to i1
  %2082 = xor i1 %2081, true
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2071, ptr noundef nonnull align 8 dereferenceable(480) %2072, ptr noundef nonnull align 8 dereferenceable(8) %2074, ptr noundef nonnull align 8 dereferenceable(36) %2076, ptr noundef %186, i1 noundef zeroext %2082)
          to label %2083 unwind label %2085

2083:                                             ; preds = %2079
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %186) #8
  br label %2084

2084:                                             ; preds = %2083
  store i8 0, ptr %184, align 1, !tbaa !9
  br label %2061, !llvm.loop !119

2085:                                             ; preds = %2079
  %2086 = landingpad { ptr, i32 }
          cleanup
  %2087 = extractvalue { ptr, i32 } %2086, 0
  store ptr %2087, ptr %8, align 8
  %2088 = extractvalue { ptr, i32 } %2086, 1
  store i32 %2088, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %186) #8
  br label %2089

2089:                                             ; preds = %2085, %2066
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #8
  br label %2218

2090:                                             ; preds = %2065
  br label %2091

2091:                                             ; preds = %2090
  store i8 0, ptr %184, align 1, !tbaa !9
  br label %2053, !llvm.loop !120

2092:                                             ; preds = %2056
  br label %2216

2093:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #8
  store i8 1, ptr %187, align 1, !tbaa !9
  br label %2094

2094:                                             ; preds = %2132, %2093
  %2095 = load i8, ptr %187, align 1, !tbaa !9, !range !11, !noundef !12
  %2096 = trunc i8 %2095 to i1
  br i1 %2096, label %2098, label %2097

2097:                                             ; preds = %2094
  store i32 245, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #8
  br label %2133

2098:                                             ; preds = %2094
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #8
  %2099 = load ptr, ptr %171, align 8, !tbaa !5
  %2100 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST17PathBinding_Value10as_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %2099)
          to label %2101 unwind label %2107

2101:                                             ; preds = %2098
  store ptr %2100, ptr %188, align 8, !tbaa !5
  br label %2102

2102:                                             ; preds = %2125, %2101
  %2103 = load ptr, ptr %188, align 8, !tbaa !5
  %2104 = load i8, ptr %187, align 1, !tbaa !9, !range !11, !noundef !12
  %2105 = trunc i8 %2104 to i1
  br i1 %2105, label %2111, label %2106

2106:                                             ; preds = %2102
  store i32 248, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #8
  br label %2131

2107:                                             ; preds = %2111, %2098
  %2108 = landingpad { ptr, i32 }
          cleanup
  %2109 = extractvalue { ptr, i32 } %2108, 0
  store ptr %2109, ptr %8, align 8
  %2110 = extractvalue { ptr, i32 } %2108, 1
  store i32 %2110, ptr %9, align 4
  br label %2130

2111:                                             ; preds = %2102
  %2112 = load ptr, ptr %128, align 8, !tbaa !5
  %2113 = load ptr, ptr %4, align 8, !tbaa !5
  %2114 = load ptr, ptr %127, align 8, !tbaa !5
  %2115 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2114, i32 0, i32 2
  %2116 = load ptr, ptr %123, align 8, !tbaa !5
  %2117 = getelementptr inbounds %"struct.AST::Named", ptr %2116, i32 0, i32 2
  %2118 = load ptr, ptr %132, align 8, !tbaa !5
  %2119 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2118, i32 0, i32 0
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %189, ptr noundef nonnull align 8 dereferenceable(64) %2119)
          to label %2120 unwind label %2107

2120:                                             ; preds = %2111
  %2121 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %2122 = trunc i8 %2121 to i1
  %2123 = xor i1 %2122, true
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2112, ptr noundef nonnull align 8 dereferenceable(480) %2113, ptr noundef nonnull align 8 dereferenceable(8) %2115, ptr noundef nonnull align 8 dereferenceable(36) %2117, ptr noundef %189, i1 noundef zeroext %2123)
          to label %2124 unwind label %2126

2124:                                             ; preds = %2120
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %189) #8
  br label %2125

2125:                                             ; preds = %2124
  store i8 0, ptr %187, align 1, !tbaa !9
  br label %2102, !llvm.loop !121

2126:                                             ; preds = %2120
  %2127 = landingpad { ptr, i32 }
          cleanup
  %2128 = extractvalue { ptr, i32 } %2127, 0
  store ptr %2128, ptr %8, align 8
  %2129 = extractvalue { ptr, i32 } %2127, 1
  store i32 %2129, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %189) #8
  br label %2130

2130:                                             ; preds = %2126, %2107
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #8
  br label %2218

2131:                                             ; preds = %2106
  br label %2132

2132:                                             ; preds = %2131
  store i8 0, ptr %187, align 1, !tbaa !9
  br label %2094, !llvm.loop !122

2133:                                             ; preds = %2097
  br label %2216

2134:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 1, ptr %190) #8
  store i8 1, ptr %190, align 1, !tbaa !9
  br label %2135

2135:                                             ; preds = %2173, %2134
  %2136 = load i8, ptr %190, align 1, !tbaa !9, !range !11, !noundef !12
  %2137 = trunc i8 %2136 to i1
  br i1 %2137, label %2139, label %2138

2138:                                             ; preds = %2135
  store i32 251, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %190) #8
  br label %2174

2139:                                             ; preds = %2135
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #8
  %2140 = load ptr, ptr %171, align 8, !tbaa !5
  %2141 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Value9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(32) %2140)
          to label %2142 unwind label %2148

2142:                                             ; preds = %2139
  store ptr %2141, ptr %191, align 8, !tbaa !5
  br label %2143

2143:                                             ; preds = %2166, %2142
  %2144 = load ptr, ptr %191, align 8, !tbaa !5
  %2145 = load i8, ptr %190, align 1, !tbaa !9, !range !11, !noundef !12
  %2146 = trunc i8 %2145 to i1
  br i1 %2146, label %2152, label %2147

2147:                                             ; preds = %2143
  store i32 254, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #8
  br label %2172

2148:                                             ; preds = %2152, %2139
  %2149 = landingpad { ptr, i32 }
          cleanup
  %2150 = extractvalue { ptr, i32 } %2149, 0
  store ptr %2150, ptr %8, align 8
  %2151 = extractvalue { ptr, i32 } %2149, 1
  store i32 %2151, ptr %9, align 4
  br label %2171

2152:                                             ; preds = %2143
  %2153 = load ptr, ptr %128, align 8, !tbaa !5
  %2154 = load ptr, ptr %4, align 8, !tbaa !5
  %2155 = load ptr, ptr %127, align 8, !tbaa !5
  %2156 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2155, i32 0, i32 2
  %2157 = load ptr, ptr %123, align 8, !tbaa !5
  %2158 = getelementptr inbounds %"struct.AST::Named", ptr %2157, i32 0, i32 2
  %2159 = load ptr, ptr %132, align 8, !tbaa !5
  %2160 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2159, i32 0, i32 0
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %192, ptr noundef nonnull align 8 dereferenceable(64) %2160)
          to label %2161 unwind label %2148

2161:                                             ; preds = %2152
  %2162 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %2163 = trunc i8 %2162 to i1
  %2164 = xor i1 %2163, true
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2153, ptr noundef nonnull align 8 dereferenceable(480) %2154, ptr noundef nonnull align 8 dereferenceable(8) %2156, ptr noundef nonnull align 8 dereferenceable(36) %2158, ptr noundef %192, i1 noundef zeroext %2164)
          to label %2165 unwind label %2167

2165:                                             ; preds = %2161
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %192) #8
  br label %2166

2166:                                             ; preds = %2165
  store i8 0, ptr %190, align 1, !tbaa !9
  br label %2143, !llvm.loop !123

2167:                                             ; preds = %2161
  %2168 = landingpad { ptr, i32 }
          cleanup
  %2169 = extractvalue { ptr, i32 } %2168, 0
  store ptr %2169, ptr %8, align 8
  %2170 = extractvalue { ptr, i32 } %2168, 1
  store i32 %2170, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %192) #8
  br label %2171

2171:                                             ; preds = %2167, %2148
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %190) #8
  br label %2218

2172:                                             ; preds = %2147
  br label %2173

2173:                                             ; preds = %2172
  store i8 0, ptr %190, align 1, !tbaa !9
  br label %2135, !llvm.loop !124

2174:                                             ; preds = %2138
  br label %2216

2175:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 1, ptr %193) #8
  store i8 1, ptr %193, align 1, !tbaa !9
  br label %2176

2176:                                             ; preds = %2214, %2175
  %2177 = load i8, ptr %193, align 1, !tbaa !9, !range !11, !noundef !12
  %2178 = trunc i8 %2177 to i1
  br i1 %2178, label %2180, label %2179

2179:                                             ; preds = %2176
  store i32 257, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #8
  br label %2215

2180:                                             ; preds = %2176
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #8
  %2181 = load ptr, ptr %171, align 8, !tbaa !5
  %2182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST17PathBinding_Value11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(32) %2181)
          to label %2183 unwind label %2189

2183:                                             ; preds = %2180
  store ptr %2182, ptr %194, align 8, !tbaa !5
  br label %2184

2184:                                             ; preds = %2207, %2183
  %2185 = load ptr, ptr %194, align 8, !tbaa !5
  %2186 = load i8, ptr %193, align 1, !tbaa !9, !range !11, !noundef !12
  %2187 = trunc i8 %2186 to i1
  br i1 %2187, label %2193, label %2188

2188:                                             ; preds = %2184
  store i32 260, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #8
  br label %2213

2189:                                             ; preds = %2193, %2180
  %2190 = landingpad { ptr, i32 }
          cleanup
  %2191 = extractvalue { ptr, i32 } %2190, 0
  store ptr %2191, ptr %8, align 8
  %2192 = extractvalue { ptr, i32 } %2190, 1
  store i32 %2192, ptr %9, align 4
  br label %2212

2193:                                             ; preds = %2184
  %2194 = load ptr, ptr %128, align 8, !tbaa !5
  %2195 = load ptr, ptr %4, align 8, !tbaa !5
  %2196 = load ptr, ptr %127, align 8, !tbaa !5
  %2197 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2196, i32 0, i32 2
  %2198 = load ptr, ptr %123, align 8, !tbaa !5
  %2199 = getelementptr inbounds %"struct.AST::Named", ptr %2198, i32 0, i32 2
  %2200 = load ptr, ptr %132, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2200, i32 0, i32 0
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %195, ptr noundef nonnull align 8 dereferenceable(64) %2201)
          to label %2202 unwind label %2189

2202:                                             ; preds = %2193
  %2203 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %2204 = trunc i8 %2203 to i1
  %2205 = xor i1 %2204, true
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2194, ptr noundef nonnull align 8 dereferenceable(480) %2195, ptr noundef nonnull align 8 dereferenceable(8) %2197, ptr noundef nonnull align 8 dereferenceable(36) %2199, ptr noundef %195, i1 noundef zeroext %2205)
          to label %2206 unwind label %2208

2206:                                             ; preds = %2202
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %195) #8
  br label %2207

2207:                                             ; preds = %2206
  store i8 0, ptr %193, align 1, !tbaa !9
  br label %2184, !llvm.loop !125

2208:                                             ; preds = %2202
  %2209 = landingpad { ptr, i32 }
          cleanup
  %2210 = extractvalue { ptr, i32 } %2209, 0
  store ptr %2210, ptr %8, align 8
  %2211 = extractvalue { ptr, i32 } %2209, 1
  store i32 %2211, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %195) #8
  br label %2212

2212:                                             ; preds = %2208, %2189
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #8
  br label %2218

2213:                                             ; preds = %2188
  br label %2214

2214:                                             ; preds = %2213
  store i8 0, ptr %193, align 1, !tbaa !9
  br label %2176, !llvm.loop !126

2215:                                             ; preds = %2179
  br label %2216

2216:                                             ; preds = %2215, %2174, %2133, %2092, %2051, %2006, %1961, %1913
  br label %2217

2217:                                             ; preds = %2216
  store i8 0, ptr %170, align 1, !tbaa !9
  br label %1906, !llvm.loop !127

2218:                                             ; preds = %2212, %2171, %2130, %2089, %2048, %2003, %1933, %1914
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #8
  br label %2476

2219:                                             ; preds = %1909
  br label %2220

2220:                                             ; preds = %2219
  store i8 0, ptr %170, align 1, !tbaa !9
  br label %1898, !llvm.loop !128

2221:                                             ; preds = %1901
  call void @llvm.lifetime.start.p0(i64 1, ptr %196) #8
  store i8 1, ptr %196, align 1, !tbaa !9
  br label %2222

2222:                                             ; preds = %2474, %2221
  %2223 = load i8, ptr %196, align 1, !tbaa !9, !range !11, !noundef !12
  %2224 = trunc i8 %2223 to i1
  br i1 %2224, label %2226, label %2225

2225:                                             ; preds = %2222
  store i32 263, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %196) #8
  br label %2475

2226:                                             ; preds = %2222
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #8
  %2227 = load ptr, ptr %132, align 8, !tbaa !5
  %2228 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2227, i32 0, i32 2
  %2229 = getelementptr inbounds %"struct.AST::PathBinding.62", ptr %2228, i32 0, i32 1
  store ptr %2229, ptr %197, align 8, !tbaa !5
  br label %2230

2230:                                             ; preds = %2471, %2226
  %2231 = load i8, ptr %196, align 1, !tbaa !9, !range !11, !noundef !12
  %2232 = trunc i8 %2231 to i1
  br i1 %2232, label %2234, label %2233

2233:                                             ; preds = %2230
  store i32 266, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #8
  br label %2473

2234:                                             ; preds = %2230
  %2235 = load ptr, ptr %197, align 8, !tbaa !5
  %2236 = invoke noundef i32 @_ZNK3AST17PathBinding_Macro3tagEv(ptr noundef nonnull align 8 dereferenceable(24) %2235)
          to label %2237 unwind label %2238

2237:                                             ; preds = %2234
  switch i32 %2236, label %2470 [
    i32 0, label %2242
    i32 1, label %2243
    i32 5, label %2286
    i32 4, label %2327
    i32 3, label %2368
    i32 2, label %2419
  ]

2238:                                             ; preds = %2234
  %2239 = landingpad { ptr, i32 }
          cleanup
  %2240 = extractvalue { ptr, i32 } %2239, 0
  store ptr %2240, ptr %8, align 8
  %2241 = extractvalue { ptr, i32 } %2239, 1
  store i32 %2241, ptr %9, align 4
  br label %2472

2242:                                             ; preds = %2237
  call void @__assert_fail(ptr noundef @.str.22, ptr noundef @.str.21, i32 noundef 288, ptr noundef @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #9
  unreachable

2243:                                             ; preds = %2237
  call void @llvm.lifetime.start.p0(i64 1, ptr %198) #8
  store i8 1, ptr %198, align 1, !tbaa !9
  br label %2244

2244:                                             ; preds = %2284, %2243
  %2245 = load i8, ptr %198, align 1, !tbaa !9, !range !11, !noundef !12
  %2246 = trunc i8 %2245 to i1
  br i1 %2246, label %2248, label %2247

2247:                                             ; preds = %2244
  store i32 270, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #8
  br label %2285

2248:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #8
  %2249 = load ptr, ptr %197, align 8, !tbaa !5
  %2250 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST17PathBinding_Macro10as_UnboundEv(ptr noundef nonnull align 8 dereferenceable(24) %2249)
          to label %2251 unwind label %2257

2251:                                             ; preds = %2248
  store ptr %2250, ptr %199, align 8, !tbaa !5
  br label %2252

2252:                                             ; preds = %2282, %2251
  %2253 = load ptr, ptr %199, align 8, !tbaa !5
  %2254 = load i8, ptr %198, align 1, !tbaa !9, !range !11, !noundef !12
  %2255 = trunc i8 %2254 to i1
  br i1 %2255, label %2261, label %2256

2256:                                             ; preds = %2252
  store i32 273, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #8
  br label %2283

2257:                                             ; preds = %2276, %2274, %2272, %2268, %2265, %2262, %2248
  %2258 = landingpad { ptr, i32 }
          cleanup
  %2259 = extractvalue { ptr, i32 } %2258, 0
  store ptr %2259, ptr %8, align 8
  %2260 = extractvalue { ptr, i32 } %2258, 1
  store i32 %2260, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #8
  br label %2472

2261:                                             ; preds = %2252
  br label %2262

2262:                                             ; preds = %2261
  %2263 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2264 unwind label %2257

2264:                                             ; preds = %2262
  br i1 %2263, label %2265, label %2279

2265:                                             ; preds = %2264
  %2266 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !87
  %2267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2266, ptr noundef @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE)
          to label %2268 unwind label %2257

2268:                                             ; preds = %2265
  %2269 = load ptr, ptr %127, align 8, !tbaa !5
  %2270 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2269, i32 0, i32 2
  %2271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2267, ptr noundef nonnull align 8 dereferenceable(8) %2270)
          to label %2272 unwind label %2257

2272:                                             ; preds = %2268
  %2273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2271, ptr noundef @.str.26)
          to label %2274 unwind label %2257

2274:                                             ; preds = %2272
  %2275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2273, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2276 unwind label %2257

2276:                                             ; preds = %2274
  %2277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2275, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2278 unwind label %2257

2278:                                             ; preds = %2276
  br label %2279

2279:                                             ; preds = %2278, %2264
  br label %2280

2280:                                             ; preds = %2279
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  store i8 0, ptr %198, align 1, !tbaa !9
  br label %2252, !llvm.loop !129

2283:                                             ; preds = %2256
  br label %2284

2284:                                             ; preds = %2283
  store i8 0, ptr %198, align 1, !tbaa !9
  br label %2244, !llvm.loop !130

2285:                                             ; preds = %2247
  br label %2470

2286:                                             ; preds = %2237
  call void @llvm.lifetime.start.p0(i64 1, ptr %200) #8
  store i8 1, ptr %200, align 1, !tbaa !9
  br label %2287

2287:                                             ; preds = %2325, %2286
  %2288 = load i8, ptr %200, align 1, !tbaa !9, !range !11, !noundef !12
  %2289 = trunc i8 %2288 to i1
  br i1 %2289, label %2291, label %2290

2290:                                             ; preds = %2287
  store i32 278, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #8
  br label %2326

2291:                                             ; preds = %2287
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #8
  %2292 = load ptr, ptr %197, align 8, !tbaa !5
  %2293 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(24) %2292)
          to label %2294 unwind label %2300

2294:                                             ; preds = %2291
  store ptr %2293, ptr %201, align 8, !tbaa !5
  br label %2295

2295:                                             ; preds = %2318, %2294
  %2296 = load ptr, ptr %201, align 8, !tbaa !5
  %2297 = load i8, ptr %200, align 1, !tbaa !9, !range !11, !noundef !12
  %2298 = trunc i8 %2297 to i1
  br i1 %2298, label %2304, label %2299

2299:                                             ; preds = %2295
  store i32 281, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #8
  br label %2324

2300:                                             ; preds = %2304, %2291
  %2301 = landingpad { ptr, i32 }
          cleanup
  %2302 = extractvalue { ptr, i32 } %2301, 0
  store ptr %2302, ptr %8, align 8
  %2303 = extractvalue { ptr, i32 } %2301, 1
  store i32 %2303, ptr %9, align 4
  br label %2323

2304:                                             ; preds = %2295
  %2305 = load ptr, ptr %128, align 8, !tbaa !5
  %2306 = load ptr, ptr %4, align 8, !tbaa !5
  %2307 = load ptr, ptr %127, align 8, !tbaa !5
  %2308 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2307, i32 0, i32 2
  %2309 = load ptr, ptr %123, align 8, !tbaa !5
  %2310 = getelementptr inbounds %"struct.AST::Named", ptr %2309, i32 0, i32 2
  %2311 = load ptr, ptr %132, align 8, !tbaa !5
  %2312 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2311, i32 0, i32 2
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(240) %202, ptr noundef nonnull align 8 dereferenceable(56) %2312)
          to label %2313 unwind label %2300

2313:                                             ; preds = %2304
  %2314 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %2315 = trunc i8 %2314 to i1
  %2316 = xor i1 %2315, true
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2305, ptr noundef nonnull align 8 dereferenceable(480) %2306, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %2308, ptr noundef nonnull align 8 dereferenceable(36) %2310, ptr noundef %202, i1 noundef zeroext %2316)
          to label %2317 unwind label %2319

2317:                                             ; preds = %2313
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %202) #8
  br label %2318

2318:                                             ; preds = %2317
  store i8 0, ptr %200, align 1, !tbaa !9
  br label %2295, !llvm.loop !131

2319:                                             ; preds = %2313
  %2320 = landingpad { ptr, i32 }
          cleanup
  %2321 = extractvalue { ptr, i32 } %2320, 0
  store ptr %2321, ptr %8, align 8
  %2322 = extractvalue { ptr, i32 } %2320, 1
  store i32 %2322, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %202) #8
  br label %2323

2323:                                             ; preds = %2319, %2300
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #8
  br label %2472

2324:                                             ; preds = %2299
  br label %2325

2325:                                             ; preds = %2324
  store i8 0, ptr %200, align 1, !tbaa !9
  br label %2287, !llvm.loop !132

2326:                                             ; preds = %2290
  br label %2470

2327:                                             ; preds = %2237
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #8
  store i8 1, ptr %203, align 1, !tbaa !9
  br label %2328

2328:                                             ; preds = %2366, %2327
  %2329 = load i8, ptr %203, align 1, !tbaa !9, !range !11, !noundef !12
  %2330 = trunc i8 %2329 to i1
  br i1 %2330, label %2332, label %2331

2331:                                             ; preds = %2328
  store i32 284, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #8
  br label %2367

2332:                                             ; preds = %2328
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #8
  %2333 = load ptr, ptr %197, align 8, !tbaa !5
  %2334 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(24) %2333)
          to label %2335 unwind label %2341

2335:                                             ; preds = %2332
  store ptr %2334, ptr %204, align 8, !tbaa !5
  br label %2336

2336:                                             ; preds = %2359, %2335
  %2337 = load ptr, ptr %204, align 8, !tbaa !5
  %2338 = load i8, ptr %203, align 1, !tbaa !9, !range !11, !noundef !12
  %2339 = trunc i8 %2338 to i1
  br i1 %2339, label %2345, label %2340

2340:                                             ; preds = %2336
  store i32 287, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #8
  br label %2365

2341:                                             ; preds = %2345, %2332
  %2342 = landingpad { ptr, i32 }
          cleanup
  %2343 = extractvalue { ptr, i32 } %2342, 0
  store ptr %2343, ptr %8, align 8
  %2344 = extractvalue { ptr, i32 } %2342, 1
  store i32 %2344, ptr %9, align 4
  br label %2364

2345:                                             ; preds = %2336
  %2346 = load ptr, ptr %128, align 8, !tbaa !5
  %2347 = load ptr, ptr %4, align 8, !tbaa !5
  %2348 = load ptr, ptr %127, align 8, !tbaa !5
  %2349 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %2348, i32 0, i32 2
  %2350 = load ptr, ptr %123, align 8, !tbaa !5
  %2351 = getelementptr inbounds %"struct.AST::Named", ptr %2350, i32 0, i32 2
  %2352 = load ptr, ptr %132, align 8, !tbaa !5
  %2353 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %2352, i32 0, i32 2
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(240) %205, ptr noundef nonnull align 8 dereferenceable(56) %2353)
          to label %2354 unwind label %2341

2354:                                             ; preds = %2345
  %2355 = load i8, ptr %133, align 1, !tbaa !9, !range !11, !noundef !12
  %2356 = trunc i8 %2355 to i1
  %2357 = xor i1 %2356, true
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2346, ptr noundef nonnull align 8 dereferenceable(480) %2347, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %2349, ptr noundef nonnull align 8 dereferenceable(36) %2351, ptr noundef %205, i1 noundef zeroext %2357)
          to label %2358 unwind label %2360

2358:                                             ; preds = %2354
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %205) #8
  br label %2359

2359:                                             ; preds = %2358
  store i8 0, ptr %203, align 1, !tbaa !9
  br label %2336, !llvm.loop !133

2360:                                             ; preds = %2354
  %2361 = landingpad { ptr, i32 }
          cleanup
  %2362 = extractvalue { ptr, i32 } %2361, 0
  store ptr %2362, ptr %8, align 8
  %2363 = extractvalue { ptr, i32 } %2361, 1
  store i32 %2363, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %205) #8
  br label %2364

2364:                                             ; preds = %2360, %2341
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #8
  br label %2472

2365:                                             ; preds = %2340
  br label %2366

2366:                                             ; preds = %2365
  store i8 0, ptr %203, align 1, !tbaa !9
  br label %2328, !llvm.loop !134

2367:                                             ; preds = %2331
  br label %2470

2368:                                             ; preds = %2237
  call void @llvm.lifetime.start.p0(i64 1, ptr %206) #8
  store i8 1, ptr %206, align 1, !tbaa !9
  br label %2369

2369:                                             ; preds = %2417, %2368
  %2370 = load i8, ptr %206, align 1, !tbaa !9, !range !11, !noundef !12
  %2371 = trunc i8 %2370 to i1
  br i1 %2371, label %2373, label %2372

2372:                                             ; preds = %2369
  store i32 290, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #8
  br label %2418

2373:                                             ; preds = %2369
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #8
  %2374 = load ptr, ptr %197, align 8, !tbaa !5
  %2375 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro21as_ProcMacroAttributeEv(ptr noundef nonnull align 8 dereferenceable(24) %2374)
          to label %2376 unwind label %2382

2376:                                             ; preds = %2373
  store ptr %2375, ptr %207, align 8, !tbaa !5
  br label %2377

2377:                                             ; preds = %2414, %2376
  %2378 = load ptr, ptr %207, align 8, !tbaa !5
  %2379 = load i8, ptr %206, align 1, !tbaa !9, !range !11, !noundef !12
  %2380 = trunc i8 %2379 to i1
  br i1 %2380, label %2386, label %2381

2381:                                             ; preds = %2377
  store i32 293, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #8
  br label %2416

2382:                                             ; preds = %2373
  %2383 = landingpad { ptr, i32 }
          cleanup
  %2384 = extractvalue { ptr, i32 } %2383, 0
  store ptr %2384, ptr %8, align 8
  %2385 = extractvalue { ptr, i32 } %2383, 1
  store i32 %2385, ptr %9, align 4
  br label %2415

2386:                                             ; preds = %2377
  br label %2387

2387:                                             ; preds = %2386
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #8
  store ptr @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE, ptr %208, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #8
  %2388 = load ptr, ptr %128, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %209, ptr noundef nonnull align 8 dereferenceable(8) %2388)
          to label %2389 unwind label %2394

2389:                                             ; preds = %2387
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #8
  %2390 = getelementptr inbounds %class.anon.241, ptr %211, i32 0, i32 0
  store ptr %208, ptr %2390, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 8 dereferenceable(8) %211) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %209, ptr noundef %210)
          to label %2391 unwind label %2398

2391:                                             ; preds = %2389
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #8
  %2392 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2392, ptr noundef @.str.27)
          to label %2393 unwind label %2403

2393:                                             ; preds = %2391
  invoke void @__cxa_throw(ptr %2392, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %2583 unwind label %2407

2394:                                             ; preds = %2387
  %2395 = landingpad { ptr, i32 }
          cleanup
  %2396 = extractvalue { ptr, i32 } %2395, 0
  store ptr %2396, ptr %8, align 8
  %2397 = extractvalue { ptr, i32 } %2395, 1
  store i32 %2397, ptr %9, align 4
  br label %2402

2398:                                             ; preds = %2389
  %2399 = landingpad { ptr, i32 }
          cleanup
  %2400 = extractvalue { ptr, i32 } %2399, 0
  store ptr %2400, ptr %8, align 8
  %2401 = extractvalue { ptr, i32 } %2399, 1
  store i32 %2401, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #8
  br label %2402

2402:                                             ; preds = %2398, %2394
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #8
  br label %2411

2403:                                             ; preds = %2391
  %2404 = landingpad { ptr, i32 }
          cleanup
  %2405 = extractvalue { ptr, i32 } %2404, 0
  store ptr %2405, ptr %8, align 8
  %2406 = extractvalue { ptr, i32 } %2404, 1
  store i32 %2406, ptr %9, align 4
  call void @__cxa_free_exception(ptr %2392) #8
  br label %2411

2407:                                             ; preds = %2393
  %2408 = landingpad { ptr, i32 }
          cleanup
  %2409 = extractvalue { ptr, i32 } %2408, 0
  store ptr %2409, ptr %8, align 8
  %2410 = extractvalue { ptr, i32 } %2408, 1
  store i32 %2410, ptr %9, align 4
  br label %2411

2411:                                             ; preds = %2407, %2403, %2402
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #8
  br label %2415

2412:                                             ; No predecessors!
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413
  store i8 0, ptr %206, align 1, !tbaa !9
  br label %2377, !llvm.loop !135

2415:                                             ; preds = %2411, %2382
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #8
  br label %2472

2416:                                             ; preds = %2381
  br label %2417

2417:                                             ; preds = %2416
  store i8 0, ptr %206, align 1, !tbaa !9
  br label %2369, !llvm.loop !136

2418:                                             ; preds = %2372
  br label %2470

2419:                                             ; preds = %2237
  call void @llvm.lifetime.start.p0(i64 1, ptr %212) #8
  store i8 1, ptr %212, align 1, !tbaa !9
  br label %2420

2420:                                             ; preds = %2468, %2419
  %2421 = load i8, ptr %212, align 1, !tbaa !9, !range !11, !noundef !12
  %2422 = trunc i8 %2421 to i1
  br i1 %2422, label %2424, label %2423

2423:                                             ; preds = %2420
  store i32 298, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #8
  br label %2469

2424:                                             ; preds = %2420
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #8
  %2425 = load ptr, ptr %197, align 8, !tbaa !5
  %2426 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro18as_ProcMacroDeriveEv(ptr noundef nonnull align 8 dereferenceable(24) %2425)
          to label %2427 unwind label %2433

2427:                                             ; preds = %2424
  store ptr %2426, ptr %213, align 8, !tbaa !5
  br label %2428

2428:                                             ; preds = %2465, %2427
  %2429 = load ptr, ptr %213, align 8, !tbaa !5
  %2430 = load i8, ptr %212, align 1, !tbaa !9, !range !11, !noundef !12
  %2431 = trunc i8 %2430 to i1
  br i1 %2431, label %2437, label %2432

2432:                                             ; preds = %2428
  store i32 301, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  br label %2467

2433:                                             ; preds = %2424
  %2434 = landingpad { ptr, i32 }
          cleanup
  %2435 = extractvalue { ptr, i32 } %2434, 0
  store ptr %2435, ptr %8, align 8
  %2436 = extractvalue { ptr, i32 } %2434, 1
  store i32 %2436, ptr %9, align 4
  br label %2466

2437:                                             ; preds = %2428
  br label %2438

2438:                                             ; preds = %2437
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #8
  store ptr @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE, ptr %214, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #8
  %2439 = load ptr, ptr %128, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull align 8 dereferenceable(8) %2439)
          to label %2440 unwind label %2445

2440:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #8
  %2441 = getelementptr inbounds %class.anon.242, ptr %217, i32 0, i32 0
  store ptr %214, ptr %2441, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef nonnull align 8 dereferenceable(8) %217) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef %216)
          to label %2442 unwind label %2449

2442:                                             ; preds = %2440
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #8
  %2443 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %2443, ptr noundef @.str.27)
          to label %2444 unwind label %2454

2444:                                             ; preds = %2442
  invoke void @__cxa_throw(ptr %2443, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %2583 unwind label %2458

2445:                                             ; preds = %2438
  %2446 = landingpad { ptr, i32 }
          cleanup
  %2447 = extractvalue { ptr, i32 } %2446, 0
  store ptr %2447, ptr %8, align 8
  %2448 = extractvalue { ptr, i32 } %2446, 1
  store i32 %2448, ptr %9, align 4
  br label %2453

2449:                                             ; preds = %2440
  %2450 = landingpad { ptr, i32 }
          cleanup
  %2451 = extractvalue { ptr, i32 } %2450, 0
  store ptr %2451, ptr %8, align 8
  %2452 = extractvalue { ptr, i32 } %2450, 1
  store i32 %2452, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #8
  br label %2453

2453:                                             ; preds = %2449, %2445
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #8
  br label %2462

2454:                                             ; preds = %2442
  %2455 = landingpad { ptr, i32 }
          cleanup
  %2456 = extractvalue { ptr, i32 } %2455, 0
  store ptr %2456, ptr %8, align 8
  %2457 = extractvalue { ptr, i32 } %2455, 1
  store i32 %2457, ptr %9, align 4
  call void @__cxa_free_exception(ptr %2443) #8
  br label %2462

2458:                                             ; preds = %2444
  %2459 = landingpad { ptr, i32 }
          cleanup
  %2460 = extractvalue { ptr, i32 } %2459, 0
  store ptr %2460, ptr %8, align 8
  %2461 = extractvalue { ptr, i32 } %2459, 1
  store i32 %2461, ptr %9, align 4
  br label %2462

2462:                                             ; preds = %2458, %2454, %2453
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #8
  br label %2466

2463:                                             ; No predecessors!
  br label %2464

2464:                                             ; preds = %2463
  br label %2465

2465:                                             ; preds = %2464
  store i8 0, ptr %212, align 1, !tbaa !9
  br label %2428, !llvm.loop !137

2466:                                             ; preds = %2462, %2433
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #8
  br label %2472

2467:                                             ; preds = %2432
  br label %2468

2468:                                             ; preds = %2467
  store i8 0, ptr %212, align 1, !tbaa !9
  br label %2420, !llvm.loop !138

2469:                                             ; preds = %2423
  br label %2470

2470:                                             ; preds = %2469, %2418, %2367, %2326, %2285, %2237
  br label %2471

2471:                                             ; preds = %2470
  store i8 0, ptr %196, align 1, !tbaa !9
  br label %2230, !llvm.loop !139

2472:                                             ; preds = %2466, %2415, %2364, %2323, %2257, %2238
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %196) #8
  br label %2476

2473:                                             ; preds = %2233
  br label %2474

2474:                                             ; preds = %2473
  store i8 0, ptr %196, align 1, !tbaa !9
  br label %2222, !llvm.loop !140

2475:                                             ; preds = %2225
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #8
  br label %2486

2476:                                             ; preds = %2472, %2218, %1894
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  br label %2477

2477:                                             ; preds = %2476, %1404, %1403, %1391
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #8
  br label %2489

2478:                                             ; preds = %1341
  %2479 = load ptr, ptr %123, align 8, !tbaa !5
  %2480 = getelementptr inbounds %"struct.AST::Named", ptr %2479, i32 0, i32 2
  %2481 = invoke noundef i32 @_ZNK3AST10Visibility2tyEv(ptr noundef nonnull align 8 dereferenceable(36) %2480)
          to label %2482 unwind label %1366

2482:                                             ; preds = %2478
  %2483 = icmp ne i32 %2481, 0
  br i1 %2483, label %2484, label %2485

2484:                                             ; preds = %2482
  store i8 1, ptr %118, align 1, !tbaa !9
  br label %2485

2485:                                             ; preds = %2484, %2482
  br label %2486

2486:                                             ; preds = %2485, %2475
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  br label %2487

2487:                                             ; preds = %2486
  %2488 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %125) #8
  br label %1329

2489:                                             ; preds = %2477, %1366
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  br label %2490

2490:                                             ; preds = %2489, %1332
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  br label %2500

2491:                                             ; preds = %1331
  store i32 0, ptr %13, align 4
  br label %2492

2492:                                             ; preds = %2491, %1312
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  %2493 = load i32, ptr %13, align 4
  switch i32 %2493, label %2495 [
    i32 0, label %2494
  ]

2494:                                             ; preds = %2492
  store i32 0, ptr %13, align 4
  br label %2495

2495:                                             ; preds = %2494, %2492
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #8
  %2496 = load i32, ptr %13, align 4
  switch i32 %2496, label %2583 [
    i32 0, label %2497
    i32 124, label %2498
  ]

2497:                                             ; preds = %2495
  br label %2498

2498:                                             ; preds = %2497, %2495
  %2499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %120) #8
  br label %1301

2500:                                             ; preds = %2490, %1313
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #8
  br label %2575

2501:                                             ; preds = %1303
  %2502 = load i8, ptr %118, align 1, !tbaa !9, !range !11, !noundef !12
  %2503 = trunc i8 %2502 to i1
  %2504 = zext i1 %2503 to i64
  %2505 = select i1 %2503, i32 1, i32 2
  %2506 = trunc i32 %2505 to i8
  %2507 = load ptr, ptr %4, align 8, !tbaa !5
  %2508 = getelementptr inbounds %"class.AST::Module", ptr %2507, i32 0, i32 6
  store i8 %2506, ptr %2508, align 1, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #8
  %2509 = load ptr, ptr %4, align 8, !tbaa !5
  %2510 = getelementptr inbounds %"class.AST::Module", ptr %2509, i32 0, i32 1
  store ptr %2510, ptr %218, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #8
  %2511 = load ptr, ptr %218, align 8, !tbaa !5
  %2512 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2511) #8
  %2513 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.72", ptr %219, i32 0, i32 0
  store ptr %2512, ptr %2513, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #8
  %2514 = load ptr, ptr %218, align 8, !tbaa !5
  %2515 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2514) #8
  %2516 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.72", ptr %220, i32 0, i32 0
  store ptr %2515, ptr %2516, align 8
  br label %2517

2517:                                             ; preds = %2538, %2501
  %2518 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %219, ptr noundef nonnull align 8 dereferenceable(8) %220) #8
  br i1 %2518, label %2520, label %2519

2519:                                             ; preds = %2517
  store i32 306, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #8
  br label %2540

2520:                                             ; preds = %2517
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #8
  %2521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %219) #8
  store ptr %2521, ptr %221, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %222) #8
  %2522 = load ptr, ptr %221, align 8, !tbaa !5
  %2523 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2522) #8
  %2524 = getelementptr inbounds %"struct.AST::Named", ptr %2523, i32 0, i32 4
  %2525 = invoke noundef ptr @_ZN3AST4Item10opt_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %2524)
          to label %2526 unwind label %2533

2526:                                             ; preds = %2520
  store ptr %2525, ptr %222, align 8, !tbaa !5
  %2527 = load ptr, ptr %222, align 8, !tbaa !5
  %2528 = icmp ne ptr %2527, null
  br i1 %2528, label %2529, label %2537

2529:                                             ; preds = %2526
  %2530 = load ptr, ptr %3, align 8, !tbaa !5
  %2531 = load ptr, ptr %222, align 8, !tbaa !5
  invoke void @_Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(1112) %2530, ptr noundef nonnull align 8 dereferenceable(480) %2531)
          to label %2532 unwind label %2533

2532:                                             ; preds = %2529
  br label %2537

2533:                                             ; preds = %2529, %2520
  %2534 = landingpad { ptr, i32 }
          cleanup
  %2535 = extractvalue { ptr, i32 } %2534, 0
  store ptr %2535, ptr %8, align 8
  %2536 = extractvalue { ptr, i32 } %2534, 1
  store i32 %2536, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #8
  br label %2575

2537:                                             ; preds = %2532, %2526
  call void @llvm.lifetime.end.p0(i64 8, ptr %222) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #8
  br label %2538

2538:                                             ; preds = %2537
  %2539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %219) #8
  br label %2517

2540:                                             ; preds = %2519
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #8
  %2541 = load ptr, ptr %4, align 8, !tbaa !5
  %2542 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %2541)
          to label %2543 unwind label %2553

2543:                                             ; preds = %2540
  store ptr %2542, ptr %223, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #8
  %2544 = load ptr, ptr %223, align 8, !tbaa !5
  %2545 = call ptr @_ZNSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2544) #8
  %2546 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.243", ptr %224, i32 0, i32 0
  store ptr %2545, ptr %2546, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #8
  %2547 = load ptr, ptr %223, align 8, !tbaa !5
  %2548 = call ptr @_ZNSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2547) #8
  %2549 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.243", ptr %225, i32 0, i32 0
  store ptr %2548, ptr %2549, align 8
  br label %2550

2550:                                             ; preds = %2571, %2543
  %2551 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef nonnull align 8 dereferenceable(8) %225) #8
  br i1 %2551, label %2557, label %2552

2552:                                             ; preds = %2550
  store i32 308, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #8
  br label %2574

2553:                                             ; preds = %2540
  %2554 = landingpad { ptr, i32 }
          cleanup
  %2555 = extractvalue { ptr, i32 } %2554, 0
  store ptr %2555, ptr %8, align 8
  %2556 = extractvalue { ptr, i32 } %2554, 1
  store i32 %2556, ptr %9, align 4
  br label %2573

2557:                                             ; preds = %2550
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #8
  %2558 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %224) #8
  store ptr %2558, ptr %226, align 8, !tbaa !5
  %2559 = load ptr, ptr %226, align 8, !tbaa !5
  %2560 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %2559) #8
  br i1 %2560, label %2561, label %2570

2561:                                             ; preds = %2557
  %2562 = load ptr, ptr %3, align 8, !tbaa !5
  %2563 = load ptr, ptr %226, align 8, !tbaa !5
  %2564 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %2563) #8
  invoke void @_Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(1112) %2562, ptr noundef nonnull align 8 dereferenceable(480) %2564)
          to label %2565 unwind label %2566

2565:                                             ; preds = %2561
  br label %2570

2566:                                             ; preds = %2561
  %2567 = landingpad { ptr, i32 }
          cleanup
  %2568 = extractvalue { ptr, i32 } %2567, 0
  store ptr %2568, ptr %8, align 8
  %2569 = extractvalue { ptr, i32 } %2567, 1
  store i32 %2569, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #8
  br label %2573

2570:                                             ; preds = %2565, %2557
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #8
  br label %2571

2571:                                             ; preds = %2570
  %2572 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %224) #8
  br label %2550

2573:                                             ; preds = %2566, %2553
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #8
  br label %2575

2574:                                             ; preds = %2552
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %5) #8
  ret void

2575:                                             ; preds = %2573, %2533, %2500
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  br label %2576

2576:                                             ; preds = %2575, %1291, %1193
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #8
  br label %2577

2577:                                             ; preds = %2576, %244
  call void @llvm.lifetime.end.p0(i64 40, ptr %5) #8
  br label %2578

2578:                                             ; preds = %2577
  %2579 = load ptr, ptr %8, align 8
  %2580 = load i32, ptr %9, align 4
  %2581 = insertvalue { ptr, i32 } poison, ptr %2579, 0
  %2582 = insertvalue { ptr, i32 } %2581, i32 %2580, 1
  resume { ptr, i32 } %2582

2583:                                             ; preds = %2495, %2444, %2393, %2031, %1986, %1502, %1390, %576
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Macro") align 8, ptr, ptr) #1 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = !{!31, !6, i64 0}
!31 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !6, i64 0, !32, i64 8}
!32 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!33 = !{!32, !6, i64 0}
!34 = !{!32, !6, i64 8}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = !{!38, !6, i64 0}
!38 = !{!"_ZTSN3AST16PathBinding_Type10Data_CrateE", !6, i64 0}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = !{!42, !6, i64 0}
!42 = !{!"_ZTSN3AST16PathBinding_Type9Data_EnumE", !6, i64 0, !6, i64 8}
!43 = !{!42, !6, i64 8}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = !{!47, !6, i64 0}
!47 = !{!"_ZTSN3AST16PathBinding_Type10Data_UnionE", !6, i64 0, !6, i64 8}
!48 = !{!47, !6, i64 8}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = !{!52, !6, i64 0}
!52 = !{!"_ZTSN3AST16PathBinding_Type10Data_TraitE", !6, i64 0, !6, i64 8}
!53 = !{!52, !6, i64 8}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = !{!57, !6, i64 0}
!57 = !{!"_ZTSN3AST16PathBinding_Type15Data_TraitAliasE", !6, i64 0, !6, i64 8}
!58 = !{!57, !6, i64 8}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = !{!62, !6, i64 0}
!62 = !{!"_ZTSN3AST16PathBinding_Type14Data_TypeAliasE", !6, i64 0}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = !{!66, !6, i64 0}
!66 = !{!"_ZTSN3AST16PathBinding_Type11Data_StructE", !6, i64 0, !6, i64 8}
!67 = !{!66, !6, i64 8}
!68 = !{!69, !6, i64 0}
!69 = !{!"_ZTSN3AST17PathBinding_Value11Data_StructE", !6, i64 0, !6, i64 8}
!70 = !{!69, !6, i64 8}
!71 = distinct !{!71, !14}
!72 = distinct !{!72, !14}
!73 = !{!74, !6, i64 0}
!74 = !{!"_ZTSN3AST17PathBinding_Value13Data_FunctionE", !6, i64 0}
!75 = distinct !{!75, !14}
!76 = distinct !{!76, !14}
!77 = !{!78, !6, i64 0}
!78 = !{!"_ZTSN3AST17PathBinding_Value11Data_StaticE", !6, i64 0, !6, i64 8}
!79 = !{!78, !6, i64 8}
!80 = distinct !{!80, !14}
!81 = distinct !{!81, !14}
!82 = distinct !{!82, !14}
!83 = distinct !{!83, !14}
!84 = !{!85, !6, i64 0}
!85 = !{!"_ZTSN3AST17PathBinding_Macro15Data_MacroRulesE", !6, i64 0, !6, i64 8}
!86 = !{!85, !6, i64 8}
!87 = !{!88, !88, i64 0}
!88 = !{!"int", !7, i64 0}
!89 = distinct !{!89, !14}
!90 = distinct !{!90, !14}
!91 = distinct !{!91, !14}
!92 = distinct !{!92, !14}
!93 = distinct !{!93, !14}
!94 = distinct !{!94, !14}
!95 = distinct !{!95, !14}
!96 = distinct !{!96, !14}
!97 = distinct !{!97, !14}
!98 = distinct !{!98, !14}
!99 = distinct !{!99, !14}
!100 = distinct !{!100, !14}
!101 = distinct !{!101, !14}
!102 = distinct !{!102, !14}
!103 = distinct !{!103, !14}
!104 = distinct !{!104, !14}
!105 = distinct !{!105, !14}
!106 = distinct !{!106, !14}
!107 = distinct !{!107, !14}
!108 = distinct !{!108, !14}
!109 = distinct !{!109, !14}
!110 = distinct !{!110, !14}
!111 = distinct !{!111, !14}
!112 = distinct !{!112, !14}
!113 = distinct !{!113, !14}
!114 = distinct !{!114, !14}
!115 = distinct !{!115, !14}
!116 = distinct !{!116, !14}
!117 = distinct !{!117, !14}
!118 = distinct !{!118, !14}
!119 = distinct !{!119, !14}
!120 = distinct !{!120, !14}
!121 = distinct !{!121, !14}
!122 = distinct !{!122, !14}
!123 = distinct !{!123, !14}
!124 = distinct !{!124, !14}
!125 = distinct !{!125, !14}
!126 = distinct !{!126, !14}
!127 = distinct !{!127, !14}
!128 = distinct !{!128, !14}
!129 = distinct !{!129, !14}
!130 = distinct !{!130, !14}
!131 = distinct !{!131, !14}
!132 = distinct !{!132, !14}
!133 = distinct !{!133, !14}
!134 = distinct !{!134, !14}
!135 = distinct !{!135, !14}
!136 = distinct !{!136, !14}
!137 = distinct !{!137, !14}
!138 = distinct !{!138, !14}
!139 = distinct !{!139, !14}
!140 = distinct !{!140, !14}
!141 = !{!142, !7, i64 177}
!142 = !{!"_ZTSN3AST6ModuleE", !143, i64 0, !149, i64 32, !153, i64 56, !157, i64 80, !161, i64 104, !10, i64 176, !7, i64 177, !165, i64 184, !165, i64 240, !165, i64 296, !165, i64 352, !170, i64 408, !174, i64 432, !178, i64 456}
!143 = !{!"_ZTSN3AST12AbsolutePathE", !144, i64 0, !145, i64 8}
!144 = !{!"_ZTS8RcString", !6, i64 0}
!145 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !146, i64 0}
!146 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !147, i64 0}
!147 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !148, i64 0}
!148 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!149 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !150, i64 0}
!150 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !151, i64 0}
!151 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !152, i64 0}
!152 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!153 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !154, i64 0}
!154 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !155, i64 0}
!155 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !156, i64 0}
!156 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!157 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !158, i64 0}
!158 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !159, i64 0}
!159 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !160, i64 0}
!160 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!161 = !{!"_ZTSN3AST6Module8FileInfoE", !10, i64 0, !10, i64 1, !162, i64 8, !162, i64 40}
!162 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !163, i64 0, !164, i64 8, !7, i64 16}
!163 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!164 = !{!"long", !7, i64 0}
!165 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !166, i64 0}
!166 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3AST6Module8IndexEntEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !164, i64 8, !167, i64 16, !164, i64 24, !168, i64 32, !6, i64 48}
!167 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!168 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !169, i64 0, !164, i64 8}
!169 = !{!"float", !7, i64 0}
!170 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !171, i64 0}
!171 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !172, i64 0}
!172 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !173, i64 0}
!173 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!174 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !175, i64 0}
!175 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !176, i64 0}
!176 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !177, i64 0}
!177 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!178 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !179, i64 0}
!179 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !180, i64 0}
!180 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !181, i64 0}
!181 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}


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

%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector" }
%class.RcString = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.71 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.72" = type { ptr }
%"class.AST::Path" = type { ptr, %"class.AST::Path::Class", %"struct.AST::Path::Bindings" }
%"class.AST::Path::Class" = type { i32, %"union.AST::Path::Class::DataUnion" }
%"union.AST::Path::Class::DataUnion" = type { %"struct.AST::Path::Class::Data_UFCS" }
%"struct.AST::Path::Class::Data_UFCS" = type { %"class.std::unique_ptr.45", %"class.std::unique_ptr.53", %"class.std::vector.40" }
%"class.std::unique_ptr.45" = type { %"struct.std::__uniq_ptr_data.46" }
%"struct.std::__uniq_ptr_data.46" = type { %"class.std::__uniq_ptr_impl.47" }
%"class.std::__uniq_ptr_impl.47" = type { %"class.std::tuple.48" }
%"class.std::tuple.48" = type { %"struct.std::_Tuple_impl.49" }
%"struct.std::_Tuple_impl.49" = type { %"struct.std::_Head_base.52" }
%"struct.std::_Head_base.52" = type { ptr }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.61", %"struct.AST::PathBinding.62" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"class.AST::PathBinding_Value" = type { i32, %"union.AST::PathBinding_Value::DataUnion" }
%"union.AST::PathBinding_Value::DataUnion" = type { %"struct.AST::PathBinding_Value::Data_EnumVar" }
%"struct.AST::PathBinding_Value::Data_EnumVar" = type { ptr, i32, ptr }
%"struct.AST::PathBinding.61" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.AST::PathBinding_Type" = type { i32, %"union.AST::PathBinding_Type::DataUnion" }
%"union.AST::PathBinding_Type::DataUnion" = type { %"struct.AST::PathBinding_Type::Data_Module" }
%"struct.AST::PathBinding_Type::Data_Module" = type { ptr, %"struct.AST::PathBinding_Type::(anonymous struct)::Hir" }
%"struct.AST::PathBinding_Type::(anonymous struct)::Hir" = type { ptr, ptr }
%"struct.AST::PathBinding.62" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%struct.Span = type { ptr }
%class.anon.226 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.227" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.234" = type { ptr }
%class.anon.235 = type { ptr, ptr }
%class.anon.236 = type { i8 }
%class.anon.237 = type { i8 }
%class.anon.239 = type { i8 }
%class.anon.241 = type { ptr }
%class.anon.242 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.243" = type { ptr }

@.str.4 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE = external hidden unnamed_addr constant [26 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [39 x i8], align 1
@__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE = external hidden unnamed_addr constant [66 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [24 x i8], align 1

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #1 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 uwtable
declare dso_local void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %1) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %3 = alloca %class.TraceLog, align 8
  %4 = alloca %"class.std::function", align 8
  %5 = alloca %class.anon.71, align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %8 = alloca %"struct.AST::AbsolutePath", align 8
  %9 = alloca %class.RcString, align 8
  %10 = alloca %"class.AST::Path", align 8
  %11 = alloca %"struct.AST::AbsolutePath", align 8
  %12 = alloca %"class.AST::PathBinding_Type", align 8
  %13 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %14 = alloca %"class.AST::Path", align 8
  %15 = alloca %struct.Span, align 8
  %16 = alloca %"class.std::function", align 8
  %17 = alloca %class.anon.226, align 8
  %18 = alloca %"struct.AST::AbsolutePath", align 8
  %19 = alloca %"class.AST::PathBinding_Type", align 8
  %20 = alloca %"struct.AST::AbsolutePath", align 8
  %21 = alloca %"class.AST::PathBinding_Type", align 8
  %22 = alloca %"struct.AST::PathBinding_Type::Data_Module", align 8
  %23 = alloca %"class.AST::Path", align 8
  %24 = alloca %"struct.AST::AbsolutePath", align 8
  %25 = alloca %"class.AST::PathBinding_Type", align 8
  %26 = alloca %"class.AST::Path", align 8
  %27 = alloca %"struct.AST::AbsolutePath", align 8
  %28 = alloca %"class.AST::PathBinding_Type", align 8
  %29 = alloca %"class.AST::Path", align 8
  %30 = alloca %"struct.AST::AbsolutePath", align 8
  %31 = alloca %"class.AST::PathBinding_Type", align 8
  %32 = alloca %"class.AST::Path", align 8
  %33 = alloca %"struct.AST::AbsolutePath", align 8
  %34 = alloca %"class.AST::PathBinding_Type", align 8
  %35 = alloca %"class.AST::Path", align 8
  %36 = alloca %"struct.AST::AbsolutePath", align 8
  %37 = alloca %"class.AST::PathBinding_Type", align 8
  %38 = alloca %"class.AST::Path", align 8
  %39 = alloca %"struct.AST::AbsolutePath", align 8
  %40 = alloca %"class.AST::PathBinding_Type", align 8
  %41 = alloca %"struct.AST::AbsolutePath", align 8
  %42 = alloca %"class.AST::PathBinding_Value", align 8
  %43 = alloca %"class.AST::Path", align 8
  %44 = alloca %"class.AST::Path", align 8
  %45 = alloca %"struct.AST::AbsolutePath", align 8
  %46 = alloca %"class.AST::PathBinding_Value", align 8
  %47 = alloca %"class.AST::Path", align 8
  %48 = alloca %"struct.AST::AbsolutePath", align 8
  %49 = alloca %"class.AST::PathBinding_Value", align 8
  %50 = alloca %"class.AST::Path", align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %53 = alloca %"class.AST::Path", align 8
  %54 = alloca %"struct.AST::AbsolutePath", align 8
  %55 = alloca %class.RcString, align 8
  %56 = alloca %"struct.AST::AbsolutePath", align 8
  %57 = alloca %class.RcString, align 8
  %58 = alloca %"class.AST::PathBinding_Macro", align 8
  %59 = alloca %"class.AST::Path", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %61 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %62 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %64 = alloca %struct.Span, align 8
  %65 = alloca %"class.std::function", align 8
  %66 = alloca %class.anon.235, align 8
  %67 = alloca %struct.Span, align 8
  %68 = alloca %"class.std::function", align 8
  %69 = alloca %class.anon.236, align 1
  %70 = alloca %"class.AST::Path", align 8
  %71 = alloca %"class.AST::Path", align 8
  %72 = alloca %"class.AST::Path", align 8
  %73 = alloca %"class.AST::Path", align 8
  %74 = alloca %"class.AST::Path", align 8
  %75 = alloca %"class.AST::Path", align 8
  %76 = alloca %"class.AST::Path", align 8
  %77 = alloca %"class.AST::Path", align 8
  %78 = alloca %"class.AST::Path", align 8
  %79 = alloca %struct.Span, align 8
  %80 = alloca %"class.std::function", align 8
  %81 = alloca %class.anon.237, align 1
  %82 = alloca %struct.Span, align 8
  %83 = alloca %"class.std::function", align 8
  %84 = alloca %class.anon.239, align 1
  %85 = alloca %"class.AST::Path", align 8
  %86 = alloca %"class.AST::Path", align 8
  %87 = alloca %"class.AST::Path", align 8
  %88 = alloca %"class.AST::Path", align 8
  %89 = alloca %"class.AST::Path", align 8
  %90 = alloca %"class.AST::Path", align 8
  %91 = alloca ptr, align 8
  %92 = alloca %struct.Span, align 8
  %93 = alloca %"class.std::function", align 8
  %94 = alloca %class.anon.241, align 8
  %95 = alloca ptr, align 8
  %96 = alloca %struct.Span, align 8
  %97 = alloca %"class.std::function", align 8
  %98 = alloca %class.anon.242, align 8
  %99 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %100 = alloca %"class.__gnu_cxx::__normal_iterator.72", align 8
  %101 = alloca %"class.__gnu_cxx::__normal_iterator.243", align 8
  %102 = alloca %"class.__gnu_cxx::__normal_iterator.243", align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #9
  %103 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %104 = select i1 %103, ptr @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE, ptr null
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #9
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %104, ptr noundef nonnull %4)
          to label %.split2713 unwind label %120

.split2713:                                       ; preds = %2
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  %105 = getelementptr inbounds i8, ptr %1, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %106 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #9
  store ptr %106, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %107 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #9
  store ptr %107, ptr %7, align 8
  %108 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  br i1 %108, label %.lr.ph2714, label %._crit_edge

.lr.ph2714:                                       ; preds = %.split2713
  %109 = getelementptr inbounds i8, ptr %10, i64 56
  %110 = getelementptr inbounds i8, ptr %10, i64 120
  %111 = getelementptr inbounds i8, ptr %0, i64 72
  %112 = getelementptr inbounds i8, ptr %22, i64 8
  %113 = getelementptr inbounds i8, ptr %0, i64 576
  %114 = getelementptr inbounds i8, ptr %13, i64 8
  br label %122

._crit_edge:                                      ; preds = %.loopexit770, %.split2713
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  %115 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module6macrosEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #9
  %116 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %115) #9
  store ptr %116, ptr %51, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #9
  %117 = call ptr @_ZNSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %115) #9
  store ptr %117, ptr %52, align 8
  %118 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  br i1 %118, label %.lr.ph2716, label %._crit_edge2717

.lr.ph2716:                                       ; preds = %._crit_edge
  %119 = getelementptr inbounds i8, ptr %53, i64 184
  br label %320

120:                                              ; preds = %2
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  br label %639

122:                                              ; preds = %.lr.ph2714, %.loopexit770
  %123 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  %124 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  %125 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %126 = getelementptr inbounds i8, ptr %125, i64 72
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %126)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull %9)
          to label %127 unwind label %130

127:                                              ; preds = %122
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #9
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %10) #9
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %10, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %.lr.ph unwind label %132

.loopexit770:                                     ; preds = %.preheader748, %.preheader746, %.preheader744, %.preheader742, %.preheader740, %.preheader738, %.preheader736, %.preheader734, %.lr.ph, %..loopexit719_crit_edge, %..loopexit726_crit_edge, %..loopexit727_crit_edge, %..loopexit728_crit_edge, %..loopexit729_crit_edge, %..loopexit730_crit_edge, %..loopexit732_crit_edge, %..loopexit733_crit_edge, %..loopexit720_crit_edge, %..loopexit731_crit_edge
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %10) #9
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %10) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %129 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  br i1 %129, label %122, label %._crit_edge

130:                                              ; preds = %122
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #9
  br label %316

132:                                              ; preds = %127
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %315

.lr.ph:                                           ; preds = %127
  %134 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %135 = getelementptr inbounds i8, ptr %134, i64 80
  %136 = call noundef i32 @_ZNK3AST4Item3tagEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  switch i32 %136, label %.loopexit770 [
    i32 0, label %153
    i32 1, label %.preheader734
    i32 2, label %.preheader736
    i32 4, label %.preheader738
    i32 6, label %.preheader740
    i32 7, label %.preheader742
    i32 5, label %.preheader744
    i32 8, label %.preheader746
    i32 3, label %.preheader748
    i32 9, label %.preheader750
    i32 10, label %.lr.ph2062
    i32 13, label %.preheader754
    i32 14, label %.preheader756
    i32 15, label %.preheader758
    i32 16, label %.preheader760
    i32 11, label %.preheader762
    i32 12, label %.lr.ph1255
    i32 17, label %.preheader766
    i32 18, label %.preheader768
  ]

.preheader768:                                    ; preds = %.lr.ph
  %137 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3AST4Item9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %304 unwind label %.split.split

.preheader766:                                    ; preds = %.lr.ph
  %138 = call noundef nonnull align 8 dereferenceable(368) ptr @_ZN3AST4Item11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %293 unwind label %.split1114.split

.preheader762:                                    ; preds = %.lr.ph
  %139 = call noundef nonnull align 8 dereferenceable(216) ptr @_ZN3AST4Item7as_TypeEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %250 unwind label %.split1259.split

.preheader760:                                    ; preds = %.lr.ph
  %140 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN3AST4Item13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %239 unwind label %.split1408.split

.preheader758:                                    ; preds = %.lr.ph
  %141 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN3AST4Item8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %228 unwind label %.split1563.split

.preheader756:                                    ; preds = %.lr.ph
  %142 = call noundef nonnull align 8 dereferenceable(76) ptr @_ZN3AST4Item8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %217 unwind label %.split1724.split

.preheader754:                                    ; preds = %.lr.ph
  %143 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZN3AST4Item7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %206 unwind label %.split1891.split

.preheader750:                                    ; preds = %.lr.ph
  %144 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %155 unwind label %.split2066.split

.preheader748:                                    ; preds = %.lr.ph
  %145 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

.preheader746:                                    ; preds = %.lr.ph
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3AST4Item8as_MacroEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

.preheader744:                                    ; preds = %.lr.ph
  %147 = call noundef nonnull align 8 dereferenceable(52) ptr @_ZN3AST4Item12as_GlobalAsmEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

.preheader742:                                    ; preds = %.lr.ph
  %148 = call noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

.preheader740:                                    ; preds = %.lr.ph
  %149 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZN3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

.preheader738:                                    ; preds = %.lr.ph
  %150 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZN3AST4Item14as_ExternBlockEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

.preheader736:                                    ; preds = %.lr.ph
  %151 = call noundef nonnull align 8 dereferenceable(393) ptr @_ZN3AST4Item11as_MacroInvEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

.preheader734:                                    ; preds = %.lr.ph
  %152 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN3AST4Item7as_NoneEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  br label %.loopexit770

153:                                              ; preds = %.lr.ph
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 134, ptr noundef nonnull @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #10
  unreachable

.split2066.split:                                 ; preds = %156, %.preheader750
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %314

155:                                              ; preds = %.preheader750
  store ptr %144, ptr %13, align 8, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %114, i8 0, i64 16, i1 false)
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %12, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %13)
          to label %156 unwind label %.split2069.split

156:                                              ; preds = %155
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %11, ptr noundef nonnull %12)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  %157 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %158 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %159 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %14, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %160 unwind label %.split2066.split

160:                                              ; preds = %156
  %161 = getelementptr inbounds i8, ptr %159, i64 32
  %162 = getelementptr inbounds i8, ptr %158, i64 72
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %157, ptr noundef nonnull align 8 dereferenceable(480) %1, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull align 8 dereferenceable(36) %161, ptr noundef nonnull %14, i1 noundef zeroext true)
          to label %..loopexit719_crit_edge unwind label %.split2072.split

..loopexit719_crit_edge:                          ; preds = %160
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %14) #9
  br label %.loopexit770

.split2069.split:                                 ; preds = %155
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %314

.split2072.split:                                 ; preds = %160
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %14) #9
  br label %314

.loopexit721:                                     ; preds = %.lr.ph2062, %168, %184, %191, %196
  %lpad.loopexit723 = landingpad { ptr, i32 }
          cleanup
  br label %314

.loopexit.split-lp722:                            ; preds = %176
  %lpad.loopexit.split-lp724 = landingpad { ptr, i32 }
          cleanup
  br label %314

.lr.ph2062:                                       ; preds = %.lr.ph
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3AST4Item8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  %166 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull @.str.4)
          to label %167 unwind label %.loopexit721

167:                                              ; preds = %.lr.ph2062
  br i1 %166, label %168, label %191

168:                                              ; preds = %167
  %169 = invoke noundef i64 @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE5countERS6_(ptr noundef nonnull align 8 dereferenceable(48) %113, ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %170 unwind label %.loopexit721

170:                                              ; preds = %168
  %.not639 = icmp eq i64 %169, 0
  br i1 %.not639, label %171, label %184

171:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  %172 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %172)
          to label %173 unwind label %177

173:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  store ptr %165, ptr %17, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull %16)
          to label %174 unwind label %179

174:                                              ; preds = %173
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  %175 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %175, ptr noundef nonnull @.str.5)
          to label %176 unwind label %182

176:                                              ; preds = %174
  invoke void @__cxa_throw(ptr nonnull %175, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %640 unwind label %.loopexit.split-lp722

177:                                              ; preds = %171
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %181

179:                                              ; preds = %173
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  br label %181

181:                                              ; preds = %179, %177
  %.pn640 = phi { ptr, i32 } [ %180, %179 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  br label %314

182:                                              ; preds = %174
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %175) #9
  br label %314

184:                                              ; preds = %170
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %185 unwind label %.loopexit721

185:                                              ; preds = %184
  %186 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE2atERS6_(ptr noundef nonnull align 8 dereferenceable(48) %113, ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %187 unwind label %189

187:                                              ; preds = %185
  invoke void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %19, ptr nonnull %186)
          to label %188 unwind label %189

188:                                              ; preds = %187
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %18, ptr noundef nonnull %19)
  br label %196

189:                                              ; preds = %187, %185
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %314

191:                                              ; preds = %167
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %192 unwind label %.loopexit721

192:                                              ; preds = %191
  store ptr %111, ptr %22, align 8, !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %112, i8 0, i64 16, i1 false)
  invoke void @_ZN3AST16PathBinding_Type11make_ModuleENS0_11Data_ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %21, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_Module") align 8 %22)
          to label %193 unwind label %194

193:                                              ; preds = %192
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %20, ptr noundef nonnull %21)
  br label %196

194:                                              ; preds = %192
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %314

196:                                              ; preds = %193, %188
  %.sink8914 = phi ptr [ %21, %193 ], [ %19, %188 ]
  %.sink = phi ptr [ %20, %193 ], [ %18, %188 ]
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink8914) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #9
  %197 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %198 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %199 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %23, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %200 unwind label %.loopexit721

200:                                              ; preds = %196
  %201 = getelementptr inbounds i8, ptr %199, i64 32
  %202 = getelementptr inbounds i8, ptr %198, i64 72
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull align 8 dereferenceable(480) %1, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef nonnull align 8 dereferenceable(36) %201, ptr noundef nonnull %23, i1 noundef zeroext true)
          to label %..loopexit720_crit_edge unwind label %203

..loopexit720_crit_edge:                          ; preds = %200
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %23) #9
  br label %.loopexit770

203:                                              ; preds = %200
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %23) #9
  br label %314

.split1891.split:                                 ; preds = %207, %.preheader754
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %314

206:                                              ; preds = %.preheader754
  invoke void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %25, ptr nonnull %143, ptr null)
          to label %207 unwind label %.split1894.split

207:                                              ; preds = %206
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %24, ptr noundef nonnull %25)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  %208 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %209 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %210 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %26, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %211 unwind label %.split1891.split

211:                                              ; preds = %207
  %212 = getelementptr inbounds i8, ptr %210, i64 32
  %213 = getelementptr inbounds i8, ptr %209, i64 72
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %208, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef nonnull align 8 dereferenceable(36) %212, ptr noundef nonnull %26, i1 noundef zeroext true)
          to label %..loopexit726_crit_edge unwind label %.split1897.split

..loopexit726_crit_edge:                          ; preds = %211
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %26) #9
  br label %.loopexit770

.split1894.split:                                 ; preds = %206
  %214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %314

.split1897.split:                                 ; preds = %211
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %26) #9
  br label %314

.split1724.split:                                 ; preds = %218, %.preheader756
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %314

217:                                              ; preds = %.preheader756
  invoke void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %28, ptr nonnull %142, ptr null)
          to label %218 unwind label %.split1727.split

218:                                              ; preds = %217
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %27, ptr noundef nonnull %28)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  %219 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %220 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %221 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %29, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %222 unwind label %.split1724.split

222:                                              ; preds = %218
  %223 = getelementptr inbounds i8, ptr %221, i64 32
  %224 = getelementptr inbounds i8, ptr %220, i64 72
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %219, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef nonnull align 8 dereferenceable(36) %223, ptr noundef nonnull %29, i1 noundef zeroext true)
          to label %..loopexit727_crit_edge unwind label %.split1730.split

..loopexit727_crit_edge:                          ; preds = %222
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %29) #9
  br label %.loopexit770

.split1727.split:                                 ; preds = %217
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %314

.split1730.split:                                 ; preds = %222
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %29) #9
  br label %314

.split1563.split:                                 ; preds = %229, %.preheader758
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %314

228:                                              ; preds = %.preheader758
  invoke void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %31, ptr nonnull %141, ptr null)
          to label %229 unwind label %.split1566.split

229:                                              ; preds = %228
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %30, ptr noundef nonnull %31)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  %230 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %231 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %232 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %32, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %233 unwind label %.split1563.split

233:                                              ; preds = %229
  %234 = getelementptr inbounds i8, ptr %232, i64 32
  %235 = getelementptr inbounds i8, ptr %231, i64 72
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef nonnull align 8 dereferenceable(36) %234, ptr noundef nonnull %32, i1 noundef zeroext true)
          to label %..loopexit728_crit_edge unwind label %.split1569.split

..loopexit728_crit_edge:                          ; preds = %233
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %32) #9
  br label %.loopexit770

.split1566.split:                                 ; preds = %228
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %314

.split1569.split:                                 ; preds = %233
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %32) #9
  br label %314

.split1408.split:                                 ; preds = %240, %.preheader760
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %314

239:                                              ; preds = %.preheader760
  invoke void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %34, ptr nonnull %140, ptr null)
          to label %240 unwind label %.split1411.split

240:                                              ; preds = %239
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %33, ptr noundef nonnull %34)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  %241 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %242 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %243 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %35, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %244 unwind label %.split1408.split

244:                                              ; preds = %240
  %245 = getelementptr inbounds i8, ptr %243, i64 32
  %246 = getelementptr inbounds i8, ptr %242, i64 72
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %241, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef nonnull align 8 dereferenceable(36) %245, ptr noundef nonnull %35, i1 noundef zeroext true)
          to label %..loopexit729_crit_edge unwind label %.split1414.split

..loopexit729_crit_edge:                          ; preds = %244
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %35) #9
  br label %.loopexit770

.split1411.split:                                 ; preds = %239
  %247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %314

.split1414.split:                                 ; preds = %244
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %35) #9
  br label %314

.split1259.split:                                 ; preds = %251, %.preheader762
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %314

250:                                              ; preds = %.preheader762
  invoke void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %37, ptr nonnull %139)
          to label %251 unwind label %.split1262.split

251:                                              ; preds = %250
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %36, ptr noundef nonnull %37)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  %252 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %253 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %254 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %38, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %255 unwind label %.split1259.split

255:                                              ; preds = %251
  %256 = getelementptr inbounds i8, ptr %254, i64 32
  %257 = getelementptr inbounds i8, ptr %253, i64 72
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull align 8 dereferenceable(36) %256, ptr noundef nonnull %38, i1 noundef zeroext true)
          to label %..loopexit730_crit_edge unwind label %.split1265.split

..loopexit730_crit_edge:                          ; preds = %255
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %38) #9
  br label %.loopexit770

.split1262.split:                                 ; preds = %250
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %314

.split1265.split:                                 ; preds = %255
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %38) #9
  br label %314

.lr.ph1255:                                       ; preds = %.lr.ph
  %260 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN3AST4Item9as_StructEv(ptr noundef nonnull align 8 dereferenceable(488) %135)
  %261 = getelementptr inbounds i8, ptr %260, i64 48
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %264 unwind label %262

262:                                              ; preds = %283, %269, %267, %.lr.ph1255
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %314

264:                                              ; preds = %.lr.ph1255
  invoke void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %40, ptr nonnull %260, ptr null)
          to label %265 unwind label %277

265:                                              ; preds = %264
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %110, ptr noundef nonnull %39, ptr noundef nonnull %40)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  %266 = call noundef zeroext i1 @_ZNK3AST10StructData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %261)
  br i1 %266, label %283, label %267

267:                                              ; preds = %265
  invoke void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %268 unwind label %262

268:                                              ; preds = %267
  invoke void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %42, ptr nonnull %260, ptr null)
          to label %269 unwind label %279

269:                                              ; preds = %268
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %109, ptr noundef nonnull %41, ptr noundef nonnull %42)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  %270 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %271 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %272 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %43, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %273 unwind label %262

273:                                              ; preds = %269
  %274 = getelementptr inbounds i8, ptr %272, i64 32
  %275 = getelementptr inbounds i8, ptr %271, i64 72
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %270, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %275, ptr noundef nonnull align 8 dereferenceable(36) %274, ptr noundef nonnull %43, i1 noundef zeroext true)
          to label %276 unwind label %281

276:                                              ; preds = %273
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %43) #9
  br label %283

277:                                              ; preds = %264
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %314

279:                                              ; preds = %268
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %314

281:                                              ; preds = %273
  %282 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %43) #9
  br label %314

283:                                              ; preds = %276, %265
  %284 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %285 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %286 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %44, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %287 unwind label %262

287:                                              ; preds = %283
  %288 = getelementptr inbounds i8, ptr %286, i64 32
  %289 = getelementptr inbounds i8, ptr %285, i64 72
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull align 8 dereferenceable(36) %288, ptr noundef nonnull %44, i1 noundef zeroext true)
          to label %..loopexit731_crit_edge unwind label %290

..loopexit731_crit_edge:                          ; preds = %287
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %44) #9
  br label %.loopexit770

290:                                              ; preds = %287
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %44) #9
  br label %314

.split1114.split:                                 ; preds = %294, %.preheader766
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %314

293:                                              ; preds = %.preheader766
  invoke void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %46, ptr nonnull %138)
          to label %294 unwind label %.split1117.split

294:                                              ; preds = %293
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %109, ptr noundef nonnull %45, ptr noundef nonnull %46)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  %295 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %296 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %297 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %47, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %298 unwind label %.split1114.split

298:                                              ; preds = %294
  %299 = getelementptr inbounds i8, ptr %297, i64 32
  %300 = getelementptr inbounds i8, ptr %296, i64 72
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull align 8 dereferenceable(36) %299, ptr noundef nonnull %47, i1 noundef zeroext true)
          to label %..loopexit732_crit_edge unwind label %.split1120.split

..loopexit732_crit_edge:                          ; preds = %298
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %47) #9
  br label %.loopexit770

.split1117.split:                                 ; preds = %293
  %301 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %314

.split1120.split:                                 ; preds = %298
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %47) #9
  br label %314

.split.split:                                     ; preds = %305, %.preheader768
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %314

304:                                              ; preds = %.preheader768
  invoke void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %49, ptr nonnull %137, ptr null)
          to label %305 unwind label %.split982.split

305:                                              ; preds = %304
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %109, ptr noundef nonnull %48, ptr noundef nonnull %49)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  %306 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %307 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  %308 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %50, ptr noundef nonnull align 8 dereferenceable(240) %10)
          to label %309 unwind label %.split.split

309:                                              ; preds = %305
  %310 = getelementptr inbounds i8, ptr %308, i64 32
  %311 = getelementptr inbounds i8, ptr %307, i64 72
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef nonnull align 8 dereferenceable(36) %310, ptr noundef nonnull %50, i1 noundef zeroext true)
          to label %..loopexit733_crit_edge unwind label %.split985.split

..loopexit733_crit_edge:                          ; preds = %309
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %50) #9
  br label %.loopexit770

.split982.split:                                  ; preds = %304
  %312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %314

.split985.split:                                  ; preds = %309
  %313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %50) #9
  br label %314

314:                                              ; preds = %.loopexit721, %.loopexit.split-lp722, %.split.split, %.split982.split, %.split985.split, %.split1114.split, %.split1117.split, %.split1120.split, %262, %277, %279, %281, %290, %.split1259.split, %.split1262.split, %.split1265.split, %.split1408.split, %.split1411.split, %.split1414.split, %.split1563.split, %.split1566.split, %.split1569.split, %.split1724.split, %.split1727.split, %.split1730.split, %.split1891.split, %.split1894.split, %.split1897.split, %181, %182, %189, %194, %203, %.split2066.split, %.split2069.split, %.split2072.split
  %.pn623.pn = phi { ptr, i32 } [ %164, %.split2072.split ], [ %154, %.split2066.split ], [ %163, %.split2069.split ], [ %204, %203 ], [ %190, %189 ], [ %183, %182 ], [ %.pn640, %181 ], [ %195, %194 ], [ %215, %.split1897.split ], [ %205, %.split1891.split ], [ %214, %.split1894.split ], [ %226, %.split1730.split ], [ %216, %.split1724.split ], [ %225, %.split1727.split ], [ %237, %.split1569.split ], [ %227, %.split1563.split ], [ %236, %.split1566.split ], [ %248, %.split1414.split ], [ %238, %.split1408.split ], [ %247, %.split1411.split ], [ %259, %.split1265.split ], [ %249, %.split1259.split ], [ %258, %.split1262.split ], [ %291, %290 ], [ %263, %262 ], [ %282, %281 ], [ %280, %279 ], [ %278, %277 ], [ %302, %.split1120.split ], [ %292, %.split1114.split ], [ %301, %.split1117.split ], [ %313, %.split985.split ], [ %303, %.split.split ], [ %312, %.split982.split ], [ %lpad.loopexit723, %.loopexit721 ], [ %lpad.loopexit.split-lp724, %.loopexit.split-lp722 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %10) #9
  br label %315

315:                                              ; preds = %314, %132
  %.pn623.pn.pn = phi { ptr, i32 } [ %.pn623.pn, %314 ], [ %133, %132 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %10) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %316

316:                                              ; preds = %315, %130
  %.pn623.pn.pn.pn = phi { ptr, i32 } [ %.pn623.pn.pn, %315 ], [ %131, %130 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br label %638

._crit_edge2717:                                  ; preds = %334, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #9
  %317 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #9
  store ptr %317, ptr %60, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #9
  %318 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #9
  store ptr %318, ptr %61, align 8
  %319 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  br i1 %319, label %.lr.ph8588, label %._crit_edge8589

320:                                              ; preds = %.lr.ph2716, %334
  %321 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #9
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %53) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #9
  %322 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  %323 = getelementptr inbounds i8, ptr %321, i64 72
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %323)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull %55)
          to label %324 unwind label %337

324:                                              ; preds = %320
  invoke void @_ZN3AST4PathC2ERKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(240) %53, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %325 unwind label %339

325:                                              ; preds = %324
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  %326 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %323)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef nonnull %57)
          to label %327 unwind label %344

327:                                              ; preds = %325
  %328 = getelementptr inbounds i8, ptr %321, i64 80
  %329 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK13MacroRulesPtrdeEv(ptr noundef nonnull align 8 dereferenceable(8) %328)
  invoke void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Macro") align 8 %58, ptr null, ptr nonnull %329)
          to label %330 unwind label %346

330:                                              ; preds = %327
  invoke void @_ZN3AST11PathBindingINS_17PathBinding_MacroEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(56) %119, ptr noundef nonnull %56, ptr noundef nonnull %58)
          to label %331 unwind label %348

331:                                              ; preds = %330
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #9
  invoke void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %59, ptr noundef nonnull align 8 dereferenceable(240) %53)
          to label %332 unwind label %342

332:                                              ; preds = %331
  %333 = getelementptr inbounds i8, ptr %321, i64 32
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull align 8 dereferenceable(480) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %323, ptr noundef nonnull align 8 dereferenceable(36) %333, ptr noundef nonnull %59, i1 noundef zeroext false)
          to label %334 unwind label %352

334:                                              ; preds = %332
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %59) #9
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %53) #9
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %53) #9
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #9
  %336 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST5NamedI13MacroRulesPtrEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  br i1 %336, label %320, label %._crit_edge2717

337:                                              ; preds = %320
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %341

339:                                              ; preds = %324
  %340 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %341

341:                                              ; preds = %339, %337
  %.pn615 = phi { ptr, i32 } [ %340, %339 ], [ %338, %337 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  br label %355

342:                                              ; preds = %331
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %354

344:                                              ; preds = %325
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %351

346:                                              ; preds = %327
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %350

348:                                              ; preds = %330
  %349 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST17PathBinding_MacroD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #9
  br label %350

350:                                              ; preds = %348, %346
  %.pn617 = phi { ptr, i32 } [ %349, %348 ], [ %347, %346 ]
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %351

351:                                              ; preds = %350, %344
  %.pn617.pn = phi { ptr, i32 } [ %.pn617, %350 ], [ %345, %344 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #9
  br label %354

352:                                              ; preds = %332
  %353 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %59) #9
  br label %354

354:                                              ; preds = %352, %351, %342
  %.pn620 = phi { ptr, i32 } [ %353, %352 ], [ %343, %342 ], [ %.pn617.pn, %351 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %53) #9
  br label %355

355:                                              ; preds = %354, %341
  %.pn620.pn = phi { ptr, i32 } [ %.pn620, %354 ], [ %.pn615, %341 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #9
  br label %638

._crit_edge8589.loopexit:                         ; preds = %612
  %356 = select i1 %.3537, i8 1, i8 2
  br label %._crit_edge8589

._crit_edge8589:                                  ; preds = %._crit_edge8589.loopexit, %._crit_edge2717
  %.0534.lcssa = phi i8 [ 2, %._crit_edge2717 ], [ %356, %._crit_edge8589.loopexit ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  %357 = getelementptr inbounds i8, ptr %1, i64 177
  store i8 %.0534.lcssa, ptr %357, align 1, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #9
  %358 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #9
  store ptr %358, ptr %99, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %100) #9
  %359 = call ptr @_ZNSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #9
  store ptr %359, ptr %100, align 8
  %360 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  br i1 %360, label %.lr.ph8592, label %._crit_edge8593

.lr.ph8588:                                       ; preds = %._crit_edge2717, %612
  %.05348587 = phi i1 [ %.3537, %612 ], [ false, %._crit_edge2717 ]
  %361 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  %362 = call noundef nonnull align 8 dereferenceable(568) ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %361) #9
  %363 = getelementptr inbounds i8, ptr %362, i64 80
  %364 = call noundef zeroext i1 @_ZNK3AST4Item6is_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %363)
  br i1 %364, label %.split8582, label %612

.split8582:                                       ; preds = %.lr.ph8588
  %365 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST4Item6as_UseEv(ptr noundef nonnull align 8 dereferenceable(488) %363)
  %366 = getelementptr inbounds i8, ptr %365, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #9
  %367 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %366) #9
  store ptr %367, ptr %62, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #9
  %368 = call ptr @_ZNKSt6vectorIN3AST7UseItem3EntESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %366) #9
  store ptr %368, ptr %63, align 8
  %369 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  br i1 %369, label %.lr.ph8584, label %._crit_edge8585

.lr.ph8584:                                       ; preds = %.split8582
  %370 = getelementptr inbounds i8, ptr %362, i64 32
  br label %371

._crit_edge8585:                                  ; preds = %.loopexit707, %.split8582
  %.1535.lcssa = phi i1 [ %.05348587, %.split8582 ], [ %.2536, %.loopexit707 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  br label %612

371:                                              ; preds = %.lr.ph8584, %.loopexit707
  %.15358583 = phi i1 [ %.05348587, %.lr.ph8584 ], [ %.2536, %.loopexit707 ]
  %372 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  %373 = getelementptr inbounds i8, ptr %372, i64 248
  %374 = invoke noundef zeroext i1 @_ZNK8RcStringneEPKc(ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull @.str.4)
          to label %375 unwind label %395

375:                                              ; preds = %371
  br i1 %374, label %376, label %607

376:                                              ; preds = %375
  %377 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %378 unwind label %395

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

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

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.23)
          to label %384 unwind label %395

384:                                              ; preds = %382
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull align 8 dereferenceable(8) %373)
          to label %386 unwind label %395

386:                                              ; preds = %384
  %387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef nonnull @.str.9)
          to label %388 unwind label %395

388:                                              ; preds = %386
  %389 = getelementptr inbounds i8, ptr %372, i64 8
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef nonnull align 8 dereferenceable(240) %389)
          to label %391 unwind label %395

391:                                              ; preds = %388
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %393 unwind label %395

393:                                              ; preds = %391
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %397 unwind label %395

395:                                              ; preds = %393, %391, %388, %386, %384, %382, %379, %376, %371
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %611

397:                                              ; preds = %393, %378
  %398 = getelementptr inbounds i8, ptr %372, i64 64
  %399 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %398)
          to label %400 unwind label %.loopexit710

400:                                              ; preds = %397
  br i1 %399, label %.lr.ph5762, label %401

401:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %402 unwind label %407

402:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %66) #9
  store ptr %372, ptr %66, align 8, !tbaa !5
  %403 = getelementptr inbounds i8, ptr %66, i64 8
  store ptr %1, ptr %403, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(16) %66) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull %65)
          to label %404 unwind label %409

404:                                              ; preds = %402
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %66) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #9
  %405 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %405, ptr noundef nonnull @.str.5)
          to label %406 unwind label %412

406:                                              ; preds = %404
  invoke void @__cxa_throw(ptr nonnull %405, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %640 unwind label %.loopexit.split-lp

.loopexit710:                                     ; preds = %397
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %611

.loopexit.split-lp:                               ; preds = %406
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %611

407:                                              ; preds = %401
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %411

409:                                              ; preds = %402
  %410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %66) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  br label %411

411:                                              ; preds = %409, %407
  %.pn = phi { ptr, i32 } [ %410, %409 ], [ %408, %407 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #9
  br label %611

412:                                              ; preds = %404
  %413 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %405) #9
  br label %611

.lr.ph5762:                                       ; preds = %400
  %414 = getelementptr inbounds i8, ptr %372, i64 128
  %415 = getelementptr inbounds i8, ptr %372, i64 160
  %416 = call noundef i32 @_ZNK3AST16PathBinding_Type3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  switch i32 %416, label %.lr.ph7698 [
    i32 0, label %428
    i32 1, label %.preheader683
    i32 11, label %442
    i32 2, label %.preheader685
    i32 3, label %.preheader687
    i32 5, label %.preheader689
    i32 6, label %.preheader691
    i32 7, label %.preheader693
    i32 8, label %.preheader695
    i32 10, label %.preheader697
    i32 4, label %.preheader699
    i32 9, label %.preheader701
  ]

.preheader701:                                    ; preds = %.lr.ph5762
  %417 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST16PathBinding_Type10as_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %78, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %482 unwind label %.split2721.split

.preheader699:                                    ; preds = %.lr.ph5762
  %418 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type9as_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %77, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %479 unwind label %.split2982.split

.preheader697:                                    ; preds = %.lr.ph5762
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST16PathBinding_Type12as_TypeAliasEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %76, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %476 unwind label %.split3259.split

.preheader695:                                    ; preds = %.lr.ph5762
  %420 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type13as_TraitAliasEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %75, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %473 unwind label %.split3550.split

.preheader693:                                    ; preds = %.lr.ph5762
  %421 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type8as_TraitEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %74, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %470 unwind label %.split3855.split

.preheader691:                                    ; preds = %.lr.ph5762
  %422 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type8as_UnionEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %73, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %467 unwind label %.split4174.split

.preheader689:                                    ; preds = %.lr.ph5762
  %423 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST16PathBinding_Type7as_EnumEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %72, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %464 unwind label %.split4507.split

.preheader687:                                    ; preds = %.lr.ph5762
  %424 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST16PathBinding_Type9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %71, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %461 unwind label %.split4854.split

.preheader685:                                    ; preds = %.lr.ph5762
  %425 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST16PathBinding_Type8as_CrateEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %70, ptr noundef nonnull align 8 dereferenceable(64) %414)
          to label %458 unwind label %.split5215.split

.preheader683:                                    ; preds = %.lr.ph5762
  %426 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST16PathBinding_Type10as_UnboundEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  %427 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %430 unwind label %.split5590.split

428:                                              ; preds = %.lr.ph5762
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 244, ptr noundef nonnull @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #10
  unreachable

.split5590.split:                                 ; preds = %440, %438, %436, %434, %431, %.preheader683
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %611

430:                                              ; preds = %.preheader683
  br i1 %427, label %431, label %.lr.ph7698

431:                                              ; preds = %430
  %432 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !54
  %433 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %432, ptr noundef nonnull @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE)
          to label %434 unwind label %.split5590.split

434:                                              ; preds = %431
  %435 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %433, ptr noundef nonnull align 8 dereferenceable(8) %373)
          to label %436 unwind label %.split5590.split

436:                                              ; preds = %434
  %437 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %435, ptr noundef nonnull @.str.24)
          to label %438 unwind label %.split5590.split

438:                                              ; preds = %436
  %439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %437, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %440 unwind label %.split5590.split

440:                                              ; preds = %438
  %441 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.lr.ph7698 unwind label %.split5590.split

442:                                              ; preds = %.lr.ph5762
  %443 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3AST16PathBinding_Type16as_TypeParameterEv(ptr noundef nonnull align 8 dereferenceable(32) %415)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %446 unwind label %450

444:                                              ; preds = %449
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %611

446:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %69) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull %68)
          to label %447 unwind label %452

447:                                              ; preds = %446
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  %448 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %448, ptr noundef nonnull @.str.5)
          to label %449 unwind label %455

449:                                              ; preds = %447
  invoke void @__cxa_throw(ptr nonnull %448, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %640 unwind label %444

450:                                              ; preds = %442
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %454

452:                                              ; preds = %446
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  br label %454

454:                                              ; preds = %452, %450
  %.pn606 = phi { ptr, i32 } [ %453, %452 ], [ %451, %450 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  br label %611

455:                                              ; preds = %447
  %456 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %448) #9
  br label %611

.split5215.split:                                 ; preds = %.preheader685
  %457 = landingpad { ptr, i32 }
          cleanup
  br label %611

458:                                              ; preds = %.preheader685
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %70, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split5218.split

.split5218.split:                                 ; preds = %458
  %459 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %70) #9
  br label %611

.split4854.split:                                 ; preds = %.preheader687
  %460 = landingpad { ptr, i32 }
          cleanup
  br label %611

461:                                              ; preds = %.preheader687
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %71, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split4857.split

.split4857.split:                                 ; preds = %461
  %462 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %71) #9
  br label %611

.split4507.split:                                 ; preds = %.preheader689
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %611

464:                                              ; preds = %.preheader689
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %72, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split4510.split

.split4510.split:                                 ; preds = %464
  %465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %72) #9
  br label %611

.split4174.split:                                 ; preds = %.preheader691
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %611

467:                                              ; preds = %.preheader691
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %73, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split4177.split

.split4177.split:                                 ; preds = %467
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %73) #9
  br label %611

.split3855.split:                                 ; preds = %.preheader693
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %611

470:                                              ; preds = %.preheader693
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %74, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split3858.split

.split3858.split:                                 ; preds = %470
  %471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %74) #9
  br label %611

.split3550.split:                                 ; preds = %.preheader695
  %472 = landingpad { ptr, i32 }
          cleanup
  br label %611

473:                                              ; preds = %.preheader695
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %75, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split3553.split

.split3553.split:                                 ; preds = %473
  %474 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %75) #9
  br label %611

.split3259.split:                                 ; preds = %.preheader697
  %475 = landingpad { ptr, i32 }
          cleanup
  br label %611

476:                                              ; preds = %.preheader697
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %76, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split3262.split

.split3262.split:                                 ; preds = %476
  %477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %76) #9
  br label %611

.split2982.split:                                 ; preds = %.preheader699
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %611

479:                                              ; preds = %.preheader699
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %77, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split2985.split

.split2985.split:                                 ; preds = %479
  %480 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %77) #9
  br label %611

.split2721.split:                                 ; preds = %.preheader701
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %611

482:                                              ; preds = %.preheader701
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %78, i1 noundef zeroext false)
          to label %.lr.ph7698.sink.split unwind label %.split2724.split

.split2724.split:                                 ; preds = %482
  %483 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %78) #9
  br label %611

.lr.ph7698.sink.split:                            ; preds = %482, %479, %476, %473, %470, %467, %464, %461, %458
  %.sink8915 = phi ptr [ %70, %458 ], [ %71, %461 ], [ %72, %464 ], [ %73, %467 ], [ %74, %470 ], [ %75, %473 ], [ %76, %476 ], [ %77, %479 ], [ %78, %482 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %.sink8915) #9
  br label %.lr.ph7698

.lr.ph7698:                                       ; preds = %.lr.ph7698.sink.split, %440, %430, %.lr.ph5762
  %484 = getelementptr inbounds i8, ptr %372, i64 96
  %485 = call noundef i32 @_ZNK3AST17PathBinding_Value3tagEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  switch i32 %485, label %.lr.ph8580 [
    i32 0, label %492
    i32 1, label %.preheader673
    i32 7, label %506
    i32 6, label %521
    i32 2, label %.preheader675
    i32 5, label %.preheader677
    i32 3, label %.preheader679
    i32 4, label %.preheader681
  ]

.preheader681:                                    ; preds = %.lr.ph7698
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST17PathBinding_Value11as_FunctionEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %88, ptr noundef nonnull align 8 dereferenceable(64) %398)
          to label %546 unwind label %.split5767.split

.preheader679:                                    ; preds = %.lr.ph7698
  %487 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Value9as_StaticEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %87, ptr noundef nonnull align 8 dereferenceable(64) %398)
          to label %543 unwind label %.split6184.split

.preheader677:                                    ; preds = %.lr.ph7698
  %488 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST17PathBinding_Value10as_EnumVarEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %86, ptr noundef nonnull align 8 dereferenceable(64) %398)
          to label %540 unwind label %.split6617.split

.preheader675:                                    ; preds = %.lr.ph7698
  %489 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Value9as_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %85, ptr noundef nonnull align 8 dereferenceable(64) %398)
          to label %537 unwind label %.split7064.split

.preheader673:                                    ; preds = %.lr.ph7698
  %490 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST17PathBinding_Value10as_UnboundEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  %491 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %494 unwind label %.split7525.split

492:                                              ; preds = %.lr.ph7698
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 270, ptr noundef nonnull @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #10
  unreachable

.split7525.split:                                 ; preds = %504, %502, %500, %498, %495, %.preheader673
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %611

494:                                              ; preds = %.preheader673
  br i1 %491, label %495, label %.lr.ph8580

495:                                              ; preds = %494
  %496 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !54
  %497 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %496, ptr noundef nonnull @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE)
          to label %498 unwind label %.split7525.split

498:                                              ; preds = %495
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %497, ptr noundef nonnull align 8 dereferenceable(8) %373)
          to label %500 unwind label %.split7525.split

500:                                              ; preds = %498
  %501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %499, ptr noundef nonnull @.str.25)
          to label %502 unwind label %.split7525.split

502:                                              ; preds = %500
  %503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %501, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %504 unwind label %.split7525.split

504:                                              ; preds = %502
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %503, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.lr.ph8580 unwind label %.split7525.split

506:                                              ; preds = %.lr.ph7698
  %507 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3AST17PathBinding_Value11as_VariableEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %510 unwind label %514

508:                                              ; preds = %513
  %509 = landingpad { ptr, i32 }
          cleanup
  br label %611

510:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 1 dereferenceable(1) %81) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull %80)
          to label %511 unwind label %516

511:                                              ; preds = %510
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #9
  %512 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %512, ptr noundef nonnull @.str.5)
          to label %513 unwind label %519

513:                                              ; preds = %511
  invoke void @__cxa_throw(ptr nonnull %512, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %640 unwind label %508

514:                                              ; preds = %506
  %515 = landingpad { ptr, i32 }
          cleanup
  br label %518

516:                                              ; preds = %510
  %517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  br label %518

518:                                              ; preds = %516, %514
  %.pn583 = phi { ptr, i32 } [ %517, %516 ], [ %515, %514 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #9
  br label %611

519:                                              ; preds = %511
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %512) #9
  br label %611

521:                                              ; preds = %.lr.ph7698
  %522 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3AST17PathBinding_Value10as_GenericEv(ptr noundef nonnull align 8 dereferenceable(32) %484)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %525 unwind label %529

523:                                              ; preds = %528
  %524 = landingpad { ptr, i32 }
          cleanup
  br label %611

525:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull %83)
          to label %526 unwind label %531

526:                                              ; preds = %525
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #9
  %527 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %527, ptr noundef nonnull @.str.5)
          to label %528 unwind label %534

528:                                              ; preds = %526
  invoke void @__cxa_throw(ptr nonnull %527, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %640 unwind label %523

529:                                              ; preds = %521
  %530 = landingpad { ptr, i32 }
          cleanup
  br label %533

531:                                              ; preds = %525
  %532 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  br label %533

533:                                              ; preds = %531, %529
  %.pn579 = phi { ptr, i32 } [ %532, %531 ], [ %530, %529 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #9
  br label %611

534:                                              ; preds = %526
  %535 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %527) #9
  br label %611

.split7064.split:                                 ; preds = %.preheader675
  %536 = landingpad { ptr, i32 }
          cleanup
  br label %611

537:                                              ; preds = %.preheader675
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %85, i1 noundef zeroext false)
          to label %.lr.ph8580.sink.split unwind label %.split7067.split

.split7067.split:                                 ; preds = %537
  %538 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %85) #9
  br label %611

.split6617.split:                                 ; preds = %.preheader677
  %539 = landingpad { ptr, i32 }
          cleanup
  br label %611

540:                                              ; preds = %.preheader677
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %86, i1 noundef zeroext false)
          to label %.lr.ph8580.sink.split unwind label %.split6620.split

.split6620.split:                                 ; preds = %540
  %541 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %86) #9
  br label %611

.split6184.split:                                 ; preds = %.preheader679
  %542 = landingpad { ptr, i32 }
          cleanup
  br label %611

543:                                              ; preds = %.preheader679
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %87, i1 noundef zeroext false)
          to label %.lr.ph8580.sink.split unwind label %.split6187.split

.split6187.split:                                 ; preds = %543
  %544 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %87) #9
  br label %611

.split5767.split:                                 ; preds = %.preheader681
  %545 = landingpad { ptr, i32 }
          cleanup
  br label %611

546:                                              ; preds = %.preheader681
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %88, i1 noundef zeroext false)
          to label %.lr.ph8580.sink.split unwind label %.split5770.split

.split5770.split:                                 ; preds = %546
  %547 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %88) #9
  br label %611

.lr.ph8580.sink.split:                            ; preds = %546, %543, %540, %537
  %.sink8916 = phi ptr [ %85, %537 ], [ %86, %540 ], [ %87, %543 ], [ %88, %546 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %.sink8916) #9
  br label %.lr.ph8580

.lr.ph8580:                                       ; preds = %.lr.ph8580.sink.split, %504, %494, %.lr.ph7698
  %548 = getelementptr inbounds i8, ptr %372, i64 192
  %549 = getelementptr inbounds i8, ptr %372, i64 224
  %550 = call noundef i32 @_ZNK3AST17PathBinding_Macro3tagEv(ptr noundef nonnull align 8 dereferenceable(24) %549)
  switch i32 %550, label %.loopexit707 [
    i32 0, label %555
    i32 1, label %.preheader
    i32 5, label %.preheader669
    i32 4, label %.preheader671
    i32 3, label %575
    i32 2, label %591
  ]

.preheader671:                                    ; preds = %.lr.ph8580
  %551 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro12as_ProcMacroEv(ptr noundef nonnull align 8 dereferenceable(24) %549)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(240) %90, ptr noundef nonnull align 8 dereferenceable(56) %548)
          to label %573 unwind label %.split7703.split

.preheader669:                                    ; preds = %.lr.ph8580
  %552 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro13as_MacroRulesEv(ptr noundef nonnull align 8 dereferenceable(24) %549)
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_MacroEEE(ptr noundef nonnull align 8 dereferenceable(240) %89, ptr noundef nonnull align 8 dereferenceable(56) %548)
          to label %570 unwind label %.split8045.split

.preheader:                                       ; preds = %.lr.ph8580
  %553 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNK3AST17PathBinding_Macro10as_UnboundEv(ptr noundef nonnull align 8 dereferenceable(24) %549)
  %554 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %557 unwind label %.split8403.split

555:                                              ; preds = %.lr.ph8580
  call void @__assert_fail(ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.21, i32 noundef 288, ptr noundef nonnull @__PRETTY_FUNCTION__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE) #10
  unreachable

.split8403.split:                                 ; preds = %567, %565, %563, %561, %558, %.preheader
  %556 = landingpad { ptr, i32 }
          cleanup
  br label %611

557:                                              ; preds = %.preheader
  br i1 %554, label %558, label %.loopexit707

558:                                              ; preds = %557
  %559 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !54
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %559, ptr noundef nonnull @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE)
          to label %561 unwind label %.split8403.split

561:                                              ; preds = %558
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %560, ptr noundef nonnull align 8 dereferenceable(8) %373)
          to label %563 unwind label %.split8403.split

563:                                              ; preds = %561
  %564 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %562, ptr noundef nonnull @.str.26)
          to label %565 unwind label %.split8403.split

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

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

.split8045.split:                                 ; preds = %.preheader669
  %569 = landingpad { ptr, i32 }
          cleanup
  br label %611

570:                                              ; preds = %.preheader669
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %89, i1 noundef zeroext false)
          to label %..loopexit651_crit_edge unwind label %.split8048.split

..loopexit651_crit_edge:                          ; preds = %570
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %89) #9
  br label %.loopexit707

.split8048.split:                                 ; preds = %570
  %571 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %89) #9
  br label %611

.split7703.split:                                 ; preds = %.preheader671
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %611

573:                                              ; preds = %.preheader671
  invoke void @_Z9_add_itemRK4SpanRN3AST6ModuleE9IndexNameRK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(480) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(36) %370, ptr noundef nonnull %90, i1 noundef zeroext false)
          to label %..loopexit652_crit_edge unwind label %.split7706.split

..loopexit652_crit_edge:                          ; preds = %573
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %90) #9
  br label %.loopexit707

.split7706.split:                                 ; preds = %573
  %574 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %90) #9
  br label %611

575:                                              ; preds = %.lr.ph8580
  %576 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro21as_ProcMacroAttributeEv(ptr noundef nonnull align 8 dereferenceable(24) %549)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #9
  store ptr @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE, ptr %91, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %92) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %577 unwind label %581

577:                                              ; preds = %575
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #9
  store ptr %91, ptr %94, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(8) %94) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull %93)
          to label %578 unwind label %583

578:                                              ; preds = %577
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #9
  %579 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %579, ptr noundef nonnull @.str.27)
          to label %580 unwind label %586

580:                                              ; preds = %578
  invoke void @__cxa_throw(ptr nonnull %579, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %640 unwind label %588

581:                                              ; preds = %575
  %582 = landingpad { ptr, i32 }
          cleanup
  br label %585

583:                                              ; preds = %577
  %584 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #9
  br label %585

585:                                              ; preds = %583, %581
  %.pn562 = phi { ptr, i32 } [ %584, %583 ], [ %582, %581 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %92) #9
  br label %590

586:                                              ; preds = %578
  %587 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %579) #9
  br label %590

588:                                              ; preds = %580
  %589 = landingpad { ptr, i32 }
          cleanup
  br label %590

590:                                              ; preds = %588, %586, %585
  %.pn564 = phi { ptr, i32 } [ %589, %588 ], [ %587, %586 ], [ %.pn562, %585 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #9
  br label %611

591:                                              ; preds = %.lr.ph8580
  %592 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3AST17PathBinding_Macro18as_ProcMacroDeriveEv(ptr noundef nonnull align 8 dereferenceable(24) %549)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #9
  store ptr @__func__._Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE, ptr %95, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #9
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %593 unwind label %597

593:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #9
  store ptr %95, ptr %98, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ25Resolve_Index_Module_BaseRKN3AST5CrateERNS4_6ModuleEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(8) %98) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull %97)
          to label %594 unwind label %599

594:                                              ; preds = %593
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #9
  %595 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %595, ptr noundef nonnull @.str.27)
          to label %596 unwind label %602

596:                                              ; preds = %594
  invoke void @__cxa_throw(ptr nonnull %595, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %640 unwind label %604

597:                                              ; preds = %591
  %598 = landingpad { ptr, i32 }
          cleanup
  br label %601

599:                                              ; preds = %593
  %600 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #9
  br label %601

601:                                              ; preds = %599, %597
  %.pn558 = phi { ptr, i32 } [ %600, %599 ], [ %598, %597 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #9
  br label %606

602:                                              ; preds = %594
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %595) #9
  br label %606

604:                                              ; preds = %596
  %605 = landingpad { ptr, i32 }
          cleanup
  br label %606

606:                                              ; preds = %604, %602, %601
  %.pn560 = phi { ptr, i32 } [ %605, %604 ], [ %603, %602 ], [ %.pn558, %601 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #9
  br label %611

607:                                              ; preds = %375
  %608 = call noundef i32 @_ZNK3AST10Visibility2tyEv(ptr noundef nonnull align 8 dereferenceable(36) %370)
  %.not556 = icmp ne i32 %608, 0
  %spec.select = select i1 %.not556, i1 true, i1 %.15358583
  br label %.loopexit707

.loopexit707:                                     ; preds = %567, %557, %..loopexit652_crit_edge, %..loopexit651_crit_edge, %.lr.ph8580, %607
  %.2536 = phi i1 [ %spec.select, %607 ], [ %.15358583, %.lr.ph8580 ], [ %.15358583, %..loopexit651_crit_edge ], [ %.15358583, %..loopexit652_crit_edge ], [ %.15358583, %557 ], [ %.15358583, %567 ]
  %609 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  %610 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  br i1 %610, label %371, label %._crit_edge8585

611:                                              ; preds = %.loopexit710, %.loopexit.split-lp, %411, %412, %.split8403.split, %590, %606, %.split8048.split, %.split8045.split, %.split7706.split, %.split7703.split, %.split7525.split, %519, %518, %508, %534, %533, %523, %.split7067.split, %.split7064.split, %.split6620.split, %.split6617.split, %.split6187.split, %.split6184.split, %.split5770.split, %.split5767.split, %.split5590.split, %455, %454, %444, %.split5218.split, %.split5215.split, %.split4857.split, %.split4854.split, %.split4510.split, %.split4507.split, %.split4177.split, %.split4174.split, %.split3858.split, %.split3855.split, %.split3553.split, %.split3550.split, %.split3262.split, %.split3259.split, %.split2985.split, %.split2982.split, %.split2724.split, %.split2721.split, %395
  %.pn588.pn.pn.pn.pn = phi { ptr, i32 } [ %396, %395 ], [ %413, %412 ], [ %.pn, %411 ], [ %429, %.split5590.split ], [ %445, %444 ], [ %456, %455 ], [ %.pn606, %454 ], [ %459, %.split5218.split ], [ %457, %.split5215.split ], [ %462, %.split4857.split ], [ %460, %.split4854.split ], [ %465, %.split4510.split ], [ %463, %.split4507.split ], [ %468, %.split4177.split ], [ %466, %.split4174.split ], [ %471, %.split3858.split ], [ %469, %.split3855.split ], [ %474, %.split3553.split ], [ %472, %.split3550.split ], [ %477, %.split3262.split ], [ %475, %.split3259.split ], [ %480, %.split2985.split ], [ %478, %.split2982.split ], [ %483, %.split2724.split ], [ %481, %.split2721.split ], [ %493, %.split7525.split ], [ %509, %508 ], [ %520, %519 ], [ %.pn583, %518 ], [ %524, %523 ], [ %535, %534 ], [ %.pn579, %533 ], [ %538, %.split7067.split ], [ %536, %.split7064.split ], [ %541, %.split6620.split ], [ %539, %.split6617.split ], [ %544, %.split6187.split ], [ %542, %.split6184.split ], [ %547, %.split5770.split ], [ %545, %.split5767.split ], [ %.pn560, %606 ], [ %.pn564, %590 ], [ %556, %.split8403.split ], [ %571, %.split8048.split ], [ %569, %.split8045.split ], [ %574, %.split7706.split ], [ %572, %.split7703.split ], [ %lpad.loopexit, %.loopexit710 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  br label %638

612:                                              ; preds = %.lr.ph8588, %._crit_edge8585
  %.3537 = phi i1 [ %.1535.lcssa, %._crit_edge8585 ], [ %.05348587, %.lr.ph8588 ]
  %613 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #9
  %614 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  br i1 %614, label %.lr.ph8588, label %._crit_edge8589.loopexit

._crit_edge8593:                                  ; preds = %626, %._crit_edge8589
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #9
  %615 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #9
  %616 = call ptr @_ZNSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %615) #9
  store ptr %616, ptr %101, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #9
  %617 = call ptr @_ZNSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %615) #9
  store ptr %617, ptr %102, align 8
  %618 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  br i1 %618, label %.lr.ph8595, label %._crit_edge8596

.lr.ph8592:                                       ; preds = %._crit_edge8589, %626
  %619 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #9
  %620 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %619) #9
  %621 = getelementptr inbounds i8, ptr %620, i64 80
  %622 = call noundef ptr @_ZN3AST4Item10opt_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %621)
  %.not = icmp eq ptr %622, null
  br i1 %.not, label %626, label %623

623:                                              ; preds = %.lr.ph8592
  invoke void @_Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %622)
          to label %626 unwind label %624

624:                                              ; preds = %623
  %625 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #9
  br label %638

626:                                              ; preds = %623, %.lr.ph8592
  %627 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #9
  %628 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  br i1 %628, label %.lr.ph8592, label %._crit_edge8593

._crit_edge8596:                                  ; preds = %635, %._crit_edge8593
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #9
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %3) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  ret void

.lr.ph8595:                                       ; preds = %._crit_edge8593, %635
  %629 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  %630 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %629) #9
  br i1 %630, label %631, label %635

631:                                              ; preds = %.lr.ph8595
  %632 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %629) #9
  invoke void @_Z25Resolve_Index_Module_BaseRKN3AST5CrateERNS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %632)
          to label %635 unwind label %633

633:                                              ; preds = %631
  %634 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #9
  br label %638

635:                                              ; preds = %631, %.lr.ph8595
  %636 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  %637 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  br i1 %637, label %.lr.ph8595, label %._crit_edge8596

638:                                              ; preds = %611, %624, %633, %355, %316
  %.pn623.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn623.pn.pn.pn, %316 ], [ %.pn620.pn, %355 ], [ %.pn588.pn.pn.pn.pn, %611 ], [ %625, %624 ], [ %634, %633 ]
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %3) #9
  br label %639

639:                                              ; preds = %638, %120
  %.pn623.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn623.pn.pn.pn.pn, %638 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  resume { ptr, i32 } %.pn623.pn.pn.pn.pn.pn

640:                                              ; preds = %596, %580, %528, %513, %449, %406, %176
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type9make_EnumENS0_9Data_EnumE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_UnionENS0_10Data_UnionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type10make_TraitENS0_10Data_TraitE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type15make_TraitAliasENS0_15Data_TraitAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type14make_TypeAliasENS0_14Data_TypeAliasE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StructENS0_11Data_StructE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value13make_FunctionENS0_13Data_FunctionE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value11make_StaticENS0_11Data_StaticE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Macro15make_MacroRulesENS0_15Data_MacroRulesE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Macro") align 8, ptr, ptr) local_unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_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(256) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST7UseItem3EntESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_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(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN3AST6ModuleEESt6vectorIS4_SaIS4_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !6, i64 0, !11, i64 8}
!11 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!12 = !{!13, !7, i64 177}
!13 = !{!"_ZTSN3AST6ModuleE", !14, i64 0, !20, i64 32, !24, i64 56, !28, i64 80, !32, i64 104, !33, i64 176, !7, i64 177, !37, i64 184, !37, i64 240, !37, i64 296, !37, i64 352, !42, i64 408, !46, i64 432, !50, i64 456}
!14 = !{!"_ZTSN3AST12AbsolutePathE", !15, i64 0, !16, i64 8}
!15 = !{!"_ZTS8RcString", !6, i64 0}
!16 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSN3AST6Module8FileInfoE", !33, i64 0, !33, i64 1, !34, i64 8, !34, i64 40}
!33 = !{!"bool", !7, i64 0}
!34 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !35, i64 0, !36, i64 8, !7, i64 16}
!35 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!36 = !{!"long", !7, i64 0}
!37 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !38, i64 0}
!38 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3AST6Module8IndexEntEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !36, i64 8, !39, i64 16, !36, i64 24, !40, i64 32, !6, i64 48}
!39 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!40 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !41, i64 0, !36, i64 8}
!41 = !{!"float", !7, i64 0}
!42 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!46 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!50 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !51, i64 0}
!51 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!54 = !{!55, !55, i64 0}
!55 = !{!"int", !7, i64 0}


; Effective O3 passes: AggressiveInstCombinePass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass