; LLVM IR from facebook/redex :: opt/builder_pattern (BuilderAnalysis)

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

%"class.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::vector.236" = type { %"struct.std::_Vector_base.237" }
%"struct.std::_Vector_base.237" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.UnorderedSet.45 = type { %"class.std::unordered_set.47" }
%"class.std::unordered_set.47" = type { %"class.std::_Hashtable.48" }
%"class.std::_Hashtable.48" = 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.UnorderedMap<const IRInstruction *, std::vector<cfg::InstructionIteratorImpl<false>>>::UnorderedIterable" = type { ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.std::pair.304" = type <{ %"class.UnorderedSet<const DexType *>::FixedIterator", i8, [7 x i8] }>
%"class.UnorderedSet<const DexType *>::FixedIterator" = type { %"struct.std::__detail::_Node_iterator.306" }
%"struct.std::__detail::_Node_iterator.306" = type { %"struct.std::__detail::_Node_iterator_base.307" }
%"struct.std::__detail::_Node_iterator_base.307" = type { ptr }
%"class.boost::optional" = type { %"class.boost::optional_detail::tc_optional_base" }
%"class.boost::optional_detail::tc_optional_base" = type { i8, ptr }
%class.LivenessFixpointIterator = type { %"class.ir_analyzer::BaseBackwardsIRAnalyzer" }
%"class.ir_analyzer::BaseBackwardsIRAnalyzer" = type { %"class.sparta::MonotonicFixpointIterator.309" }
%"class.sparta::MonotonicFixpointIterator.309" = type { %"class.sparta::fp_impl::MonotonicFixpointIteratorBase.310", %"class.sparta::WeakPartialOrdering" }
%"class.sparta::fp_impl::MonotonicFixpointIteratorBase.310" = type { %"class.sparta::FixpointIterator.311", ptr, %"class.sparta::SetAbstractDomain", %"class.std::unordered_map.321", %"class.std::unordered_map.321" }
%"class.sparta::FixpointIterator.311" = type { ptr }
%"class.sparta::SetAbstractDomain" = type { %"class.sparta::PowersetAbstractDomain" }
%"class.sparta::PowersetAbstractDomain" = type { %"class.sparta::AbstractDomainScaffolding.312" }
%"class.sparta::AbstractDomainScaffolding.312" = type { i32, %"class.sparta::set_impl::SetValue" }
%"class.sparta::set_impl::SetValue" = type { %"class.sparta::PatriciaTreeSet" }
%"class.sparta::PatriciaTreeSet" = type { %"class.sparta::pt_core::PatriciaTreeCore.319" }
%"class.sparta::pt_core::PatriciaTreeCore.319" = type { %"class.boost::intrusive_ptr.320" }
%"class.boost::intrusive_ptr.320" = type { ptr }
%"class.std::unordered_map.321" = type { %"class.std::_Hashtable.322" }
%"class.std::_Hashtable.322" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.sparta::WeakPartialOrdering" = type <{ %"class.std::vector.182", %"class.std::vector.187", %"class.std::unordered_map.192", i8, [7 x i8] }>
%"class.std::vector.182" = type { %"struct.std::_Vector_base.183" }
%"struct.std::_Vector_base.183" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.187" = type { %"struct.std::_Vector_base.188" }
%"struct.std::_Vector_base.188" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.192" = type { %"class.std::_Hashtable.193" }
%"class.std::_Hashtable.193" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.__gnu_cxx::__normal_iterator.241" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.335" = type { ptr }
%"class.sparta::pt_core::PatriciaTreeIterator" = type { %"class.sparta::pt_core::PatriciaTreePostOrder" }
%"class.sparta::pt_core::PatriciaTreePostOrder" = type { %"class.boost::intrusive_ptr.320", %"class.std::stack", ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.builder_pattern::BuilderAnalysis" = type <{ %"class.std::unique_ptr", %class.UnorderedMap, %class.UnorderedSet, ptr, ptr, %"class.std::unique_ptr.21", %class.UnorderedMap.29, ptr, i64, i64, i8, [7 x i8] }>
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%class.UnorderedMap = type { %"class.std::unordered_map" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%class.UnorderedSet = type { %"class.std::unordered_set" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.8" }
%"class.std::_Hashtable.8" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unique_ptr.21" = type { %"struct.std::__uniq_ptr_data.22" }
%"struct.std::__uniq_ptr_data.22" = type { %"class.std::__uniq_ptr_impl.23" }
%"class.std::__uniq_ptr_impl.23" = type { %"class.std::tuple.24" }
%"class.std::tuple.24" = type { %"struct.std::_Tuple_impl.25" }
%"struct.std::_Tuple_impl.25" = type { %"struct.std::_Head_base.28" }
%"struct.std::_Head_base.28" = type { ptr }
%class.UnorderedMap.29 = type { %"class.std::unordered_map.31" }
%"class.std::unordered_map.31" = type { %"class.std::_Hashtable.32" }
%"class.std::_Hashtable.32" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::pair" = type { ptr, %"class.std::vector.206" }
%"class.std::vector.206" = type { %"struct.std::_Vector_base.207" }
%"struct.std::_Vector_base.207" = type { %"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::InstructionIteratorImpl<false>, std::allocator<cfg::InstructionIteratorImpl<false>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.MethodItemEntry = type { %"class.boost::intrusive::list_member_hook", i32, %union.anon.211 }
%"class.boost::intrusive::list_member_hook" = type { %"class.boost::intrusive::generic_hook" }
%"class.boost::intrusive::generic_hook" = type { %"struct.boost::intrusive::list_node" }
%"struct.boost::intrusive::list_node" = type { ptr, ptr }
%union.anon.211 = type { ptr }

@.str.17 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [45 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef, i32 noundef) #2

declare void @_Z5trace11TraceModuleibPKcz(i32 noundef, i32 noundef, i1 noundef zeroext, ptr noundef, ...) #2

declare void @_Z4showB5cxx11PK12DexMethodRef(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

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

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

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

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

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

declare void @_Z4showB5cxx11PK13IRInstruction(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4showI13IRInstructionRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) #3

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

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

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

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

declare void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind writable sret(%"class.std::vector.236") align 8, ptr noundef nonnull align 8 dereferenceable(160)) #2

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

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

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

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

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

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

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

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

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

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

declare noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32), i16 noundef zeroext) #2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN15builder_pattern12_GLOBAL__N_121get_instantiated_typeEPK13IRInstruction(ptr noundef) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode12is_an_invokeE8IROpcode(i16 noundef zeroext) #4

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15builder_pattern15BuilderAnalysis12escape_typesEv(ptr dead_on_unwind noalias writable sret(%class.UnorderedSet.45) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1) #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i1, align 1
  %9 = alloca ptr, align 8
  %10 = alloca %"class.UnorderedMap<const IRInstruction *, std::vector<cfg::InstructionIteratorImpl<false>>>::UnorderedIterable", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %14 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"struct.std::pair.304", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"struct.std::pair.304", align 8
  %30 = alloca i32, align 4
  %31 = alloca %"class.boost::optional", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"struct.std::pair.304", align 8
  %35 = alloca %class.LivenessFixpointIterator, align 8
  %36 = alloca %"class.sparta::SetAbstractDomain", align 8
  %37 = alloca ptr, align 8
  %38 = alloca %"class.std::vector.236", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.241", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.241", align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.335", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.335", align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %53 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %54 = alloca i32, align 4
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.boost::optional", align 8
  %59 = alloca %"class.boost::optional", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca ptr, align 8
  %62 = alloca %"class.boost::optional", align 8
  %63 = alloca ptr, align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"struct.std::pair.304", align 8
  store ptr %0, ptr %3, align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  %67 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %68 = getelementptr inbounds %"class.builder_pattern::BuilderAnalysis", ptr %67, i32 0, i32 7
  %69 = load ptr, ptr %68, align 8, !tbaa !9
  %70 = call noundef ptr @_ZN9DexMethod8get_codeEv(ptr noundef nonnull align 8 dereferenceable(88) %69)
  store ptr %70, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %71 = load ptr, ptr %5, align 8, !tbaa !5
  %72 = call noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %71)
  store ptr %72, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %73 = call noundef ptr @_ZN15builder_pattern12_GLOBAL__N_120get_obj_default_ctorEv()
  store ptr %73, ptr %7, align 8, !tbaa !5
  store i1 false, ptr %8, align 1
  call void @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %74 = getelementptr inbounds %"class.builder_pattern::BuilderAnalysis", ptr %67, i32 0, i32 1
  %75 = invoke ptr @_Z17UnorderedIterableI12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS7_EESt4hashIS3_ESt8equal_toIS3_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESH_EEbE4typeELb1EEDaRSH_(ptr noundef nonnull align 8 dereferenceable(56) %74)
          to label %76 unwind label %91

76:                                               ; preds = %2
  %77 = getelementptr inbounds %"class.UnorderedMap<const IRInstruction *, std::vector<cfg::InstructionIteratorImpl<false>>>::UnorderedIterable", ptr %10, i32 0, i32 0
  store ptr %75, ptr %77, align 8
  store ptr %10, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %78 = load ptr, ptr %9, align 8, !tbaa !5
  %79 = invoke ptr @_ZN12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %80 unwind label %95

80:                                               ; preds = %76
  %81 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %13, i32 0, i32 0
  %82 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %81, i32 0, i32 0
  store ptr %79, ptr %82, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %83 = load ptr, ptr %9, align 8, !tbaa !5
  %84 = invoke ptr @_ZN12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %85 unwind label %99

85:                                               ; preds = %80
  %86 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %14, i32 0, i32 0
  %87 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %86, i32 0, i32 0
  store ptr %84, ptr %87, align 8
  br label %88

88:                                               ; preds = %334, %85
  %89 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS9_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br i1 %89, label %103, label %90

90:                                               ; preds = %88
  store i32 2, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %340

91:                                               ; preds = %2
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %11, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %12, align 4
  br label %339

95:                                               ; preds = %76
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %11, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %12, align 4
  br label %338

99:                                               ; preds = %80
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %11, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %12, align 4
  br label %337

103:                                              ; preds = %88
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %104 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS9_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  store ptr %104, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %105 = load ptr, ptr %16, align 8, !tbaa !5
  %106 = getelementptr inbounds %"struct.std::pair", ptr %105, i32 0, i32 0
  %107 = load ptr, ptr %106, align 8, !tbaa !37
  store ptr %107, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %108 = load ptr, ptr %17, align 8, !tbaa !5
  %109 = invoke noundef ptr @_ZN15builder_pattern12_GLOBAL__N_121get_instantiated_typeEPK13IRInstruction(ptr noundef %108)
          to label %110 unwind label %122

110:                                              ; preds = %103
  store ptr %109, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %111 = load ptr, ptr %16, align 8, !tbaa !5
  %112 = getelementptr inbounds %"struct.std::pair", ptr %111, i32 0, i32 1
  store ptr %112, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %113 = load ptr, ptr %19, align 8, !tbaa !5
  %114 = call ptr @_ZNKSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %113) #7
  %115 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %20, i32 0, i32 0
  store ptr %114, ptr %115, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %116 = load ptr, ptr %19, align 8, !tbaa !5
  %117 = call ptr @_ZNKSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %116) #7
  %118 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %21, i32 0, i32 0
  store ptr %117, ptr %118, align 8
  br label %119

119:                                              ; preds = %330, %110
  %120 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3cfg23InstructionIteratorImplILb0EEESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br i1 %120, label %126, label %121

121:                                              ; preds = %119
  store i32 4, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %333

122:                                              ; preds = %103
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %11, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %12, align 4
  br label %336

126:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %127 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3cfg23InstructionIteratorImplILb0EEESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  store ptr %127, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %128 = load ptr, ptr %22, align 8, !tbaa !5
  %129 = invoke noundef ptr @_ZNK3cfg23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(32) %128)
          to label %130 unwind label %145

130:                                              ; preds = %126
  %131 = getelementptr inbounds %struct.MethodItemEntry, ptr %129, i32 0, i32 2
  %132 = load ptr, ptr %131, align 8, !tbaa !43
  store ptr %132, ptr %23, align 8, !tbaa !5
  %133 = load ptr, ptr %23, align 8, !tbaa !5
  %134 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %135 unwind label %145

135:                                              ; preds = %130
  %136 = invoke noundef zeroext i1 @_ZN6opcode12is_an_invokeE8IROpcode(i16 noundef zeroext %134)
          to label %137 unwind label %145

137:                                              ; preds = %135
  br i1 %136, label %138, label %194

138:                                              ; preds = %137
  %139 = load ptr, ptr %23, align 8, !tbaa !5
  %140 = invoke noundef ptr @_ZNK13IRInstruction10get_methodEv(ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %141 unwind label %145

141:                                              ; preds = %138
  %142 = load ptr, ptr %7, align 8, !tbaa !5
  %143 = icmp eq ptr %140, %142
  br i1 %143, label %144, label %149

144:                                              ; preds = %141
  store i32 5, ptr %15, align 4
  br label %324

145:                                              ; preds = %248, %245, %239, %236, %233, %230, %227, %220, %201, %194, %138, %135, %130, %126
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %11, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %12, align 4
  br label %332

149:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %150 = load ptr, ptr %23, align 8, !tbaa !5
  %151 = invoke noundef ptr @_ZNK13IRInstruction10get_methodEv(ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %152 unwind label %166

152:                                              ; preds = %149
  %153 = invoke noundef ptr @_Z14resolve_methodP12DexMethodRef12MethodSearchPK9DexMethod(ptr noundef %151, i32 noundef 4, ptr noundef null)
          to label %154 unwind label %166

154:                                              ; preds = %152
  store ptr %153, ptr %24, align 8, !tbaa !5
  br label %155

155:                                              ; preds = %154
  %156 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %157 unwind label %166

157:                                              ; preds = %155
  br i1 %156, label %158, label %184

158:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  %159 = load ptr, ptr %18, align 8, !tbaa !5
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef %159)
          to label %160 unwind label %170

160:                                              ; preds = %158
  %161 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #7
  %162 = load ptr, ptr %24, align 8, !tbaa !5
  invoke void @_Z4showB5cxx11PK12DexMethodRef(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef %162)
          to label %163 unwind label %174

163:                                              ; preds = %160
  %164 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef @.str.17, ptr noundef %161, ptr noundef %164)
          to label %165 unwind label %178

165:                                              ; preds = %163
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %184

166:                                              ; preds = %186, %155, %152, %149
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %11, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %12, align 4
  br label %193

170:                                              ; preds = %158
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %11, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %12, align 4
  br label %183

174:                                              ; preds = %160
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %11, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %12, align 4
  br label %182

178:                                              ; preds = %163
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %11, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %182

182:                                              ; preds = %178, %174
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %183

183:                                              ; preds = %182, %170
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %193

184:                                              ; preds = %165, %157
  br label %185

185:                                              ; preds = %184
  br label %186

186:                                              ; preds = %185
  %187 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %188 unwind label %166

188:                                              ; preds = %186
  %189 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 0
  %190 = extractvalue { ptr, i8 } %187, 0
  store ptr %190, ptr %189, align 8
  %191 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 1
  %192 = extractvalue { ptr, i8 } %187, 1
  store i8 %192, ptr %191, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %323

193:                                              ; preds = %183, %166
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %332

194:                                              ; preds = %137
  %195 = load ptr, ptr %23, align 8, !tbaa !5
  %196 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %195)
          to label %197 unwind label %145

197:                                              ; preds = %194
  %198 = zext i16 %196 to i32
  %199 = icmp eq i32 %198, 19
  br i1 %199, label %200, label %227

200:                                              ; preds = %197
  br label %201

201:                                              ; preds = %200
  %202 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %203 unwind label %145

203:                                              ; preds = %201
  br i1 %202, label %204, label %218

204:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #7
  %205 = load ptr, ptr %18, align 8, !tbaa !5
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef %205)
          to label %206 unwind label %209

206:                                              ; preds = %204
  %207 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef @.str.18, ptr noundef %207)
          to label %208 unwind label %213

208:                                              ; preds = %206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  br label %218

209:                                              ; preds = %204
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %11, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %12, align 4
  br label %217

213:                                              ; preds = %206
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %11, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %217

217:                                              ; preds = %213, %209
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  br label %332

218:                                              ; preds = %208, %203
  br label %219

219:                                              ; preds = %218
  br label %220

220:                                              ; preds = %219
  %221 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %222 unwind label %145

222:                                              ; preds = %220
  %223 = getelementptr inbounds { ptr, i8 }, ptr %29, i32 0, i32 0
  %224 = extractvalue { ptr, i8 } %221, 0
  store ptr %224, ptr %223, align 8
  %225 = getelementptr inbounds { ptr, i8 }, ptr %29, i32 0, i32 1
  %226 = extractvalue { ptr, i8 } %221, 1
  store i8 %226, ptr %225, align 8
  br label %322

227:                                              ; preds = %197
  %228 = load ptr, ptr %23, align 8, !tbaa !5
  %229 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %228)
          to label %230 unwind label %145

230:                                              ; preds = %227
  %231 = invoke noundef zeroext i1 @_ZN6opcode10is_an_iputE8IROpcode(i16 noundef zeroext %229)
          to label %232 unwind label %145

232:                                              ; preds = %230
  br i1 %231, label %251, label %233

233:                                              ; preds = %232
  %234 = load ptr, ptr %23, align 8, !tbaa !5
  %235 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %234)
          to label %236 unwind label %145

236:                                              ; preds = %233
  %237 = invoke noundef zeroext i1 @_ZN6opcode10is_an_sputE8IROpcode(i16 noundef zeroext %235)
          to label %238 unwind label %145

238:                                              ; preds = %236
  br i1 %237, label %251, label %239

239:                                              ; preds = %238
  %240 = load ptr, ptr %23, align 8, !tbaa !5
  %241 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %240)
          to label %242 unwind label %145

242:                                              ; preds = %239
  %243 = zext i16 %241 to i32
  %244 = icmp eq i32 %243, 54
  br i1 %244, label %251, label %245

245:                                              ; preds = %242
  %246 = load ptr, ptr %23, align 8, !tbaa !5
  %247 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %246)
          to label %248 unwind label %145

248:                                              ; preds = %245
  %249 = invoke noundef zeroext i1 @_ZN6opcode11is_a_returnE8IROpcode(i16 noundef zeroext %247)
          to label %250 unwind label %145

250:                                              ; preds = %248
  br i1 %249, label %251, label %321

251:                                              ; preds = %250, %242, %238, %232
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %252 = load ptr, ptr %23, align 8, !tbaa !5
  %253 = invoke noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %252, i16 noundef zeroext 0)
          to label %254 unwind label %287

254:                                              ; preds = %251
  store i32 %253, ptr %30, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #7
  %255 = getelementptr inbounds %"class.builder_pattern::BuilderAnalysis", ptr %67, i32 0, i32 5
  %256 = call noundef ptr @_ZNKSt10unique_ptrIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %255) #7
  %257 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12UnorderedMapIPK13IRInstructionN6sparta19AbstractEnvironmentINS3_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS3_17TopValueInterfaceIS8_EEEEEESt4hashIS2_ESt8equal_toIS2_EE2atERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %256, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %258 unwind label %291

258:                                              ; preds = %254
  %259 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %257, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %260 unwind label %291

260:                                              ; preds = %258
  %261 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %259)
          to label %262 unwind label %291

262:                                              ; preds = %260
  %263 = getelementptr inbounds %"class.boost::optional", ptr %31, i32 0, i32 0
  %264 = getelementptr inbounds { i8, ptr }, ptr %263, i32 0, i32 0
  %265 = extractvalue { i8, ptr } %261, 0
  store i8 %265, ptr %264, align 8
  %266 = getelementptr inbounds { i8, ptr }, ptr %263, i32 0, i32 1
  %267 = extractvalue { i8, ptr } %261, 1
  store ptr %267, ptr %266, align 8
  %268 = call noundef zeroext i1 @_ZNK5boost8optionalIPK13IRInstructionEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  br i1 %268, label %269, label %318

269:                                              ; preds = %262
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost8optionalIPK13IRInstructionE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %31)
          to label %271 unwind label %291

271:                                              ; preds = %269
  %272 = load ptr, ptr %270, align 8, !tbaa !5
  %273 = load ptr, ptr %17, align 8, !tbaa !5
  %274 = icmp eq ptr %272, %273
  br i1 %274, label %275, label %318

275:                                              ; preds = %271
  br label %276

276:                                              ; preds = %275
  %277 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %278 unwind label %291

278:                                              ; preds = %276
  br i1 %277, label %279, label %309

279:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  %280 = load ptr, ptr %18, align 8, !tbaa !5
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef %280)
          to label %281 unwind label %295

281:                                              ; preds = %279
  %282 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  %283 = load ptr, ptr %23, align 8, !tbaa !5
  invoke void @_Z4showI13IRInstructionRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef %283)
          to label %284 unwind label %299

284:                                              ; preds = %281
  %285 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef @.str.19, ptr noundef %282, ptr noundef %285)
          to label %286 unwind label %303

286:                                              ; preds = %284
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  br label %309

287:                                              ; preds = %251
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %11, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %12, align 4
  br label %320

291:                                              ; preds = %311, %276, %269, %260, %258, %254
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %11, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %12, align 4
  br label %319

295:                                              ; preds = %279
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %11, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %12, align 4
  br label %308

299:                                              ; preds = %281
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %11, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %12, align 4
  br label %307

303:                                              ; preds = %284
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %11, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %307

307:                                              ; preds = %303, %299
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %308

308:                                              ; preds = %307, %295
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  br label %319

309:                                              ; preds = %286, %278
  br label %310

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310
  %312 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %313 unwind label %291

313:                                              ; preds = %311
  %314 = getelementptr inbounds { ptr, i8 }, ptr %34, i32 0, i32 0
  %315 = extractvalue { ptr, i8 } %312, 0
  store ptr %315, ptr %314, align 8
  %316 = getelementptr inbounds { ptr, i8 }, ptr %34, i32 0, i32 1
  %317 = extractvalue { ptr, i8 } %312, 1
  store i8 %317, ptr %316, align 8
  br label %318

318:                                              ; preds = %313, %271, %262
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %321

319:                                              ; preds = %308, %291
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  br label %320

320:                                              ; preds = %319, %287
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %332

321:                                              ; preds = %318, %250
  br label %322

322:                                              ; preds = %321, %222
  br label %323

323:                                              ; preds = %322, %188
  store i32 0, ptr %15, align 4
  br label %324

324:                                              ; preds = %323, %144
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  %325 = load i32, ptr %15, align 4
  switch i32 %325, label %327 [
    i32 0, label %326
  ]

326:                                              ; preds = %324
  store i32 0, ptr %15, align 4
  br label %327

327:                                              ; preds = %326, %324
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  %328 = load i32, ptr %15, align 4
  switch i32 %328, label %687 [
    i32 0, label %329
    i32 5, label %330
  ]

329:                                              ; preds = %327
  br label %330

330:                                              ; preds = %329, %327
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3cfg23InstructionIteratorImplILb0EEESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br label %119

332:                                              ; preds = %320, %217, %193, %145
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %336

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

334:                                              ; preds = %333
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS9_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  br label %88

336:                                              ; preds = %332, %122
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %337

337:                                              ; preds = %336, %99
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  br label %338

338:                                              ; preds = %337, %95
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  br label %339

339:                                              ; preds = %338, %91
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %681

340:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 256, ptr %35) #7
  %341 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN24LivenessFixpointIteratorC2ERKN3cfg16ControlFlowGraphE(ptr noundef nonnull align 8 dereferenceable(256) %35, ptr noundef nonnull align 8 dereferenceable(160) %341)
          to label %342 unwind label %356

342:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #7
  invoke void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIjEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %343 unwind label %360

343:                                              ; preds = %342
  invoke void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEE3runERKS8_(ptr noundef nonnull align 8 dereferenceable(256) %35, ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %344 unwind label %364

344:                                              ; preds = %343
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIjEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #7
  %345 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind writable sret(%"class.std::vector.236") align 8 %38, ptr noundef nonnull align 8 dereferenceable(160) %345)
          to label %346 unwind label %369

346:                                              ; preds = %344
  store ptr %38, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %347 = load ptr, ptr %37, align 8, !tbaa !5
  %348 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %347) #7
  %349 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.241", ptr %39, i32 0, i32 0
  store ptr %348, ptr %349, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %350 = load ptr, ptr %37, align 8, !tbaa !5
  %351 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %350) #7
  %352 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.241", ptr %40, i32 0, i32 0
  store ptr %351, ptr %352, align 8
  br label %353

353:                                              ; preds = %671, %346
  %354 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #7
  br i1 %354, label %373, label %355

355:                                              ; preds = %353
  store i32 12, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %675

356:                                              ; preds = %340
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %11, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %12, align 4
  br label %678

360:                                              ; preds = %342
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %11, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %12, align 4
  br label %368

364:                                              ; preds = %343
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %11, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %12, align 4
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIjEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #7
  br label %368

368:                                              ; preds = %364, %360
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #7
  br label %677

369:                                              ; preds = %344
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %11, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %12, align 4
  br label %674

373:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %374 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  %375 = load ptr, ptr %374, align 8, !tbaa !5
  store ptr %375, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %376 = getelementptr inbounds %"class.builder_pattern::BuilderAnalysis", ptr %67, i32 0, i32 0
  %377 = call noundef ptr @_ZNKSt10unique_ptrIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %376) #7
  %378 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS8_EEEEEESt4hashIPNS2_5BlockEEE17get_exit_state_atERKSF_(ptr noundef nonnull align 8 dereferenceable(144) %377, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %379 unwind label %392

379:                                              ; preds = %373
  store ptr %378, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %380 = load ptr, ptr %41, align 8, !tbaa !5
  %381 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3cfg5Block5succsEv(ptr noundef nonnull align 8 dereferenceable(104) %380)
          to label %382 unwind label %396

382:                                              ; preds = %379
  store ptr %381, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %383 = load ptr, ptr %43, align 8, !tbaa !5
  %384 = call ptr @_ZNKSt6vectorIPN3cfg4EdgeESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %383) #7
  %385 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.335", ptr %44, i32 0, i32 0
  store ptr %384, ptr %385, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %386 = load ptr, ptr %43, align 8, !tbaa !5
  %387 = call ptr @_ZNKSt6vectorIPN3cfg4EdgeESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %386) #7
  %388 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.335", ptr %45, i32 0, i32 0
  store ptr %387, ptr %388, align 8
  br label %389

389:                                              ; preds = %664, %382
  %390 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPN3cfg4EdgeESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  br i1 %390, label %400, label %391

391:                                              ; preds = %389
  store i32 14, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %670

392:                                              ; preds = %373
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %11, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %12, align 4
  br label %673

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

400:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPN3cfg4EdgeESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #7
  store ptr %401, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %402 = load ptr, ptr %46, align 8, !tbaa !5
  %403 = load ptr, ptr %402, align 8, !tbaa !5
  %404 = invoke noundef ptr @_ZNK3cfg4Edge6targetEv(ptr noundef nonnull align 8 dereferenceable(32) %403)
          to label %405 unwind label %427

405:                                              ; preds = %400
  store ptr %404, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %406 = getelementptr inbounds %"class.builder_pattern::BuilderAnalysis", ptr %67, i32 0, i32 0
  %407 = call noundef ptr @_ZNKSt10unique_ptrIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %406) #7
  %408 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS8_EEEEEESt4hashIPNS2_5BlockEEE18get_entry_state_atERKSF_(ptr noundef nonnull align 8 dereferenceable(144) %407, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %409 unwind label %431

409:                                              ; preds = %405
  store ptr %408, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %410 = load ptr, ptr %46, align 8, !tbaa !5
  %411 = load ptr, ptr %410, align 8, !tbaa !5
  %412 = invoke noundef ptr @_ZNK3cfg4Edge6targetEv(ptr noundef nonnull align 8 dereferenceable(32) %411)
          to label %413 unwind label %435

413:                                              ; preds = %409
  store ptr %412, ptr %50, align 8, !tbaa !5
  %414 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK24LivenessFixpointIterator19get_live_in_vars_atERKPN3cfg5BlockE(ptr noundef nonnull align 8 dereferenceable(256) %35, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %415 unwind label %435

415:                                              ; preds = %413
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  store ptr %414, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %416 = load ptr, ptr %49, align 8, !tbaa !5
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIjNS_8set_impl8SetValueINS_15PatriciaTreeSetIjEEEERKS4_NS_17SetAbstractDomainIS4_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %416)
          to label %418 unwind label %439

418:                                              ; preds = %415
  store ptr %417, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %52) #7
  %419 = load ptr, ptr %51, align 8, !tbaa !5
  invoke void @_ZNK6sparta15PatriciaTreeSetIjE5beginEv(ptr dead_on_unwind writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %52, ptr noundef nonnull align 8 dereferenceable(8) %419)
          to label %420 unwind label %443

420:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 96, ptr %53) #7
  %421 = load ptr, ptr %51, align 8, !tbaa !5
  invoke void @_ZNK6sparta15PatriciaTreeSetIjE3endEv(ptr dead_on_unwind writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %53, ptr noundef nonnull align 8 dereferenceable(8) %421)
          to label %422 unwind label %447

422:                                              ; preds = %420
  br label %423

423:                                              ; preds = %657, %422
  %424 = invoke noundef zeroext i1 @_ZNK6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(96) %52, ptr noundef nonnull align 8 dereferenceable(96) %53)
          to label %425 unwind label %451

425:                                              ; preds = %423
  br i1 %424, label %455, label %426

426:                                              ; preds = %425
  store i32 16, ptr %15, align 4
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %53) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %53) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %52) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %663

427:                                              ; preds = %400
  %428 = landingpad { ptr, i32 }
          cleanup
  %429 = extractvalue { ptr, i32 } %428, 0
  store ptr %429, ptr %11, align 8
  %430 = extractvalue { ptr, i32 } %428, 1
  store i32 %430, ptr %12, align 4
  br label %668

431:                                              ; preds = %405
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %11, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %12, align 4
  br label %667

435:                                              ; preds = %413, %409
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %11, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  br label %666

439:                                              ; preds = %415
  %440 = landingpad { ptr, i32 }
          cleanup
  %441 = extractvalue { ptr, i32 } %440, 0
  store ptr %441, ptr %11, align 8
  %442 = extractvalue { ptr, i32 } %440, 1
  store i32 %442, ptr %12, align 4
  br label %662

443:                                              ; preds = %418
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %11, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %12, align 4
  br label %661

447:                                              ; preds = %420
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %11, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %12, align 4
  br label %660

451:                                              ; preds = %655, %423
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %11, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %12, align 4
  br label %659

455:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  %456 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEEdeEv(ptr noundef nonnull align 8 dereferenceable(96) %52)
          to label %457 unwind label %480

457:                                              ; preds = %455
  %458 = load i32, ptr %456, align 4, !tbaa !44
  store i32 %458, ptr %54, align 4, !tbaa !44
  %459 = load ptr, ptr %48, align 8, !tbaa !5
  %460 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %459, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %461 unwind label %480

461:                                              ; preds = %457
  %462 = load ptr, ptr %42, align 8, !tbaa !5
  %463 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %462, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %464 unwind label %480

464:                                              ; preds = %461
  %465 = invoke noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_8acd_impl21ConstantAbstractValueIPK13IRInstructionEEN15builder_pattern4impl22NullableConstantDomainEE6equalsERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %460, ptr noundef nonnull align 8 dereferenceable(16) %463)
          to label %466 unwind label %480

466:                                              ; preds = %464
  br i1 %465, label %654, label %467

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  %469 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %470 unwind label %480

470:                                              ; preds = %468
  br i1 %469, label %471, label %498

471:                                              ; preds = %470
  %472 = load i32, ptr %54, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  %473 = load ptr, ptr %41, align 8, !tbaa !5
  invoke void @_Z4showB5cxx11PKN3cfg5BlockEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef %473, i1 noundef zeroext false)
          to label %474 unwind label %484

474:                                              ; preds = %471
  %475 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  %476 = load ptr, ptr %47, align 8, !tbaa !5
  invoke void @_Z4showB5cxx11PKN3cfg5BlockEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef %476, i1 noundef zeroext false)
          to label %477 unwind label %488

477:                                              ; preds = %474
  %478 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef @.str.20, i32 noundef %472, ptr noundef %475, ptr noundef %478)
          to label %479 unwind label %492

479:                                              ; preds = %477
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  br label %498

480:                                              ; preds = %501, %468, %464, %461, %457, %455
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %11, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %12, align 4
  br label %658

484:                                              ; preds = %471
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %11, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %12, align 4
  br label %497

488:                                              ; preds = %474
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %11, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %12, align 4
  br label %496

492:                                              ; preds = %477
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %11, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %496

496:                                              ; preds = %492, %488
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %497

497:                                              ; preds = %496, %484
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  br label %658

498:                                              ; preds = %479, %470
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500
  %502 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %503 unwind label %480

503:                                              ; preds = %501
  br i1 %502, label %504, label %530

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #7
  %505 = load ptr, ptr %42, align 8, !tbaa !5
  %506 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %505, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %507 unwind label %521

507:                                              ; preds = %504
  %508 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %506)
          to label %509 unwind label %521

509:                                              ; preds = %507
  %510 = getelementptr inbounds %"class.boost::optional", ptr %58, i32 0, i32 0
  %511 = getelementptr inbounds { i8, ptr }, ptr %510, i32 0, i32 0
  %512 = extractvalue { i8, ptr } %508, 0
  store i8 %512, ptr %511, align 8
  %513 = getelementptr inbounds { i8, ptr }, ptr %510, i32 0, i32 1
  %514 = extractvalue { i8, ptr } %508, 1
  store ptr %514, ptr %513, align 8
  %515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNO5boost8optionalIPK13IRInstructionEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %58)
          to label %516 unwind label %521

516:                                              ; preds = %509
  %517 = load ptr, ptr %515, align 8, !tbaa !5
  invoke void @_Z4showB5cxx11PK13IRInstruction(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef %517)
          to label %518 unwind label %521

518:                                              ; preds = %516
  %519 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef @.str.21, ptr noundef %519)
          to label %520 unwind label %525

520:                                              ; preds = %518
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  br label %530

521:                                              ; preds = %516, %509, %507, %504
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %11, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %12, align 4
  br label %529

525:                                              ; preds = %518
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %11, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %529

529:                                              ; preds = %525, %521
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  br label %658

530:                                              ; preds = %520, %503
  br label %531

531:                                              ; preds = %530
  br label %532

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #7
  %533 = load ptr, ptr %48, align 8, !tbaa !5
  %534 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %533, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %535 unwind label %555

535:                                              ; preds = %532
  %536 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %534)
          to label %537 unwind label %555

537:                                              ; preds = %535
  %538 = getelementptr inbounds %"class.boost::optional", ptr %59, i32 0, i32 0
  %539 = getelementptr inbounds { i8, ptr }, ptr %538, i32 0, i32 0
  %540 = extractvalue { i8, ptr } %536, 0
  store i8 %540, ptr %539, align 8
  %541 = getelementptr inbounds { i8, ptr }, ptr %538, i32 0, i32 1
  %542 = extractvalue { i8, ptr } %536, 1
  store ptr %542, ptr %541, align 8
  %543 = call noundef zeroext i1 @_ZNK5boost8optionalIPK13IRInstructionEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %59) #7
  br i1 %543, label %544, label %571

544:                                              ; preds = %537
  br label %545

545:                                              ; preds = %544
  %546 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %547 unwind label %555

547:                                              ; preds = %545
  br i1 %546, label %548, label %568

548:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #7
  %549 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNR5boost8optionalIPK13IRInstructionEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %59)
          to label %550 unwind label %559

550:                                              ; preds = %548
  %551 = load ptr, ptr %549, align 8, !tbaa !5
  invoke void @_Z4showB5cxx11PK13IRInstruction(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef %551)
          to label %552 unwind label %559

552:                                              ; preds = %550
  %553 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef @.str.22, ptr noundef %553)
          to label %554 unwind label %563

554:                                              ; preds = %552
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  br label %568

555:                                              ; preds = %575, %572, %545, %535, %532
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %11, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %12, align 4
  br label %615

559:                                              ; preds = %550, %548
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %11, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %12, align 4
  br label %567

563:                                              ; preds = %552
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %11, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %567

567:                                              ; preds = %563, %559
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  br label %615

568:                                              ; preds = %554, %547
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569
  br label %580

571:                                              ; preds = %537
  br label %572

572:                                              ; preds = %571
  %573 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %574 unwind label %555

574:                                              ; preds = %572
  br i1 %573, label %575, label %577

575:                                              ; preds = %574
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef @.str.23)
          to label %576 unwind label %555

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576, %574
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579, %570
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #7
  %581 = load ptr, ptr %42, align 8, !tbaa !5
  %582 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %581, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %583 unwind label %616

583:                                              ; preds = %580
  %584 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %582)
          to label %585 unwind label %616

585:                                              ; preds = %583
  %586 = getelementptr inbounds %"class.boost::optional", ptr %62, i32 0, i32 0
  %587 = getelementptr inbounds { i8, ptr }, ptr %586, i32 0, i32 0
  %588 = extractvalue { i8, ptr } %584, 0
  store i8 %588, ptr %587, align 8
  %589 = getelementptr inbounds { i8, ptr }, ptr %586, i32 0, i32 1
  %590 = extractvalue { i8, ptr } %584, 1
  store ptr %590, ptr %589, align 8
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNO5boost8optionalIPK13IRInstructionEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %592 unwind label %616

592:                                              ; preds = %585
  %593 = load ptr, ptr %591, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  store ptr %593, ptr %61, align 8, !tbaa !5
  %594 = load ptr, ptr %61, align 8, !tbaa !5
  %595 = invoke noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %594)
          to label %596 unwind label %620

596:                                              ; preds = %592
  %597 = zext i16 %595 to i32
  %598 = icmp ne i32 %597, 12
  br i1 %598, label %599, label %652

599:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  %600 = load ptr, ptr %61, align 8, !tbaa !5
  %601 = invoke noundef ptr @_ZN15builder_pattern12_GLOBAL__N_121get_instantiated_typeEPK13IRInstruction(ptr noundef %600)
          to label %602 unwind label %624

602:                                              ; preds = %599
  store ptr %601, ptr %63, align 8, !tbaa !5
  br label %603

603:                                              ; preds = %602
  %604 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %605 unwind label %624

605:                                              ; preds = %603
  br i1 %604, label %606, label %642

606:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #7
  %607 = load ptr, ptr %63, align 8, !tbaa !5
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef %607)
          to label %608 unwind label %628

608:                                              ; preds = %606
  %609 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  %610 = getelementptr inbounds %"class.builder_pattern::BuilderAnalysis", ptr %67, i32 0, i32 7
  %611 = load ptr, ptr %610, align 8, !tbaa !9
  invoke void @_Z4showB5cxx11PK12DexMethodRef(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef %611)
          to label %612 unwind label %632

612:                                              ; preds = %608
  %613 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef @.str.24, ptr noundef %609, ptr noundef %613)
          to label %614 unwind label %636

614:                                              ; preds = %612
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  br label %642

615:                                              ; preds = %567, %555
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  br label %658

616:                                              ; preds = %585, %583, %580
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %11, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  br label %653

620:                                              ; preds = %592
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %11, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %12, align 4
  br label %653

624:                                              ; preds = %644, %603, %599
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %11, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %12, align 4
  br label %651

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

632:                                              ; preds = %608
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %11, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %12, align 4
  br label %640

636:                                              ; preds = %612
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %11, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %640

640:                                              ; preds = %636, %632
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %641

641:                                              ; preds = %640, %628
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  br label %651

642:                                              ; preds = %614, %605
  br label %643

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643
  %645 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %646 unwind label %624

646:                                              ; preds = %644
  %647 = getelementptr inbounds { ptr, i8 }, ptr %66, i32 0, i32 0
  %648 = extractvalue { ptr, i8 } %645, 0
  store ptr %648, ptr %647, align 8
  %649 = getelementptr inbounds { ptr, i8 }, ptr %66, i32 0, i32 1
  %650 = extractvalue { ptr, i8 } %645, 1
  store i8 %650, ptr %649, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  br label %652

651:                                              ; preds = %641, %624
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  br label %653

652:                                              ; preds = %646, %596
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %654

653:                                              ; preds = %651, %620, %616
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %658

654:                                              ; preds = %652, %466
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br label %655

655:                                              ; preds = %654
  %656 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEEppEv(ptr noundef nonnull align 8 dereferenceable(96) %52)
          to label %657 unwind label %451

657:                                              ; preds = %655
  br label %423

658:                                              ; preds = %653, %615, %529, %497, %480
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br label %659

659:                                              ; preds = %658, %451
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %53) #7
  br label %660

660:                                              ; preds = %659, %447
  call void @llvm.lifetime.end.p0(i64 96, ptr %53) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %52) #7
  br label %661

661:                                              ; preds = %660, %443
  call void @llvm.lifetime.end.p0(i64 96, ptr %52) #7
  br label %662

662:                                              ; preds = %661, %439
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %666

663:                                              ; preds = %426
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %664

664:                                              ; preds = %663
  %665 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKPN3cfg4EdgeESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #7
  br label %389

666:                                              ; preds = %662, %435
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %667

667:                                              ; preds = %666, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %668

668:                                              ; preds = %667, %427
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  br label %669

669:                                              ; preds = %668, %396
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %673

670:                                              ; preds = %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %671

671:                                              ; preds = %670
  %672 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  br label %353

673:                                              ; preds = %669, %392
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #7
  br label %674

674:                                              ; preds = %673, %369
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  br label %677

675:                                              ; preds = %355
  store i1 true, ptr %8, align 1
  store i32 1, ptr %15, align 4
  call void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEED2Ev(ptr noundef nonnull align 8 dereferenceable(256) %35) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %35) #7
  %676 = load i1, ptr %8, align 1
  br i1 %676, label %680, label %679

677:                                              ; preds = %674, %368
  call void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEED2Ev(ptr noundef nonnull align 8 dereferenceable(256) %35) #7
  br label %678

678:                                              ; preds = %677, %356
  call void @llvm.lifetime.end.p0(i64 256, ptr %35) #7
  br label %681

679:                                              ; preds = %675
  call void @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %0) #7
  br label %680

680:                                              ; preds = %679, %675
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  ret void

681:                                              ; preds = %678, %339
  call void @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %0) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  br label %682

682:                                              ; preds = %681
  %683 = load ptr, ptr %11, align 8
  %684 = load i32, ptr %12, align 4
  %685 = insertvalue { ptr, i32 } poison, ptr %683, 0
  %686 = insertvalue { ptr, i32 } %685, i32 %684, 1
  resume { ptr, i32 } %686

687:                                              ; preds = %327
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z14resolve_methodP12DexMethodRef12MethodSearchPK9DexMethod(ptr noundef, i32 noundef, ptr noundef) #6

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

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN15builder_pattern12_GLOBAL__N_120get_obj_default_ctorEv() #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode10is_an_iputE8IROpcode(i16 noundef zeroext) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode10is_an_sputE8IROpcode(i16 noundef zeroext) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode11is_a_returnE8IROpcode(i16 noundef zeroext) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEE3runERKS8_(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIjE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIjE3endEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

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

declare void @_Z4showB5cxx11PKN3cfg5BlockEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 200}
!10 = !{!"_ZTSN15builder_pattern15BuilderAnalysisE", !11, i64 0, !17, i64 8, !24, i64 64, !6, i64 120, !6, i64 128, !27, i64 136, !33, i64 144, !6, i64 200, !20, i64 208, !20, i64 216, !36, i64 224}
!11 = !{!"_ZTSSt10unique_ptrIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EE", !12, i64 0}
!12 = !{!"_ZTSSt15__uniq_ptr_dataIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_ELb1ELb1EE", !13, i64 0}
!13 = !{!"_ZTSSt15__uniq_ptr_implIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EE", !14, i64 0}
!14 = !{!"_ZTSSt5tupleIJPN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEE", !15, i64 0}
!15 = !{!"_ZTSSt11_Tuple_implILm0EJPN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEE", !16, i64 0}
!16 = !{!"_ZTSSt10_Head_baseILm0EPN15builder_pattern4impl8AnalyzerELb0EE", !6, i64 0}
!17 = !{!"_ZTS12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_EE", !18, i64 0}
!18 = !{!"_ZTSSt13unordered_mapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S8_EEE", !19, i64 0}
!19 = !{!"_ZTSSt10_HashtableIPK13IRInstructionSt4pairIKS2_St6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS8_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !20, i64 8, !21, i64 16, !20, i64 24, !22, i64 32, !6, i64 48}
!20 = !{!"long", !7, i64 0}
!21 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!22 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !23, i64 0, !20, i64 8}
!23 = !{!"float", !7, i64 0}
!24 = !{!"_ZTS12UnorderedSetIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_EE", !25, i64 0}
!25 = !{!"_ZTSSt13unordered_setIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !26, i64 0}
!26 = !{!"_ZTSSt10_HashtableIPK13IRInstructionS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE", !6, i64 0, !20, i64 8, !21, i64 16, !20, i64 24, !22, i64 32, !6, i64 48}
!27 = !{!"_ZTSSt10unique_ptrIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_dataIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_ELb1ELb1EE", !29, i64 0}
!29 = !{!"_ZTSSt15__uniq_ptr_implIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EE", !30, i64 0}
!30 = !{!"_ZTSSt5tupleIJPN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EEE", !31, i64 0}
!31 = !{!"_ZTSSt11_Tuple_implILm0EJPN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EEE", !32, i64 0}
!32 = !{!"_ZTSSt10_Head_baseILm0EPN15builder_pattern4impl19InstructionToEnvMapELb0EE", !6, i64 0}
!33 = !{!"_ZTS12UnorderedMapIPK13IRInstructionPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE", !34, i64 0}
!34 = !{!"_ZTSSt13unordered_mapIPK13IRInstructionPK7DexTypeSt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S5_EEE", !35, i64 0}
!35 = !{!"_ZTSSt10_HashtableIPK13IRInstructionSt4pairIKS2_PK7DexTypeESaIS8_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !20, i64 8, !21, i64 16, !20, i64 24, !22, i64 32, !6, i64 48}
!36 = !{!"bool", !7, i64 0}
!37 = !{!38, !6, i64 0}
!38 = !{!"_ZTSSt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS7_EEE", !6, i64 0, !39, i64 8}
!39 = !{!"_ZTSSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!7, !7, i64 0}
!44 = !{!45, !45, i64 0}
!45 = !{!"int", !7, i64 0}


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

%"class.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::vector.236" = type { %"struct.std::_Vector_base.237" }
%"struct.std::_Vector_base.237" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl" = type { %"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<cfg::Block *, std::allocator<cfg::Block *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.UnorderedSet.45 = type { %"class.std::unordered_set.47" }
%"class.std::unordered_set.47" = type { %"class.std::_Hashtable.48" }
%"class.std::_Hashtable.48" = 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.UnorderedMap<const IRInstruction *, std::vector<cfg::InstructionIteratorImpl<false>>>::UnorderedIterable" = type { ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.boost::optional" = type { %"class.boost::optional_detail::tc_optional_base" }
%"class.boost::optional_detail::tc_optional_base" = type { i8, ptr }
%class.LivenessFixpointIterator = type { %"class.ir_analyzer::BaseBackwardsIRAnalyzer" }
%"class.ir_analyzer::BaseBackwardsIRAnalyzer" = type { %"class.sparta::MonotonicFixpointIterator.309" }
%"class.sparta::MonotonicFixpointIterator.309" = type { %"class.sparta::fp_impl::MonotonicFixpointIteratorBase.310", %"class.sparta::WeakPartialOrdering" }
%"class.sparta::fp_impl::MonotonicFixpointIteratorBase.310" = type { %"class.sparta::FixpointIterator.311", ptr, %"class.sparta::SetAbstractDomain", %"class.std::unordered_map.321", %"class.std::unordered_map.321" }
%"class.sparta::FixpointIterator.311" = type { ptr }
%"class.sparta::SetAbstractDomain" = type { %"class.sparta::PowersetAbstractDomain" }
%"class.sparta::PowersetAbstractDomain" = type { %"class.sparta::AbstractDomainScaffolding.312" }
%"class.sparta::AbstractDomainScaffolding.312" = type { i32, %"class.sparta::set_impl::SetValue" }
%"class.sparta::set_impl::SetValue" = type { %"class.sparta::PatriciaTreeSet" }
%"class.sparta::PatriciaTreeSet" = type { %"class.sparta::pt_core::PatriciaTreeCore.319" }
%"class.sparta::pt_core::PatriciaTreeCore.319" = type { %"class.boost::intrusive_ptr.320" }
%"class.boost::intrusive_ptr.320" = type { ptr }
%"class.std::unordered_map.321" = type { %"class.std::_Hashtable.322" }
%"class.std::_Hashtable.322" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.sparta::WeakPartialOrdering" = type <{ %"class.std::vector.182", %"class.std::vector.187", %"class.std::unordered_map.192", i8, [7 x i8] }>
%"class.std::vector.182" = type { %"struct.std::_Vector_base.183" }
%"struct.std::_Vector_base.183" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sparta::WpoNode<cfg::Block *>, std::allocator<sparta::WpoNode<cfg::Block *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.187" = type { %"struct.std::_Vector_base.188" }
%"struct.std::_Vector_base.188" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.192" = type { %"class.std::_Hashtable.193" }
%"class.std::_Hashtable.193" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.__gnu_cxx::__normal_iterator.241" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.335" = type { ptr }
%"class.sparta::pt_core::PatriciaTreeIterator" = type { %"class.sparta::pt_core::PatriciaTreePostOrder" }
%"class.sparta::pt_core::PatriciaTreePostOrder" = type { %"class.boost::intrusive_ptr.320", %"class.std::stack", ptr }
%"class.std::stack" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl" = type { %"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" }
%"struct.std::_Deque_base<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *, std::allocator<const sparta::pt_core::PatriciaTreeBranch<unsigned int, sparta::pt_core::EmptyValue> *>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }

@.str.17 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [45 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

declare noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @_Z5trace11TraceModuleibPKcz(i32 noundef, i32 noundef, i1 noundef zeroext, ptr noundef, ...) local_unnamed_addr #2

declare void @_Z4showB5cxx11PK12DexMethodRef(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

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

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

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

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

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

declare void @_Z4showB5cxx11PK13IRInstruction(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) local_unnamed_addr #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4showI13IRInstructionRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) local_unnamed_addr #3

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

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

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

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

declare void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind writable sret(%"class.std::vector.236") align 8, ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS8_EEEEEESt4hashIPNS2_5BlockEEE18get_entry_state_atERKSF_(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK5boost8optionalIPK13IRInstructionEcvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

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

declare noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32), i16 noundef zeroext) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN15builder_pattern12_GLOBAL__N_121get_instantiated_typeEPK13IRInstruction(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN12UnorderedMapIPK13IRInstructionN6sparta19AbstractEnvironmentINS3_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS3_17TopValueInterfaceIS8_EEEEEESt4hashIS2_ESt8equal_toIS2_EE2atERKS2_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode12is_an_invokeE8IROpcode(i16 noundef zeroext) local_unnamed_addr #4

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15builder_pattern15BuilderAnalysis12escape_typesEv(ptr dead_on_unwind noalias writable sret(%class.UnorderedSet.45) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.UnorderedMap<const IRInstruction *, std::vector<cfg::InstructionIteratorImpl<false>>>::UnorderedIterable", align 8
  %4 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %5 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.boost::optional", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %class.LivenessFixpointIterator, align 8
  %18 = alloca %"class.sparta::SetAbstractDomain", align 8
  %19 = alloca %"class.std::vector.236", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.241", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.241", align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.335", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.335", align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %28 = alloca %"class.sparta::pt_core::PatriciaTreeIterator", align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.boost::optional", align 8
  %34 = alloca %"class.boost::optional", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.boost::optional", align 8
  %37 = alloca ptr, align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = getelementptr inbounds i8, ptr %1, i64 200
  %41 = load ptr, ptr %40, align 8, !tbaa !5
  %42 = tail call noundef ptr @_ZN9DexMethod8get_codeEv(ptr noundef nonnull align 8 dereferenceable(88) %41)
  %43 = tail call noundef nonnull align 8 dereferenceable(160) ptr @_ZN6IRCode3cfgEv(ptr noundef nonnull align 8 dereferenceable(32) %42)
  %44 = tail call noundef ptr @_ZN15builder_pattern12_GLOBAL__N_120get_obj_default_ctorEv()
  tail call void @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #7
  %45 = getelementptr inbounds i8, ptr %1, i64 8
  %46 = invoke ptr @_Z17UnorderedIterableI12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS7_EESt4hashIS3_ESt8equal_toIS3_EETnNSt9enable_ifIXsr3stdE12is_base_of_vI13UnorderedBaseIT_ESH_EEbE4typeELb1EEDaRSH_(ptr noundef nonnull align 8 dereferenceable(56) %45)
          to label %47 unwind label %53

47:                                               ; preds = %2
  store ptr %46, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #7
  %48 = call ptr @_ZN12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_EE17UnorderedIterable5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  store ptr %48, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  %49 = call ptr @_ZN12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_EE17UnorderedIterable3endEv(ptr noundef nonnull align 8 dereferenceable(8) %3)
  store ptr %49, ptr %5, align 8
  %50 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS9_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  br i1 %50, label %.lr.ph119, label %._crit_edge120

.lr.ph119:                                        ; preds = %47
  %51 = getelementptr inbounds i8, ptr %1, i64 136
  %52 = getelementptr inbounds i8, ptr %14, i64 8
  br label %55

._crit_edge120:                                   ; preds = %._crit_edge, %47
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %17) #7
  invoke void @_ZN24LivenessFixpointIteratorC2ERKN3cfg16ControlFlowGraphE(ptr noundef nonnull align 8 dereferenceable(256) %17, ptr noundef nonnull align 8 dereferenceable(160) %43)
          to label %195 unwind label %205

53:                                               ; preds = %2
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %392

55:                                               ; preds = %.lr.ph119, %._crit_edge
  %56 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS9_EEELb0ELb0EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #7
  %57 = load ptr, ptr %56, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %58 = invoke noundef ptr @_ZN15builder_pattern12_GLOBAL__N_121get_instantiated_typeEPK13IRInstruction(ptr noundef %57)
          to label %59 unwind label %66

59:                                               ; preds = %55
  store ptr %58, ptr %6, align 8, !tbaa !42
  %60 = getelementptr inbounds i8, ptr %56, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %61 = call ptr @_ZNKSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  store ptr %61, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  %62 = call ptr @_ZNKSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #7
  store ptr %62, ptr %8, align 8
  %63 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3cfg23InstructionIteratorImplILb0EEESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br i1 %63, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %190, %59
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS9_EEELb0ELb0EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #7
  %65 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS9_EEELb0EEESF_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #7
  br i1 %65, label %55, label %._crit_edge120

66:                                               ; preds = %55
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %194

.lr.ph:                                           ; preds = %59, %190
  %68 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3cfg23InstructionIteratorImplILb0EEESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %69 = invoke noundef ptr @_ZNK3cfg23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %70 unwind label %80

70:                                               ; preds = %.lr.ph
  %71 = getelementptr inbounds i8, ptr %69, i64 24
  %72 = load ptr, ptr %71, align 8, !tbaa !43
  store ptr %72, ptr %9, align 8, !tbaa !42
  %73 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %72)
  %74 = call noundef zeroext i1 @_ZN6opcode12is_an_invokeE8IROpcode(i16 noundef zeroext %73)
  %75 = load ptr, ptr %9, align 8, !tbaa !42
  br i1 %74, label %76, label %109

76:                                               ; preds = %70
  %77 = invoke noundef ptr @_ZNK13IRInstruction10get_methodEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %78 unwind label %80

78:                                               ; preds = %76
  %79 = icmp eq ptr %77, %44
  br i1 %79, label %190, label %82

80:                                               ; preds = %125, %112, %76, %.lr.ph
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %193

82:                                               ; preds = %78
  %83 = load ptr, ptr %9, align 8, !tbaa !42
  %84 = invoke noundef ptr @_ZNK13IRInstruction10get_methodEv(ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %85 unwind label %97

85:                                               ; preds = %82
  %86 = invoke noundef ptr @_Z14resolve_methodP12DexMethodRef12MethodSearchPK9DexMethod(ptr noundef %84, i32 noundef 4, ptr noundef null)
          to label %87 unwind label %97

87:                                               ; preds = %85
  %88 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %89 unwind label %97

89:                                               ; preds = %87
  br i1 %88, label %90, label %107

90:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  %91 = load ptr, ptr %6, align 8, !tbaa !42
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef %91)
          to label %92 unwind label %99

92:                                               ; preds = %90
  %93 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  invoke void @_Z4showB5cxx11PK12DexMethodRef(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef %86)
          to label %94 unwind label %101

94:                                               ; preds = %92
  %95 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef nonnull @.str.17, ptr noundef %93, ptr noundef %95)
          to label %96 unwind label %103

96:                                               ; preds = %94
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br label %107

97:                                               ; preds = %107, %87, %85, %82
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %193

99:                                               ; preds = %90
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %106

101:                                              ; preds = %92
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %105

103:                                              ; preds = %94
  %104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %105

105:                                              ; preds = %103, %101
  %.pn109 = phi { ptr, i32 } [ %104, %103 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %106

106:                                              ; preds = %105, %99
  %.pn109.pn = phi { ptr, i32 } [ %.pn109, %105 ], [ %100, %99 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br label %193

107:                                              ; preds = %96, %89
  %108 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %190 unwind label %97

109:                                              ; preds = %70
  %110 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %75)
  %111 = icmp eq i16 %110, 19
  br i1 %111, label %112, label %127

112:                                              ; preds = %109
  %113 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %114 unwind label %80

114:                                              ; preds = %112
  br i1 %113, label %115, label %125

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  %116 = load ptr, ptr %6, align 8, !tbaa !42
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef %116)
          to label %117 unwind label %120

117:                                              ; preds = %115
  %118 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef nonnull @.str.18, ptr noundef %118)
          to label %119 unwind label %122

119:                                              ; preds = %117
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %125

120:                                              ; preds = %115
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %124

122:                                              ; preds = %117
  %123 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %124

124:                                              ; preds = %122, %120
  %.pn107 = phi { ptr, i32 } [ %123, %122 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %193

125:                                              ; preds = %119, %114
  %126 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %190 unwind label %80

127:                                              ; preds = %109
  %128 = load ptr, ptr %9, align 8, !tbaa !42
  %129 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %128)
  %130 = call noundef zeroext i1 @_ZN6opcode10is_an_iputE8IROpcode(i16 noundef zeroext %129)
  br i1 %130, label %143, label %131

131:                                              ; preds = %127
  %132 = load ptr, ptr %9, align 8, !tbaa !42
  %133 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %132)
  %134 = call noundef zeroext i1 @_ZN6opcode10is_an_sputE8IROpcode(i16 noundef zeroext %133)
  br i1 %134, label %143, label %135

135:                                              ; preds = %131
  %136 = load ptr, ptr %9, align 8, !tbaa !42
  %137 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %136)
  %138 = icmp eq i16 %137, 54
  br i1 %138, label %143, label %139

139:                                              ; preds = %135
  %140 = load ptr, ptr %9, align 8, !tbaa !42
  %141 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %140)
  %142 = call noundef zeroext i1 @_ZN6opcode11is_a_returnE8IROpcode(i16 noundef zeroext %141)
  br i1 %142, label %143, label %190

143:                                              ; preds = %139, %135, %131, %127
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  %144 = load ptr, ptr %9, align 8, !tbaa !42
  %145 = invoke noundef i32 @_ZNK13IRInstruction3srcEt(ptr noundef nonnull align 8 dereferenceable(32) %144, i16 noundef zeroext 0)
          to label %146 unwind label %173

146:                                              ; preds = %143
  store i32 %145, ptr %13, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #7
  %147 = call noundef ptr @_ZNKSt10unique_ptrIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #7
  %148 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN12UnorderedMapIPK13IRInstructionN6sparta19AbstractEnvironmentINS3_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS3_17TopValueInterfaceIS8_EEEEEESt4hashIS2_ESt8equal_toIS2_EE2atERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %147, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %149 unwind label %175

149:                                              ; preds = %146
  %150 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %148, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %151 unwind label %175

151:                                              ; preds = %149
  %152 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %150)
          to label %153 unwind label %175

153:                                              ; preds = %151
  %154 = extractvalue { i8, ptr } %152, 0
  store i8 %154, ptr %14, align 8
  %155 = extractvalue { i8, ptr } %152, 1
  store ptr %155, ptr %52, align 8
  %156 = call noundef zeroext i1 @_ZNK5boost8optionalIPK13IRInstructionEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %14) #7
  br i1 %156, label %157, label %187

157:                                              ; preds = %153
  %158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost8optionalIPK13IRInstructionE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %159 unwind label %175

159:                                              ; preds = %157
  %160 = load ptr, ptr %158, align 8, !tbaa !42
  %161 = icmp eq ptr %160, %57
  br i1 %161, label %162, label %187

162:                                              ; preds = %159
  %163 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %164 unwind label %175

164:                                              ; preds = %162
  br i1 %163, label %165, label %185

165:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  %166 = load ptr, ptr %6, align 8, !tbaa !42
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef %166)
          to label %167 unwind label %177

167:                                              ; preds = %165
  %168 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  %169 = load ptr, ptr %9, align 8, !tbaa !42
  invoke void @_Z4showI13IRInstructionRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef %169)
          to label %170 unwind label %179

170:                                              ; preds = %167
  %171 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef nonnull @.str.19, ptr noundef %168, ptr noundef %171)
          to label %172 unwind label %181

172:                                              ; preds = %170
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %185

173:                                              ; preds = %143
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %189

175:                                              ; preds = %185, %162, %157, %151, %149, %146
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %188

177:                                              ; preds = %165
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %184

179:                                              ; preds = %167
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %183

181:                                              ; preds = %170
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %183

183:                                              ; preds = %181, %179
  %.pn101 = phi { ptr, i32 } [ %182, %181 ], [ %180, %179 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %184

184:                                              ; preds = %183, %177
  %.pn101.pn = phi { ptr, i32 } [ %.pn101, %183 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %188

185:                                              ; preds = %172, %164
  %186 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %187 unwind label %175

187:                                              ; preds = %185, %159, %153
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br label %190

188:                                              ; preds = %184, %175
  %.pn104 = phi { ptr, i32 } [ %176, %175 ], [ %.pn101.pn, %184 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #7
  br label %189

189:                                              ; preds = %188, %173
  %.pn104.pn = phi { ptr, i32 } [ %.pn104, %188 ], [ %174, %173 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br label %193

190:                                              ; preds = %139, %187, %107, %125, %78
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3cfg23InstructionIteratorImplILb0EEESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #7
  %192 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3cfg23InstructionIteratorImplILb0EEESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  br i1 %192, label %.lr.ph, label %._crit_edge

193:                                              ; preds = %97, %106, %189, %124, %80
  %.pn112.pn = phi { ptr, i32 } [ %81, %80 ], [ %.pn107, %124 ], [ %.pn104.pn, %189 ], [ %98, %97 ], [ %.pn109.pn, %106 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  br label %194

194:                                              ; preds = %193, %66
  %.pn112.pn.pn = phi { ptr, i32 } [ %.pn112.pn, %193 ], [ %67, %66 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7
  br label %392

195:                                              ; preds = %._crit_edge120
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #7
  invoke void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIjEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %196 unwind label %207

196:                                              ; preds = %195
  invoke void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEE3runERKS8_(ptr noundef nonnull align 8 dereferenceable(256) %17, ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %197 unwind label %209

197:                                              ; preds = %196
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIjEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #7
  invoke void @_ZNK3cfg16ControlFlowGraph6blocksEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.236") align 8 %19, ptr noundef nonnull align 8 dereferenceable(160) %43)
          to label %198 unwind label %212

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %199 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #7
  store ptr %199, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %200 = call ptr @_ZNSt6vectorIPN3cfg5BlockESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #7
  store ptr %200, ptr %21, align 8
  %201 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br i1 %201, label %.lr.ph125, label %._crit_edge126

.lr.ph125:                                        ; preds = %198
  %202 = getelementptr inbounds i8, ptr %33, i64 8
  %203 = getelementptr inbounds i8, ptr %34, i64 8
  %204 = getelementptr inbounds i8, ptr %36, i64 8
  br label %214

._crit_edge126:                                   ; preds = %._crit_edge123, %198
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #7
  call void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEED2Ev(ptr noundef nonnull align 8 dereferenceable(256) %17) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %17) #7
  ret void

205:                                              ; preds = %._crit_edge120
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %391

207:                                              ; preds = %195
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %211

209:                                              ; preds = %196
  %210 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6sparta17SetAbstractDomainINS_15PatriciaTreeSetIjEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #7
  br label %211

211:                                              ; preds = %209, %207
  %.pn = phi { ptr, i32 } [ %210, %209 ], [ %208, %207 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #7
  br label %390

212:                                              ; preds = %197
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %390

214:                                              ; preds = %.lr.ph125, %._crit_edge123
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #7
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  %216 = load ptr, ptr %215, align 8, !tbaa !42
  store ptr %216, ptr %22, align 8, !tbaa !42
  %217 = call noundef ptr @_ZNKSt10unique_ptrIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #7
  %218 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS8_EEEEEESt4hashIPNS2_5BlockEEE17get_exit_state_atERKSF_(ptr noundef nonnull align 8 dereferenceable(144) %217, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %219 unwind label %227

219:                                              ; preds = %214
  %220 = load ptr, ptr %22, align 8, !tbaa !42
  %221 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3cfg5Block5succsEv(ptr noundef nonnull align 8 dereferenceable(104) %220)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  %222 = call ptr @_ZNKSt6vectorIPN3cfg4EdgeESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %221) #7
  store ptr %222, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #7
  %223 = call ptr @_ZNKSt6vectorIPN3cfg4EdgeESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %221) #7
  store ptr %223, ptr %24, align 8
  %224 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPN3cfg4EdgeESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  br i1 %224, label %.lr.ph122, label %._crit_edge123

._crit_edge123:                                   ; preds = %244, %219
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  %226 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPN3cfg5BlockESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  br i1 %226, label %214, label %._crit_edge126

227:                                              ; preds = %214
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %389

.lr.ph122:                                        ; preds = %219, %244
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPN3cfg4EdgeESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  %230 = load ptr, ptr %229, align 8, !tbaa !42
  %231 = call noundef ptr @_ZNK3cfg4Edge6targetEv(ptr noundef nonnull align 8 dereferenceable(32) %230)
  store ptr %231, ptr %25, align 8, !tbaa !42
  %232 = call noundef ptr @_ZNKSt10unique_ptrIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #7
  %233 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS8_EEEEEESt4hashIPNS2_5BlockEEE18get_entry_state_atERKSF_(ptr noundef nonnull align 8 dereferenceable(144) %232, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %234 unwind label %247

234:                                              ; preds = %.lr.ph122
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  %235 = load ptr, ptr %229, align 8, !tbaa !42
  %236 = call noundef ptr @_ZNK3cfg4Edge6targetEv(ptr noundef nonnull align 8 dereferenceable(32) %235)
  store ptr %236, ptr %26, align 8, !tbaa !42
  %237 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK24LivenessFixpointIterator19get_live_in_vars_atERKPN3cfg5BlockE(ptr noundef nonnull align 8 dereferenceable(256) %17, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %238 unwind label %249

238:                                              ; preds = %234
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  %239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK6sparta22PowersetAbstractDomainIjNS_8set_impl8SetValueINS_15PatriciaTreeSetIjEEEERKS4_NS_17SetAbstractDomainIS4_EEE8elementsEv(ptr noundef nonnull align 8 dereferenceable(16) %237)
          to label %240 unwind label %251

240:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %27) #7
  invoke void @_ZNK6sparta15PatriciaTreeSetIjE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %27, ptr noundef nonnull align 8 dereferenceable(8) %239)
          to label %241 unwind label %253

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %28) #7
  invoke void @_ZNK6sparta15PatriciaTreeSetIjE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8 %28, ptr noundef nonnull align 8 dereferenceable(8) %239)
          to label %.preheader unwind label %255

.preheader:                                       ; preds = %241, %382
  %242 = invoke noundef zeroext i1 @_ZNK6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEEneERKS3_(ptr noundef nonnull align 8 dereferenceable(96) %27, ptr noundef nonnull align 8 dereferenceable(96) %28)
          to label %243 unwind label %257

243:                                              ; preds = %.preheader
  br i1 %242, label %259, label %244

244:                                              ; preds = %243
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %28) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %28) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKPN3cfg4EdgeESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  %246 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPN3cfg4EdgeESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  br i1 %246, label %.lr.ph122, label %._crit_edge123

247:                                              ; preds = %.lr.ph122
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %388

249:                                              ; preds = %234
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br label %388

251:                                              ; preds = %238
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %388

253:                                              ; preds = %240
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %387

255:                                              ; preds = %241
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %386

257:                                              ; preds = %382, %.preheader
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %385

259:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  %260 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEEdeEv(ptr noundef nonnull align 8 dereferenceable(96) %27)
          to label %261 unwind label %281

261:                                              ; preds = %259
  %262 = load i32, ptr %260, align 4, !tbaa !44
  store i32 %262, ptr %29, align 4, !tbaa !44
  %263 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %233, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %264 unwind label %281

264:                                              ; preds = %261
  %265 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %266 unwind label %281

266:                                              ; preds = %264
  %267 = invoke noundef zeroext i1 @_ZNK6sparta25AbstractDomainScaffoldingINS_8acd_impl21ConstantAbstractValueIPK13IRInstructionEEN15builder_pattern4impl22NullableConstantDomainEE6equalsERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %263, ptr noundef nonnull align 8 dereferenceable(16) %265)
          to label %268 unwind label %281

268:                                              ; preds = %266
  br i1 %267, label %382, label %269

269:                                              ; preds = %268
  %270 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %271 unwind label %281

271:                                              ; preds = %269
  br i1 %270, label %272, label %291

272:                                              ; preds = %271
  %273 = load i32, ptr %29, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  %274 = load ptr, ptr %22, align 8, !tbaa !42
  invoke void @_Z4showB5cxx11PKN3cfg5BlockEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef %274, i1 noundef zeroext false)
          to label %275 unwind label %283

275:                                              ; preds = %272
  %276 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  %277 = load ptr, ptr %25, align 8, !tbaa !42
  invoke void @_Z4showB5cxx11PKN3cfg5BlockEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef %277, i1 noundef zeroext false)
          to label %278 unwind label %285

278:                                              ; preds = %275
  %279 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef nonnull @.str.20, i32 noundef %273, ptr noundef %276, ptr noundef %279)
          to label %280 unwind label %287

280:                                              ; preds = %278
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %291

281:                                              ; preds = %291, %269, %266, %264, %261, %259
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %384

283:                                              ; preds = %272
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %290

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

287:                                              ; preds = %278
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %289

289:                                              ; preds = %287, %285
  %.pn75 = phi { ptr, i32 } [ %288, %287 ], [ %286, %285 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %290

290:                                              ; preds = %289, %283
  %.pn75.pn = phi { ptr, i32 } [ %.pn75, %289 ], [ %284, %283 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %384

291:                                              ; preds = %271, %280
  %292 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %293 unwind label %281

293:                                              ; preds = %291
  br i1 %292, label %294, label %312

294:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #7
  %295 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %296 unwind label %307

296:                                              ; preds = %294
  %297 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %295)
          to label %298 unwind label %307

298:                                              ; preds = %296
  %299 = extractvalue { i8, ptr } %297, 0
  store i8 %299, ptr %33, align 8
  %300 = extractvalue { i8, ptr } %297, 1
  store ptr %300, ptr %202, align 8
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNO5boost8optionalIPK13IRInstructionEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %302 unwind label %307

302:                                              ; preds = %298
  %303 = load ptr, ptr %301, align 8, !tbaa !42
  invoke void @_Z4showB5cxx11PK13IRInstruction(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef %303)
          to label %304 unwind label %307

304:                                              ; preds = %302
  %305 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef nonnull @.str.21, ptr noundef %305)
          to label %306 unwind label %309

306:                                              ; preds = %304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  br label %312

307:                                              ; preds = %302, %298, %296, %294
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %311

309:                                              ; preds = %304
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %311

311:                                              ; preds = %309, %307
  %.pn78 = phi { ptr, i32 } [ %310, %309 ], [ %308, %307 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  br label %384

312:                                              ; preds = %306, %293
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #7
  %313 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %233, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %314 unwind label %330

314:                                              ; preds = %312
  %315 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %313)
          to label %316 unwind label %330

316:                                              ; preds = %314
  %317 = extractvalue { i8, ptr } %315, 0
  store i8 %317, ptr %34, align 8
  %318 = extractvalue { i8, ptr } %315, 1
  store ptr %318, ptr %203, align 8
  %319 = call noundef zeroext i1 @_ZNK5boost8optionalIPK13IRInstructionEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  br i1 %319, label %320, label %337

320:                                              ; preds = %316
  %321 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %322 unwind label %330

322:                                              ; preds = %320
  br i1 %321, label %323, label %341

323:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNR5boost8optionalIPK13IRInstructionEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %34)
          to label %325 unwind label %332

325:                                              ; preds = %323
  %326 = load ptr, ptr %324, align 8, !tbaa !42
  invoke void @_Z4showB5cxx11PK13IRInstruction(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef %326)
          to label %327 unwind label %332

327:                                              ; preds = %325
  %328 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef nonnull @.str.22, ptr noundef %328)
          to label %329 unwind label %334

329:                                              ; preds = %327
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %341

330:                                              ; preds = %340, %337, %320, %314, %312
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %365

332:                                              ; preds = %325, %323
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %336

334:                                              ; preds = %327
  %335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %336

336:                                              ; preds = %334, %332
  %.pn80 = phi { ptr, i32 } [ %335, %334 ], [ %333, %332 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %365

337:                                              ; preds = %316
  %338 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 5)
          to label %339 unwind label %330

339:                                              ; preds = %337
  br i1 %338, label %340, label %341

340:                                              ; preds = %339
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 5, i1 noundef zeroext false, ptr noundef nonnull @.str.23)
          to label %341 unwind label %330

341:                                              ; preds = %339, %340, %322, %329
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #7
  %342 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS4_EEEEE3getERKj(ptr noundef nonnull align 8 dereferenceable(16) %218, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %343 unwind label %366

343:                                              ; preds = %341
  %344 = invoke { i8, ptr } @_ZNK15builder_pattern4impl22NullableConstantDomain12get_constantEv(ptr noundef nonnull align 8 dereferenceable(16) %342)
          to label %345 unwind label %366

345:                                              ; preds = %343
  %346 = extractvalue { i8, ptr } %344, 0
  store i8 %346, ptr %36, align 8
  %347 = extractvalue { i8, ptr } %344, 1
  store ptr %347, ptr %204, align 8
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNO5boost8optionalIPK13IRInstructionEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %36)
          to label %349 unwind label %366

349:                                              ; preds = %345
  %350 = load ptr, ptr %348, align 8, !tbaa !42
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #7
  %351 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %350)
  %.not = icmp eq i16 %351, 12
  br i1 %.not, label %382, label %352

352:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  %353 = invoke noundef ptr @_ZN15builder_pattern12_GLOBAL__N_121get_instantiated_typeEPK13IRInstruction(ptr noundef nonnull %350)
          to label %354 unwind label %368

354:                                              ; preds = %352
  store ptr %353, ptr %37, align 8, !tbaa !42
  %355 = invoke noundef zeroext i1 @_Z12traceEnabled11TraceModulei(i32 noundef 11, i32 noundef 2)
          to label %356 unwind label %368

356:                                              ; preds = %354
  br i1 %355, label %357, label %378

357:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  %358 = load ptr, ptr %37, align 8, !tbaa !42
  invoke void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef %358)
          to label %359 unwind label %370

359:                                              ; preds = %357
  %360 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  %361 = load ptr, ptr %40, align 8, !tbaa !5
  invoke void @_Z4showB5cxx11PK12DexMethodRef(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef %361)
          to label %362 unwind label %372

362:                                              ; preds = %359
  %363 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  invoke void (i32, i32, i1, ptr, ...) @_Z5trace11TraceModuleibPKcz(i32 noundef 11, i32 noundef 2, i1 noundef zeroext false, ptr noundef nonnull @.str.24, ptr noundef %360, ptr noundef %363)
          to label %364 unwind label %374

364:                                              ; preds = %362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %378

365:                                              ; preds = %336, %330
  %.pn80.pn = phi { ptr, i32 } [ %.pn80, %336 ], [ %331, %330 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #7
  br label %384

366:                                              ; preds = %345, %343, %341
  %367 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #7
  br label %384

368:                                              ; preds = %378, %354, %352
  %369 = landingpad { ptr, i32 }
          cleanup
  br label %381

370:                                              ; preds = %357
  %371 = landingpad { ptr, i32 }
          cleanup
  br label %377

372:                                              ; preds = %359
  %373 = landingpad { ptr, i32 }
          cleanup
  br label %376

374:                                              ; preds = %362
  %375 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %376

376:                                              ; preds = %374, %372
  %.pn83 = phi { ptr, i32 } [ %375, %374 ], [ %373, %372 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %377

377:                                              ; preds = %376, %370
  %.pn83.pn = phi { ptr, i32 } [ %.pn83, %376 ], [ %371, %370 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %381

378:                                              ; preds = %364, %356
  %379 = invoke { ptr, i8 } @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE7emplaceIJRPS0_EEESt4pairINS7_13FixedIteratorEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %380 unwind label %368

380:                                              ; preds = %378
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  br label %382

381:                                              ; preds = %377, %368
  %.pn86 = phi { ptr, i32 } [ %369, %368 ], [ %.pn83.pn, %377 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  br label %384

382:                                              ; preds = %349, %380, %268
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  %383 = invoke noundef nonnull align 8 dereferenceable(96) ptr @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEEppEv(ptr noundef nonnull align 8 dereferenceable(96) %27)
          to label %.preheader unwind label %257

384:                                              ; preds = %366, %381, %365, %311, %290, %281
  %.pn86.pn.pn = phi { ptr, i32 } [ %.pn80.pn, %365 ], [ %.pn78, %311 ], [ %282, %281 ], [ %.pn75.pn, %290 ], [ %.pn86, %381 ], [ %367, %366 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %385

385:                                              ; preds = %384, %257
  %.pn90 = phi { ptr, i32 } [ %258, %257 ], [ %.pn86.pn.pn, %384 ]
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %28) #7
  br label %386

386:                                              ; preds = %385, %255
  %.pn90.pn = phi { ptr, i32 } [ %.pn90, %385 ], [ %256, %255 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %28) #7
  call void @_ZN6sparta7pt_core20PatriciaTreeIteratorIjNS0_10EmptyValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  br label %387

387:                                              ; preds = %386, %253
  %.pn90.pn.pn = phi { ptr, i32 } [ %.pn90.pn, %386 ], [ %254, %253 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %27) #7
  br label %388

388:                                              ; preds = %249, %387, %251, %247
  %.pn90.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %248, %247 ], [ %250, %249 ], [ %.pn90.pn.pn, %387 ], [ %252, %251 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %389

389:                                              ; preds = %388, %227
  %.pn90.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn.pn.pn.pn, %388 ], [ %228, %227 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @_ZNSt6vectorIPN3cfg5BlockESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #7
  br label %390

390:                                              ; preds = %212, %389, %211
  %.pn90.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn, %211 ], [ %.pn90.pn.pn.pn.pn.pn.pn, %389 ], [ %213, %212 ]
  call void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEED2Ev(ptr noundef nonnull align 8 dereferenceable(256) %17) #7
  br label %391

391:                                              ; preds = %390, %205
  %.pn90.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn.pn.pn.pn.pn.pn.pn, %390 ], [ %206, %205 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %17) #7
  br label %392

392:                                              ; preds = %53, %194, %391
  %.pn112.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn.pn.pn.pn.pn.pn.pn.pn, %391 ], [ %.pn112.pn.pn, %194 ], [ %54, %53 ]
  call void @_ZN12UnorderedSetIPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %0) #7
  resume { ptr, i32 } %.pn112.pn.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z14resolve_methodP12DexMethodRef12MethodSearchPK9DexMethod(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZN15builder_pattern12_GLOBAL__N_120get_obj_default_ctorEv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4showI7DexTypeRSoENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode10is_an_iputE8IROpcode(i16 noundef zeroext) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode10is_an_sputE8IROpcode(i16 noundef zeroext) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6opcode11is_a_returnE8IROpcode(i16 noundef zeroext) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sparta25MonotonicFixpointIteratorINS_33BackwardsFixpointIterationAdaptorIN3cfg14GraphInterfaceEEENS_17SetAbstractDomainINS_15PatriciaTreeSetIjEEEESt4hashIPNS2_5BlockEEE3runERKS8_(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK6sparta7fp_impl29MonotonicFixpointIteratorBaseIN3cfg14GraphInterfaceENS_19AbstractEnvironmentINS_15PatriciaTreeMapIjN15builder_pattern4impl22NullableConstantDomainENS_17TopValueInterfaceIS8_EEEEEESt4hashIPNS2_5BlockEEE17get_exit_state_atERKSF_(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK24LivenessFixpointIterator19get_live_in_vars_atERKPN3cfg5BlockE(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIjE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6sparta15PatriciaTreeSetIjE3endEv(ptr dead_on_unwind noalias writable sret(%"class.sparta::pt_core::PatriciaTreeIterator") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

declare void @_Z4showB5cxx11PKN3cfg5BlockEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !13, i64 200}
!6 = !{!"_ZTSN15builder_pattern15BuilderAnalysisE", !7, i64 0, !16, i64 8, !23, i64 64, !13, i64 120, !13, i64 128, !26, i64 136, !32, i64 144, !13, i64 200, !19, i64 208, !19, i64 216, !35, i64 224}
!7 = !{!"_ZTSSt10unique_ptrIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EE", !8, i64 0}
!8 = !{!"_ZTSSt15__uniq_ptr_dataIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_ELb1ELb1EE", !9, i64 0}
!9 = !{!"_ZTSSt15__uniq_ptr_implIN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EE", !10, i64 0}
!10 = !{!"_ZTSSt5tupleIJPN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEE", !11, i64 0}
!11 = !{!"_ZTSSt11_Tuple_implILm0EJPN15builder_pattern4impl8AnalyzerESt14default_deleteIS2_EEE", !12, i64 0}
!12 = !{!"_ZTSSt10_Head_baseILm0EPN15builder_pattern4impl8AnalyzerELb0EE", !13, i64 0}
!13 = !{!"any pointer", !14, i64 0}
!14 = !{!"omnipotent char", !15, i64 0}
!15 = !{!"Simple C++ TBAA"}
!16 = !{!"_ZTS12UnorderedMapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_EE", !17, i64 0}
!17 = !{!"_ZTSSt13unordered_mapIPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS6_EESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S8_EEE", !18, i64 0}
!18 = !{!"_ZTSSt10_HashtableIPK13IRInstructionSt4pairIKS2_St6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS8_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE", !13, i64 0, !19, i64 8, !20, i64 16, !19, i64 24, !21, i64 32, !13, i64 48}
!19 = !{!"long", !14, i64 0}
!20 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !13, i64 0}
!21 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !22, i64 0, !19, i64 8}
!22 = !{!"float", !14, i64 0}
!23 = !{!"_ZTS12UnorderedSetIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt13unordered_setIPK13IRInstructionSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSSt10_HashtableIPK13IRInstructionS2_SaIS2_ENSt8__detail9_IdentityESt8equal_toIS2_ESt4hashIS2_ENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb1ELb1EEEE", !13, i64 0, !19, i64 8, !20, i64 16, !19, i64 24, !21, i64 32, !13, i64 48}
!26 = !{!"_ZTSSt10unique_ptrIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EE", !27, i64 0}
!27 = !{!"_ZTSSt15__uniq_ptr_dataIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_ELb1ELb1EE", !28, i64 0}
!28 = !{!"_ZTSSt15__uniq_ptr_implIN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EE", !29, i64 0}
!29 = !{!"_ZTSSt5tupleIJPN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EEE", !30, i64 0}
!30 = !{!"_ZTSSt11_Tuple_implILm0EJPN15builder_pattern4impl19InstructionToEnvMapESt14default_deleteIS2_EEE", !31, i64 0}
!31 = !{!"_ZTSSt10_Head_baseILm0EPN15builder_pattern4impl19InstructionToEnvMapELb0EE", !13, i64 0}
!32 = !{!"_ZTS12UnorderedMapIPK13IRInstructionPK7DexTypeSt4hashIS2_ESt8equal_toIS2_EE", !33, i64 0}
!33 = !{!"_ZTSSt13unordered_mapIPK13IRInstructionPK7DexTypeSt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S5_EEE", !34, i64 0}
!34 = !{!"_ZTSSt10_HashtableIPK13IRInstructionSt4pairIKS2_PK7DexTypeESaIS8_ENSt8__detail10_Select1stESt8equal_toIS2_ESt4hashIS2_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !13, i64 0, !19, i64 8, !20, i64 16, !19, i64 24, !21, i64 32, !13, i64 48}
!35 = !{!"bool", !14, i64 0}
!36 = !{!37, !13, i64 0}
!37 = !{!"_ZTSSt4pairIKPK13IRInstructionSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS7_EEE", !13, i64 0, !38, i64 8}
!38 = !{!"_ZTSSt6vectorIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIN3cfg23InstructionIteratorImplILb0EEESaIS2_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!42 = !{!13, !13, i64 0}
!43 = !{!14, !14, i64 0}
!44 = !{!45, !45, i64 0}
!45 = !{!"int", !14, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass